Насколько безопасен OpenVPN

Поделиться ВКонтакте
+1

В прошлой статье я писал о том, как настроить свой собственный OVPN (OpenVPN). К сожалению, более-менее стандартный конфиг хоть и не раскрывает реальный IP-адрес клиента (это хорошо), но все же обнаруживает сам факт существования средств анонимизации (это не есть хорошо). Сегодня я расскажу, как именно происходит детекция и как с ней бороться ;-)

Итак, если зайти сюда то вот что мы увидим:

Как видим из скриншота, утечка информации происходит по следующим пунктам:

  1. Открытые порты web proxy
  2. Разница во временных зонах (браузера и IP)
  3. Принадлежность IP хостинг провайдеру
  4. Определение туннеля (двухсторонний пинг)
  5. VPN Fingerprint

Постараемся максимально устранить утечки данных. По порядку.

#1 Открытые порты web proxy

Эту “проблему” исправить легче всего — это и не проблема вовсе. Достаточно, чтобы на сервере, где у вас установлен и настроен OpenVPN не было никакого web-сервера (apache/nginx). В моем случае, web-сервер там есть, меня это не особо напрягает. Поэтому переходим к следующему пункту.

#2 Разница во временных зонах (браузера и IP)

Проще всего будет изменить время на клиентском устройстве и привести его в соответствие с временной зоной той страны и/или города, где физически находится OpenVPN-сервер.

#3 Принадлежность IP хостинг провайдеру

Увы, не изменить никак :(

#4 Определение туннеля (двухсторонний пинг)

Заходим в настройки ufw:

Приводим секцию к такому виду:

Перезапускаем ufw:

Все, теперь туннель определяться не будет.

#5 VPN Fingerprint

Открываем конфиг VPN-сервера:

После строки:

Добавляем строку:

Перезапускаем VPN-сервер:

Если вы используете Viscosity (как я рекомендовал в прошлой статье), то заходите в свойства соединения, затем вкладка “Расширенные настройки” и в поле “Введите дополнительные команды для OpenVPN” пишем:

Пробуем прогнать тест еще раз:

Как видите — остался только 80-й порт, который я просто не стал убирать и IP, принадлежащий датацентру — но тут мы уже ничего не можем сделать. Базовая часть настроек выполнена, но это еще не все, есть еще нюансы ;-) Едем дальше, заходим вот сюда. И видим печальный результат:

#1 Отключаем Flash в браузере

Я использую Google Chrome (для других браузеров ищите как отключить в гугле), в адресной строке пишем:

Ищем там Adobe Flash Player и вырубаем его.

#2 Включаем опцию запрета отслеживания в браузере (Do Not Track)

В Google Chrome это делается в настройках, пункт меню — “Личные данные”, затем ставим галочку на пункте меню “Отправлять с исходящим трафиком запрос “Не отслеживать””.

#3 Отключаем WebRTC в браузере

Для Google Chrome есть плагин WebRTC Leak Prevent, ставим его.

В финале Whoer показал мне вот такую картинку:

Разное системное время Whoer определил по временной зоне (да, ее тоже надо исправлять). Язык тоже, думаю, понятно как узнал. На мой взгляд, это не является великой проблемой, т.к. путешествующий (условно) пользователь вполне логично будет иметь отличную от места пребывания временную зону и время, равно как и локаль. По большому счету, сделать то, что я описал в статье — лишним не будет ;-) Ну а для параноиков будут совсем иные рецепты. На связи, пишите в комментарии, если будут вопросы ;-)


