Home
  • Home
  • About us
  • Services
  • Contacts
  • Български
Header image

Recent from Our Blog

  • Support Bulgaria Blog Starts
  • Home
  • About us
  • Services
  • Contacts

Obfsproxy за преодоляване филтрирането на OpenVPN

Наскоро трябваше да се справим със ситуация където достъпът до VPN сървър на наш клиент беше недостъпен от негови партньори в страни които филтрират VPN достъпа чрез Deep Packet Inspection (DPI). След направен анализ от наша страна се оказа, че в конкретната държава се филтрират всички стандартни VPN протоколи като PPTP, L2TP/IPSec и OpenVPN. Не бяхме сигурни и не тествахме SSTP и IKEv2 протоколите, но така или иначе клиента не разполагаше със сървър с Microsoft Windows. Решението което имплементирахме беше OpenVPN + Obfsproxy. Obfsproxy е интрумент, който ефективно заобикаля DPI като трансформира мрежовия трафик между клиента и сървъра. По този начин между клиента и сървъра ще има само невинно изглеждащ, трансформиран трафик, вместо реалния такъв, който DPI може да класифицира като VPN трафик и блокира. Конфигурацията на Obfsproxy + OpenVPN се оказа сравнително лесна, поради факта че OpenVPN поддържа socks прокси. Всичко което трябваше да направим е да стартираме Obfsproxy така:

obfsproxy --log-file=/var/log/obfsproxy.log --log-min-severity=info obfs2 --dest=127.0.0.1:12456 --shared-secret=some_shared_secret server 0.0.0.0:8080 &

Така казваме на Obfsproxy да слуша на TCP порт 8080 и да изпраща трафика от Obfsproxy клиентите на OpenVPN сървъра работещ на порт 12456. Shared-secret е предварително уговорена парола между двете страни. Съответно променихме и конфигурацията на OpenVPN да слуша на TCP порт 12456:


proto tcp
port 12456

На клиента стартираме Obfsproxy така:

obfsproxy --log-file=/tmp/obfsproxy.log --log-min-severity=info obfs2 --shared-secret=some_shared_secret socks 127.0.0.1:10194 &

И правим следните промени в OpenVPN клиентския конфигурационен файл:


proto tcp
remote remote_server_ip 8080
route remote_server_ip 255.255.255.255 net_gateway
socks-proxy-retry
socks-proxy 127.0.0.1 10194

Заменяме remote_server_ip с IP адреса на OpenVPN сървъра. Редът "route remote_server_ip 255.255.255.255 net_gateway" е нужен, за да не се рутира трафика към IP адреса на OpenVPN сървъра през Obfsproxy.

Support Bulgaria Ltd