Stunnel Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Последняя версия Следующая версия справа и слева
wiki:stunnel [2014/12/30 21:33]
[Настройка Stunnel на клиенте]
wiki:stunnel [2016/02/20 23:28]
[Настройка Stunnel на сервере]
Строка 39: Строка 39:
 Все эти обратные порты открываются только для связи с другим портом (**netstat** такие порты отмечает статусом ESTABLISHED) и они не являются слушающими (LISTEN статус в выводе **netstat**) соединение (исходящие) от такого порта файерволом не блокируется. Все эти обратные порты открываются только для связи с другим портом (**netstat** такие порты отмечает статусом ESTABLISHED) и они не являются слушающими (LISTEN статус в выводе **netstat**) соединение (исходящие) от такого порта файерволом не блокируется.
  
-И так, с механизмом встраивания **stunnel** в работу клиент-серверного приложения мы разобрались (возможно даже излишне глубоко копали,​ "от печки"​). Посмотрим теперь как он устанавливается и настраивается.+И так, с механизмом встраивания **stunnel** в работу клиент-серверного приложения мы разобрались (возможно даже излишне глубоко ​копали,​ "от печки"​). Посмотрим теперь как он устанавливается и настраивается.
  
 ===== Установка Stunnel ===== ===== Установка Stunnel =====
Строка 70: Строка 70:
 <​code>​ <​code>​
 [<​service1>​] [<​service1>​]
-# Укажем,​ что это конфигурация серверной стороны (в принципе это не обязательно - stunel по умолчанию считает,​ что ​она ​работает как сервер)+# Укажем,​ что это конфигурация серверной стороны (в принципе это не обязательно - stunel по умолчанию считает,​ что работает как сервер)
 client = no client = no
 accept = <​ex.t.ser.ver>:<​s2_port>​ accept = <​ex.t.ser.ver>:<​s2_port>​
Строка 88: Строка 88:
 </​code>​ </​code>​
 Созданный файл конфигурации закрываем и сохраняем.\\ Созданный файл конфигурации закрываем и сохраняем.\\
-Кроме конфигурации **stunnel** ​нужно разрешить. Для этого в файле **/​etc/​default/​stunnel** нужно заменить ​+Кроме ​настройки ​конфигурационных файлов, ​нужно ​еще ​разрешить ​запуск **stunnel**. Для этого в файле **/​etc/​default/​stunnel** нужно заменить ​
 <​code>​ <​code>​
 ENABLED=0 ENABLED=0
Строка 158: Строка 158:
 ===== Особенности настроек приложений при работе через stunnel ===== ===== Особенности настроек приложений при работе через stunnel =====
 Нужно понимать,​ что указание в строке подключения клиента **localhost** вместо IP адреса или имени сервера может оказать влияние на работу сервиса.\\ Нужно понимать,​ что указание в строке подключения клиента **localhost** вместо IP адреса или имени сервера может оказать влияние на работу сервиса.\\
-К примеру, ​если ​вы решили обернуть трафик [[wiki:​openvpn|OpenVPN]] в stunnel (довольно популярное решение при маскировке openVPN соединения под https трафик,​ для обмана умных файерволов)то в маршрутизацию ​клиента (**route**) при установленном соединении с OpnVPN сервером будет записан маршрут не на внешний сервер,​ а на localhost (ведь соединение было с localhost а не с удаленным ​сервером), что приведет ​к практически полной неработоспособности сети на клиенте.  + 
-Что бы исправить эту ситуацию, ​правильный маршрут нужно прописать в конфигурационный файл OpenVPN: +К примеру,​ вы решили обернуть трафик [[wiki:​openvpn|OpenVPN]] в stunnel (довольно популярное решение при маскировке openVPN соединения под https трафик,​ для обмана умных файерволов). Для этого, в конфигурационном файле OpenVPN, ​строку с указанием адреса и порта сервера ​ 
-<​code>​ +
-route аа.bb.cc.dd 255.255.255.255 net_gateway +
-</​code>​ +
-здесь аа.bb.cc.dd - IP адрес внешнего ​сервера+
-При этом строка соединения ​+
 <​code>​ <​code>​
 remote аа.bb.cc.dd 1194  remote аа.bb.cc.dd 1194 
 </​code>​ </​code>​
-заменяется ​на соединение с localhost:+заменяем на соединение с localhost:
 <​code>​ <​code>​
 remote localhost <​s1_port>​ remote localhost <​s1_port>​
 </​code>​ </​code>​
 +
 +Но это приведет к тому, что в маршрутизацию клиента (**ip route**), при установлении соединения с OpnVPN сервером,​ будет записан маршрут не на внешний сервер,​ а на localhost (ведь соединение было с localhost, а не с удаленным сервером),​ что приведет к практически полной неработоспособности сети на клиенте (из за возникшего цикла в правилах маршрутизации).
 + 
 +Что бы исправить эту ситуацию нужно "​вручную"​ прописать правильный маршрут,​ а неверный маршрут - удалить. Для этого в конфигурационный файл OpenVPN добавляем строки:​
 +<​code>​
 +route аа.bb.cc.dd 255.255.255.255 net_gateway
 +route-up "/​bin/​ip route del 127.0.0.1"​
 +</​code>​
 +здесь аа.bb.cc.dd - IP адрес внешнего сервера.
 ===== Ссылки ===== ===== Ссылки =====
 https://​www.digitalocean.com/​community/​tutorials/​how-to-set-up-an-ssl-tunnel-using-stunnel-on-ubuntu https://​www.digitalocean.com/​community/​tutorials/​how-to-set-up-an-ssl-tunnel-using-stunnel-on-ubuntu