Я советую хостинг Linode и Digital Ocean. Рефам помощь в установке и настройке — бесплатно!

  • Тайлер

    Здравствуйте

    Как с вами можно пообщаться например в скайпе?
    Вышлите свои контакты на почту которую я указал
    dhfdhfahfdsh@mail.ru

    Спасибо

    • Ответил в почту. Скайпа нет.

  • Alex_A

    Большое спасибо за статью, не подскажешь как скрыть #4 Определение туннеля (двухсторонний пинг) для CentOS
    Заранее спасибо

  • shokerzz

    Инструкция по пункту4 не работает на Ubuntu. По пункту 5 не понятно-куда прописывать строку mssfix 0.
    Как это дело должно выглядеть?

    keepalive 10 120mssfix 0 -так?

    keepalive 10 120
    mssfix 0 -или так?

    • Второй вариант. А что конкретно не работает?
      Или вернее что не получается то???

      • shokerzz

        По пункту 4 – проделываю все как написано. После всех этих процедур,к серверу подключиться вообще не могу. Подключаюсь через Putty

        • Ну так правильно, а вот тут кто читать будет? https://www.thewired.ru/2016/03/ovpn-openvpn-svoimi-rukami/

          ufw allow ssh

          • shokerzz

            Ага,понял. А по пункту 5,в клиенте где mssfix 0 прописывать? В файле .ovpn?

          • В настройках соединения в Viscosity.

          • shokerzz

            У меня обычный OPEN VPN GUI,опенсорсный который

          • Без понятия.

  • cixaxem

    ВЫ пишите ” #3 Принадлежность IP хостинг провайдеру Увы, не изменить никак :( ” , а как же SoftEther VPN Client Manager .

  • Семен

    Добрый день. В первый раз все получилось по Вашим обеим инструкциям. Все отлично, Но сегодня они что то обновили. и уже не получается создать впн, он то создается но не коннектится то выдает ошибку TLS соединения. Огромная просьба внести корректировки в статьи по созданию и скрытию с учетом изменений. Так же есть предложение. В просторах интернета наткнулся на openvpn access server. Ставиться на голую убунту в 5 команд

    apt-get update
    apt-get install sudo

    sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.1.2-Ubuntu14.amd_64.deb
    dpkg -i openvpn-as-2.1.2-Ubuntu14.amd_64.deb
    sudo passwd openvpn

    Но после установки и подключения, 2ip палит такие вещи как:
    1.Открытые порты web proxy
    2.Определение туннеля (двусторонний пинг)
    3.VPN fingerprint

    Было бы очень здорово если бы вы написали статью как скрыть эти параметры через openvpn access server, тогда поднятие Впн занимало бы не больше 3 минут. И было бы классно узнать как ставить и менять впны на нескольких впс. Заранее спасибо

    ПЫ.ЗЫ. из минусов что бесплатно только на 2 машины.
    ПЫ.ЗЫ2. Установку можно посмотреть по адресу https://www.youtube.com/watch?v=aHX09vc59Ts

  • Stas Poz

    Добавление стороки:
    mssfix 0
    в /etc/openvpn/server.conf
    ничего не поменяло. Использую OpenVPN GUI

  • fleter

    Как решить вопрос с mssfix 0 в openvpn access server?

    • Руками в конфиге прописать, как для простого OpenVPN.

      • fleter

        Так нет конфига, есть as.conf – на нём не срабатывает. Очень прошу помочь.

        • Отписал в почту.

    • Семен

      Подскажи какое решение нашли ?

      • Да не использовать OAS и все.

        • Семен

          Не хочется бросать вот так все =) хочется победить =) написал им в службу поддержки. Получил вот такой ответ:

          Any custom server and client config directives can be specified under Advanced VPN in the two boxes at the bottom.

          Please note that if you enter directives into either of the two boxes for ‘client config directives’ or ‘server config directives’ that they are NOT checked for validity. In fact, if you enter incorrect information in the ‘server config directives’ box or the ‘client config directives’ box it is possible that the server will fail. Fortunately it is easy to recover from this mistake by logging on to the console or an SSH session to the Access Server and performing the following commands:

          /usr/local/openvpn_as/scripts/confdba -mk “vpn.server.config_text” -v “”
          /usr/local/openvpn_as/scripts/confdba -mk “vpn.client.config_text” -v “”
          /etc/init.d/openvpnas restart

          Поковырялся, но не допер толком. Ты умнее меня, может поймешь худа там mssfix 0 воткнуть можно

          • Учитывая вот эту строку:

            > performing the following commands

            Полагаю, что именно в это окошко и надо писать mssfix 0, если я верно все понимаю, то она должна автоматом после этого прописаться в конфиг и примениться. Если нет — значит надо задавать им вопрос о том, почему это не сработало. Можно сразу написать им примерно так:

            Hi there, I would like to figure out if it’s possible to use “mssfix 0” option in my GUI config. If answer is yes — than please point me to the right direction.

            Удачи! :)

          • Семен

            Разобрался в итоге. Пусть методом тыка. Но с твоей подачи. Огромное тебе спасибо. Для нуждающихся инструкция: заходим в OAS admin, переходим на вкладку Advanced VPN, и в самом низу в Server Config Directives и Client Config Directives прописываем mssfix 0. Сохраняем и ребутим сервер ( вверху этой же страницы. И все =) 2ip выдает

            Мы не обнаружили средств анонимизации, ничего подозрительного.
            Вероятность использования средств анонимизации:
            0 %

            Алилуя =) Еще раз спасибо TheWired ;)

          • Welcome!

  • Pingback: Настроить firewall ubuntu debian, грамотно настроить vpn, написать sh | Kleinburd Projects()

  • Pingback: Грамотно настроить Centos firewall, openvpn, kvm | Kleinburd Projects()

  • Тарас Сякин

    #4 Определение туннеля (двухсторонний пинг)
    Заходим в настройки ufw:

    что такое ufw?

    если это программа подскажите где скачать

    третий день мучаюсь помогите использую программу для смены ip
    Hide ALL IP 2017.03.01.170301 Portable

    • sudo apt-get install ufw

      • Тарас Сякин

        Скажите утилита для Linux?
        нашол
        Firewall на Ubuntu Linux (Ubuntu Firewall) UFW – простая, удобная и наднжная утилита для Linux
        а с виндой 8,1 туннель не убрать?

  • Тарас Сякин

    Добрый день, подскажите как избавится от Открытые порты VPN
    500/udp, IPSec 1723/tcp, PPTP VPN

    https://2ip.ru/privacy/bar/1612430_84aeee.html

    • Очевидно перенести эти сервисы на другие порты (не дефолтные).