Имеется Ubuntu Server 16.04, на котором
успешно работает OpenVPN в качестве сервера и в качестве клиента одновременно. Соответственно, в папке /etc/openvpn два конфига:
server.conf - для входящих соединений
client.conf - исходящее подключение к другому серверу.
Понадобилось поднять ещё один сервер OpenVPN для входящих подключений. Сделал третий конфиг partner.conf, в котором указал другой набор ключей и сертификатов, поменял порт, tun-интерфейс, подсеть, пути к логам и остальному.
А OpenVPN ни в какую не хочет поднимать второе входящее подключение!
Причем, если меняю местами содержимое partner.conf и server.conf - так же запускается только одно входящее соединение, но соответственно уже на другом порту и tun интерфейсе с другой подсетью. То есть, проблема не в содержимом conf файлов, а в том что OpenVPN подгружает только один server.conf.
Ещё вот
пишут, что для выборочного запуска конфигов должно работать:
service openvpn start partner.conf
- но у меня оно не срабатывает, как будто я не указал имя конфига. Например, ввожу:
service openvpn stop client.conf
, а он останавливает и client.conf и server.conf.
OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016
library versions: OpenSSL 1.0.2g-fips 1 Mar 2016, LZO 2.08
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
Compile time defines: enable_crypto=yes enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dependency_tracking=no enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_http_proxy=yes enable_iproute2=yes enable_libtool_lock=yes enable_lzo=yes enable_lzo_stub=no enable_maintainer_mode=no enable_management=yes enable_multi=yes enable_multihome=yes enable_pam_dlopen=no enable_password_save=yes enable_pedantic=no enable_pf=yes enable_pkcs11=yes enable_plugin_auth_pam=yes enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_silent_rules=no enable_small=no enable_socks=yes enable_ssl=yes enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=yes enable_win32_dll=yes enable_x509_alt_username=yes with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_plugindir='${prefix}/lib/openvpn' with_sysroot=no
UPDATE:Зашел в Webmin (да простят меня гуру), в управление запуском демонов и обнаружил там, помимо openvpn (который лежит в /etc/init.d) ещё три строчки:
openvpn@client.service
openvpn@server.service
openvpn@partner.service
Первые два перезапускаются вручную нормально, а openvpn@partner.service ругается:
Job for openvpn@partner.service failed because the control process exited with error code. See "systemctl status openvpn@partner.service" and "journalctl -xe" for details.
Выполняю:
root@gate-rst1:/etc/openvpn# systemctl status openvpn@partner.service
● openvpn@partner.service - OpenVPN connection to partner
Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Ср 2016-07-13 20:08:03 MSK; 2min 14s ago
Docs: man:openvpn(8)
https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
https://community.openvpn.net/openvpn/wiki/HOWTO
Process: 16395 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvp
Main PID: 1787 (code=exited, status=0/SUCCESS)
июл 13 20:08:03 gate-rst1 systemd[1]: Starting OpenVPN connection to partner...
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Control process exited, code=exited status=1
июл 13 20:08:03 gate-rst1 systemd[1]: Failed to start OpenVPN connection to partner.
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Unit entered failed state.
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Failed with result 'exit-code'.
journalctl -xe выдает похожее (лишние строки убрал)
июл 13 20:08:03 gate-rst1 systemd[1]: Stopped OpenVPN connection to partner.
-- Subject: Завершена остановка юнита openvpn@partner.service.
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Процесс остановки юнита openvpn@partner.service был завершен.
июл 13 20:08:03 gate-rst1 systemd[1]: Starting OpenVPN connection to partner...
-- Subject: Начинается запуск юнита openvpn@partner.service
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Начат процесс запуска юнита openvpn@partner.service.
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Control process exited, code=exited status=1
июл 13 20:08:03 gate-rst1 systemd[1]: Failed to start OpenVPN connection to partner.
-- Subject: Ошибка юнита openvpn@partner.service
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита openvpn@partner.service.
--
-- Результат: failed.
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Unit entered failed state.
июл 13 20:08:03 gate-rst1 systemd[1]: openvpn@partner.service: Failed with result 'exit-code'.
Проблему пока не решил, но хотя бы понял, что запускать конфиги выборочно, теперь нужно через systemctl, как-то так:
systemctl start openvpn@client.service