5

У меня есть QNAP TS-253 Pro (QTS 4.2.0), на котором OpenVPN-сервер настроен и работает нормально. Поскольку я хочу использовать клиентские сертификаты для защиты VPN-подключений, встроенная конфигурация в веб-интерфейсе вообще не нужна.

Поэтому я импортировал свои файлы конфигурации и сертификата через SSH / SCP в / etc / openvpn, перезапустил сервер OpenVPN, и он работал хорошо, пока я не перезагрузил NAS QNAP. Конфиг был возвращен к заводским настройкам QNAP.

Похоже, каталог /etc/openvpn - это просто символическая ссылка на /mnt/ext/opt/vpnopenvpn/etc/openvpn/, которая содержит исходную конфигурацию из веб-интерфейса моего QNAP. Затем я попытался отредактировать конфиг там и надеялся, что он не будет заменен при следующей загрузке, но это не было решением. Перезагрузился и нашел заводские настройки по умолчанию в OpenVPN-файлах в /mnt/ext/opt/vpnopenvpn/etc/openvpn/.

Я пролистал множество тем на официальном форуме QNAP, неофициальных постах в блогах и некоторых init.d-скриптах на самом QNAP, чтобы найти способ либо отключить автоматическое развертывание заводских настроек по умолчанию, либо заставить QNAP развернуть мою работу Конфигурация в /etc/openvpn.

Вот список моих неудачных попыток:

  • Скопировал конфиг в /etc /openvpn - конфиг переписан при загрузке
  • Скопировал конфигурацию в /mnt /ext /opt /vpnopenvpn /etc /openvpn / - конфигурация была переписана при загрузке
  • Следуя инструкциям по адресу: http://wiki.nas-portal.org/index.php/Install_OpenVPN_on_QNAP - не удалось найти qpkg / ipkg в актуальной версии QTS (под управлением 4.2.0), возможно, руководство написано для более старой версии ...
  • Попытался запустить самостоятельно созданный скрипт autorun.sh, как описано здесь: http://forum.qnap.com/viewtopic.php?t=83804#p372711 - папки в / share, похоже, воссоздаются при каждой загрузке
  • Полностью проработанный в этой теме, рекомендованный пользователями на официальных форумах QNAP: http://forum.qnap.com/viewtopic.php?f=90&p=61890&t=10400&sid=6aa706cb2ff41a75c6f048883328512a - похоже, не касается моей конкретной проблемы / конфигурации
  • Прокомментировал специфичные для openvpn разделы в /etc/init.d/installtgz.sh - сам файл был переписан при загрузке, и мои комментарии снова стали активной частью скрипта

Кто-нибудь знает, как остановить QTS, чтобы переписать мои файлы конфигурации? Я не хочу копировать конфигурацию OpenVPN вручную каждый раз при перезагрузке QNAP ...

2 ответа2

3

Я искал подобное решение, потому что мне требовалась конфигурация Open VPN на стороне сервера для фиксированных IP-номеров. Моим решением было добавить строку в файл vpn_openvpn.sh прямо перед тем, как он запустит daemon_mgr в моей строке 210.

<snip>
  usr/bin/openssl verify -CAfile /etc/openvpn/keys/ca.crt /etc/openvpn/keys/myserver.crt 2>/dev/null | /bin/grep "OK" >/dev/null
  echo client-config-dir clientconfig >>/etc/openvpn/server.conf
            if [ $? == 0 ] && [ ! -f ${PIDFILE} ]; then
</snip>

Я добавил строку, начинающуюся с echo. На этом этапе вы также сможете изменить конфигурацию в /etc/openvpn/server.conf

При добавлении здесь, строка переживет перезапуски сервера OpenVPN, но, как вы уже испытали, многие файлы восстанавливаются во время загрузки. Это где autorun.sh вступает в игру. Как его использовать, вы можете найти здесь . Точный синтаксис зависит от типа QNAP NAS, который вы получили.

Вы можете добавить строку sed здесь, чтобы воссоздать "fix" во время загрузки.

sed "210i echo client-config-dir clientconfig >>/etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart

В вашем случае файл autorun.sh должен выглядеть так:

sed "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp /etc/init.d/vpn_openvpn.sh
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart

Дайте мне знать, если это работает

Изменить: после некоторого переосмысления вы можете сделать это еще короче

sed -i "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh 
/etc/init.d/vpn_openvpn.sh restart
0

Для удаления толчка шлюза по умолчанию в конфигурации QNAP:

sed -i -e '/if \[ $? == 0 \] && \[ ! -f ${PIDFILE} \]; then/a\/bin\/sed -i -e \"s/push \\"redirect-gateway def1\\"/#push \\"redirect-gateway def1\\"/g\" /etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh

Почему не удается сделать это по умолчанию, и почему QNAP настроил свои устройства таким образом, чтобы они перезаписывали конфигурации и находились во всех странных соглашениях и разных каталогах - это плохая практика и загадка.

Людям не нужны такие сложные обходные пути и файлы автозапуска для таких базовых вещей в Linux. Как будто они хотят сделать Linux более запутанным и сложным, чем он есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .