vpn (pptpd)

К сожалению, не все провайдеры позволяют обходить блокировки парой строчек в iptables. Значит придется раскошеливаться на vpn. Существуют готовые платные решения, но смысла в них мало, по цене выигрыша нет, скорее наоборот, на выходе за свои деньги мы получаем только vpn и ничего более. Из плюсов, пожалуй, только количество возможных локаций. Но у нас цель попасть на нужный сайт, а не заходить на него каждый день из новой страны. 

Первое, что делаем, это покупаем виртуальный сервер. Для наших целей подойдет любой. На чистой ubuntu server 16.04 c запущенным pptpd и двумя подключенными к нему клиентами, количество потребляемых ресурсов выглядит так:

Как видно, подойдет действительно любой, самый дешевый сервер, Единственные критичные параметры это трафик и тип виртуализации. С первым всё понятно, а со вторым, что бы не вдаваться в подробности и не заиметь проблем в будущем, просто проходим мимо OpenVZ.

Для себя выбрал OVH. Цена вопроса 197 рублей в месяц. Скорость и пинг вполне устраивают: 

После того, как мы оплатили наш vps, на почту приходит письмо с ip-адресом сервера, логином и паролем пользователя root.
Подключаемся к серверу с помощью putty. Вводим ip, который нам прислали в письме, в поле Host name. Больше ничего не меняем, жмем кнопку open.

При первом подключении получаем предупреждение, соглашаемся нажимая "ДА".
Вводим логин и пароль, которые нам прислали. Не смущаемся при вводе пароля, ввод пароля не отображается, но он вводится, просто поверьте.

Я не буду подробно рассматривать вопросы безопасности, напишу только, что первым делом после подключения требуется создать пользователя, под которым мы будем работать, добавить его в группу sudo и запретить пользователю root подключаться через ssh. Если вы счастливый обладатель статичного ip-адреса, то открываем доступ к ssh для этого адреса, запрещаем подключение всем остальным. Ещё в различных рекомендациях часто встречаю совет поменять порт по умолчанию с 22 на любой другой. Никогда этого не делаю, бессмысленно при условии, что доступ по ключу и ограничен правилами фаервола. В любом случае от таргетной атаки не спасет, а порт вы скорее всего забудете.

Сама установка и настройка vpn проста и занимает несколько минут.

Обновляем систему
sudo apt-get update && apt-get upgrade

Устанавливаем pptpd
sudo apt-get install pptpd

Редактируем конфиг pptpd
sudo nano /etc/pptpd.conf

Добавляем в конец файла (shift+insert)
localip 192.168.5.1
remoteip 192.168.5.10-200
connections 100

Редактируем pptpd-options
sudo nano /etc/ppp/pptpd-options

Добавляем
ms-dns 8.8.8.8
ms-dns 8.8.4.4

Создадим пользователя и пароль для vpn
sudo nano /etc/ppp/chap-secrets

Добавим
vasya pptpd password *

Разрешим пользователю ходить в интернет через сервер
sudo nano /etc/sysctl.conf

Добавляем
net.ipv4.ip_forward=1

Сохраняем изменения командой
sysctl -p

Перезапускаем pptpd
sudo service pptpd restart

Далее прописываем правила для фаервола
sudo ​​​​​​iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o ens3 -j MASQUERADE
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Вместо ens3 может быть другое имя, например eth0, узнать можно командой ifconfig

Всё, вы обладатель своего личного vpn. Можно создавать подключение и пользоваться.