Страницы

VPN своими руками


Нам уже давно пора перейти от принципа "шифровать, если необходимо" к принципу "шифровать всегда", так как быстрые многоядерные процессоры и безлимитные каналы связи нам это вполне позволяют.

Используя VPN на своих устройствах, вы получите ряд бонусов:
1. педофильский реестр будет где-то очень далеко от вас. Не надо боятся, что в один прекрасный день в него внесут Хабр, Вконтакте, youtube и т.д.;
2. вам будут доступны заграничные сайты, которые работают только со Штатами/Европой. К примеру, магазин девайсов Google Play или Netflix;
3. ваш трафик будет скрыт от вашего провайдера, рекламодателей, хакеров и ФСБ (правда выходная точка вашего VPN канала будет все равно под присмотром других спецслужб :( ).

Организовать свой VPN достаточно просто.


Для этого нужно создать аккаунт у облачного провайдера выделенных серверов digitalocean, активировать его, переведя себе на счет 5 баксов через PayPal, добавить еще 10$ с помощью промокода 2014SSD и запустить самый простой сервер с Ubuntu на борту.

После запуска сервера (тут их называют droplet) можно подсоединится к нему с помощью Putty (ip и рутовый пароль дадут) и установить OpenVPN Access Server (перед установкой VPN сервера рекомендую подготовить ваш сервер по этой инструкции).

Установить VPN сервер на Ubuntu тривиально просто. 
Скачиваем (#update. Качать лучше последнюю версию с офф.сайта!)
sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.0.3-Ubuntu13.amd64.deb
Устанавливаем
sudo dpkg -i openvpn-as-2.0.3-Ubuntu13.amd64.deb
Ставим пароль openvpn администратору
sudo passwd openvpn
После этого нам станет доступен вебинтерфейс OpenVPN сервера по адресу:
https://<ip сервера>:943 
Дальше я сразу лезу в настройки Advanced VPN и включаю Paranoid Mode - AES 256 и SHA256. Ассиметричные ключи длиной 128 бит сегодня считаются полностью безопасными, ибо ни один суперкомпьютер в мире (или все суперкомпьютеры вместе взятые) не расшифруют их никогда. Но квантовый компьютер, если, конечно, его когда-нибудь создадут, по идее, сможет. 256 бит квантовому компьютеру не по зубам :)

Еще можно отключить логи OpenVPN (кому они нужны?)
sudo nano /usr/local/openvpn_as/etc/as.conf
Ищем строчку  log_db=....  и меняем на log_db=/dev/null.
...
В общем тюнинговать OpenVPN можно бесконечно, но работает он практически сразу из коробки. Единственный неприятный сюрприз - ограничение на 2х одновременных пользователей для бесплатной версии Access Server.

Чтобы пользоваться созданным VPN необходимо скачать OpenVPN клиента для iOS (джеилбрейк не нужен) или для Android (рут не нужен). Для iOS в Safari нужно открыть страничку вашего OpenVPN сервера и скачать профиль с настройками.
[update] Ещё одна полезная галка - автологон. Поставив её, вам не придется каждый раз вводить пароль в клиенте заново.


Вот собственно и все. После установки клиента и профиля у вас будет VPN с весьма неплохими характеристиками! (iPad)
Провод:

[UPDATE] Халява от Github

Скрипт для ручного конфигурирования сервера
/usr/local/openvpn_as/bin/ovpn-init --force

17 комментариев:

  1. Чем плохи готовые VPN сервисы?
    http://shadeyouvpn.com/

    ОтветитьУдалить
    Ответы
    1. Хороший стабильный VPN обходится обычно больше чем в 5$ в месяц.
      Нет гарантий, что VPN провайдер не хранит логи, не следит за тобой и т.д.
      IP адреса популярных VPN провайдеров легко идентифицируются.

      Прикольно делать все самому :)

      Удалить
  2. Спасибо за промо-код для DigitalOcean!
    Статья актуальная, но если уж "прикольно делать все самому", то лучше консольно настроить бесплатный OpenVPN (который не Server), не натыкаясь на ограничения в виде только двух пользователей.

    ОтветитьУдалить
    Ответы
    1. Самая геморройная часть в такой схеме - формирование и закачка профиля с настройками на планшет и телефон.

      В случае с Access Server все намного намного проще.

      Удалить
  3. Если качаете руками без менеджеров пакетов по http, то имеет смысл проверять контрольную сумму ;) И логи обычно весьма полезны, как при дебаге, так и мало ли - кто-то будет еще ломиться на ваш сервер.

    Плюс имеет смысл сменить порт с дефолтного на куда-то в диапазоне повыше. И это касается не только OpenVPN, но особенно SSH.

    ОтветитьУдалить
  4. Объясните популярно. После поднятия VPN, провайдер не сможет узнать на какие сайты я хожу и станут доступны заблокированные сайты. Но провайдер все равно будет видеть что идет трафик на такой то IP, например в Амстердам. Ну не дураки догадаются что трафик ходит через виртуальный сервер. И отслеживая этот IP сервера смогут узнать куда я ходил в их провайдерской сети, а при желании и обратиться могут в DigitalOcean чтобы те предоставили свои логи. Наверняка и там стоит что то наподобие сорм. То есть безопасность трафика достигается только на участке компьютер - сервер, а потом пакеты гуляют опять в открытом виде и где гарантии, что там злоумышленники или еще кто не перехватят мои пакеты с целью изучения?. Как бороться с этим безобразием? Tor ставить? так я могу его и с компьютера использовать.

    ОтветитьУдалить
    Ответы
    1. Вы все верно поняли.

      TOR поверх VPN решает эту задачу. Однако у АНБ есть более-менее эффективные методы отслеживания и TOR трафика (Сноуден выкладывал презентацию). Вообщем все зависит от степени паранои (сиречь "модели нарушителя"). 95% самых любопытных ушей будет отрезано описанным в статье VPN.

      У VPN перед ТОРом есть несколько важных преимуществ. Главное - скорость и стабильность канала. Второе - всеядность. Засирать сеть TOR торрентами не хорошо, а VPN - пожалуйста! Третье - VPN легко настраивается для постоянного прозрачного использования, не привередлив, не заметен.

      Удалить
  5. Не стоит забывать об ограничении на объем переданного трафика. Для рассматриваемого варианта за $5 - это 1TB.

    ОтветитьУдалить
    Ответы
    1. Верно. Правда пока что я даже с торрентами за такой объем трафика в месяц не выбивался.

      Удалить
  6. Настроил все по Вашей статье и ... заблокированные в РФ сайты остабтся заблокированными:((

    ОтветитьУдалить
    Ответы
    1. Проверьте свой ip адрес на myip.ru. Должен совпадать с IP VPN сервера. Если не совпадает - то что-то настроили не так.

      У меня все работает как часы.

      Удалить
  7. Артём подключаюсь к серверу и интернет пропадает, какие дополнительные настройки может iptables проводили???

    ОтветитьУдалить
    Ответы
    1. Нет, ничего не нужно. В этом и прелесть решения, что все делается в пару кликов.

      Попробуйте перегрузить и сервер и клиента :)

      Удалить
  8. Здравствуйте. А как создать конфиг для подключение через openvpn клиент на PC? Спасибо

    ОтветитьУдалить
    Ответы
    1. Добрый. OpenVPN и OpenVPN AS - это немного разные продукты. В статье речь идет про второй. Он скачивается уже со всеми необходимыми конфигами и ничего добавлять/править там не надо.

      Удалить
  9. Здравствуйте. А как добавлять пароль для второго пользователя?

    ОтветитьУдалить
    Ответы
    1. Добрый день,

      Никогда не пробовал это делать. Поидее надо создать пользователя через WebGUI. Пароль ему можно сменить через командную строку командой passwd

      Удалить