====== OpenVPN и stunnel ====== В некоторых случаях необходимо обернуть OpenVPN во что-то для прохода через фаерволы. Отличным вариантом является stunnel. ===== Устанавливаем stunnel ===== Устанавливаем на сервер и на клиенте: apt install stunnel4 ===== Настраиваем сервер ===== Создаем ключи: cd /etc/stunnel openssl genrsa -out key.pem 2048 openssl req -new -x509 -key key.pem -out cert.pem -days 3650 cat key.pem cert.pem >> stunnel.pem Создаем файл конфигурации /etc/stunnel/stunnel.conf chroot = /var/lib/stunnel4 pid = /stunnel.pid output = /stunnel.log setuid = stunnel4 setgid = stunnel4 socket = l:TCP_NODELAY=1 [openvpn] accept = XX.XX.XX.XX:YYYY connect = 127.0.0.1:1194 cert=/etc/stunnel/cert.pem key=/etc/stunnel/key.pem где XX.XX.XX.XX - адрес на котором stunnel будет слушать, а YYYY - порт Для того, чтобы сервис stunnel стартовал автоматически необходимо отредактировать файл /etc/default/stunnel4 ENABLED=1 Открываем порт на фаерволе (в моем случае это ufw): sudo ufw allow YYYY Теперь перезапустим службу stunnel, сервис должен полноценно заработать и начать принимать входящие соединения: # sudo /etc/init.d/stunnel4 restart ===== Настраиваем клиента ===== Копируем stunnel.pem - сертификат с сервера в /etc/stunnel Создаем файл конфигурации /etc/stunnel/stunnel.conf output = /stunnel.log client = yes [openvpn] cert = /etc/stunnel/stunnel.pem accept = ZZ.ZZ.ZZ.ZZ:1194 connect = XX.XX.XX.XX:YYYY где * XX.XX.XX.XX - адрес сервера к которому stunnel будет подключаться, а YYYY - порт * ZZ.ZZ.ZZ.ZZ - адрес сервера OpenVPN Теперь перезапустим службу stunnel, клиент должен подключиться: # sudo /etc/init.d/stunnel4 restart Далее в OpenVPN со стороны клиента настраиваем подключение к ZZ.ZZ.ZZ.ZZ:1194 и проверяем работу {{tag>openvpn stunnel vpn}}