no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
— | software:openvpn:openvpn-stunnel [2024/09/15 14:15] (текущий) – создано fireball | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== OpenVPN и stunnel ====== | ||
+ | |||
+ | В некоторых случаях необходимо обернуть OpenVPN во что-то для прохода через фаерволы. Отличным вариантом является stunnel. | ||
+ | |||
+ | ===== Устанавливаем stunnel ===== | ||
+ | |||
+ | Устанавливаем на сервер и на клиенте: | ||
+ | < | ||
+ | apt install stunnel4 | ||
+ | </ | ||
+ | |||
+ | ===== Настраиваем сервер ===== | ||
+ | |||
+ | Создаем ключи: | ||
+ | < | ||
+ | cd / | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Создаем файл конфигурации / | ||
+ | < | ||
+ | chroot = / | ||
+ | pid = / | ||
+ | output = / | ||
+ | setuid = stunnel4 | ||
+ | setgid = stunnel4 | ||
+ | socket = l: | ||
+ | |||
+ | [openvpn] | ||
+ | accept = XX.XX.XX.XX: | ||
+ | connect = 127.0.0.1: | ||
+ | cert=/ | ||
+ | key=/ | ||
+ | </ | ||
+ | |||
+ | где XX.XX.XX.XX - адрес на котором stunnel будет слушать, | ||
+ | |||
+ | Для того, чтобы сервис stunnel стартовал автоматически необходимо отредактировать файл / | ||
+ | < | ||
+ | ENABLED=1 | ||
+ | </ | ||
+ | |||
+ | Открываем порт на фаерволе (в моем случае это ufw): | ||
+ | < | ||
+ | sudo ufw allow YYYY | ||
+ | </ | ||
+ | |||
+ | Теперь перезапустим службу stunnel, сервис должен полноценно заработать и начать принимать входящие соединения: | ||
+ | < | ||
+ | # sudo / | ||
+ | </ | ||
+ | |||
+ | ===== Настраиваем клиента ===== | ||
+ | |||
+ | Копируем stunnel.pem - сертификат с сервера в / | ||
+ | |||
+ | Создаем файл конфигурации / | ||
+ | < | ||
+ | output = / | ||
+ | client = yes | ||
+ | |||
+ | [openvpn] | ||
+ | cert = / | ||
+ | accept = ZZ.ZZ.ZZ.ZZ: | ||
+ | connect = XX.XX.XX.XX: | ||
+ | </ | ||
+ | |||
+ | где | ||
+ | * XX.XX.XX.XX - адрес сервера к которому stunnel будет подключаться, | ||
+ | * ZZ.ZZ.ZZ.ZZ - адрес сервера OpenVPN | ||
+ | |||
+ | Теперь перезапустим службу stunnel, клиент должен подключиться: | ||
+ | < | ||
+ | # sudo / | ||
+ | </ | ||
+ | |||
+ | Далее в OpenVPN со стороны клиента настраиваем подключение к ZZ.ZZ.ZZ.ZZ: | ||
+ | |||
+ | {{tag> | ||