Начало
  • Начало
  • За нас
  • Услуги
  • Контакти
  • English
Header image

Последно от блога

  • Obfsproxy за преодоляване филтрирането на OpenVPN
  • Стартира блогът на Съпорт България

Последни постове

  • Obfsproxy за преодоляване филтрирането на OpenVPN
  • Стартира блогът на Съпорт България

Месечен Архив

  • Февруари 2013 (1)
  • Май 2013 (1)

Категории

dpi obfsproxy openvpn vpn блог

Служебни

RSS за публикациите

  • strict warning: Non-static method view::load() should not be called statically in /var/www/support-bg.eu/sites/all/modules/views/views.module on line 1113.
  • strict warning: Declaration of views_handler_argument::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_argument::query() should be compatible with views_handler::query($group_by = false) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /var/www/support-bg.eu/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/plugins/views_plugin_query.inc on line 0.
  • warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/support-bg.eu/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc on line 78.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /var/www/support-bg.eu/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /var/www/support-bg.eu/sites/all/modules/views/plugins/views_plugin_row.inc on line 0.
  • strict warning: Non-static method view::load() should not be called statically in /var/www/support-bg.eu/sites/all/modules/views/views.module on line 1113.
  • warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/support-bg.eu/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc on line 71.
  • warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/support-bg.eu/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc on line 71.

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

Изпратено от admin на Пет., 05/03/2013 - 13:16

Наскоро трябваше да се справим със ситуация където достъпът до 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.

Съпорт България ООД