Настройка VPN сервера с использованием протокола PPTP

Сегодня Роскомнадзор неожиданно внёс GitHub в реестр запрещённых сайтов. Раньше на подобные информационные поводы я не обращал внимание, но как оказывается зря. Эр-Телеком (Дом.ру) повинуясь указанию федеральной службы полностью заблокировал доступ к ресурсу. По этой причине назрела необходимость в быстром поднятии собственного VPN-сервера.

Подмена сертификата Эр-Телекомом

Подмена провайдером DNS-запроса

Итак, есть сервер на DigitalOcean с установленной Ubuntu 14.04 LTS. Сама настройка проста и понятна, приступим.

  1. Устанавливаем PPTP-сервер:

    1
    
    root@example:~# apt-get install pptpd
    
  2. Переходим к редактированию конфига /etc/pptpd.conf.

    1
    2
    3
    4
    
    # локальный IP-адрес сервера
    localip 172.16.0.1
    # диапазон IP-адресов назначаемых клиентам после подключения
    remoteip 172.16.0.100-128
    
  3. Для настройки аутентификации необходимо добавить логин и пароль в файл /etc/ppp/chap-secrets:

    Редактирование файла chap-secrets

    Так же, при желании, можно ограничить подключение только с определённых адресов.

  4. В файл конфигурации PPTP демона /etc/ppp/pptpd-options заносим DNS-сервера, раздаваемые клиентам:

    1
    2
    
    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
    

    И стартуем PPTP-сервер:

    1
    
    root@example:~# service pptpd restart
    
  5. Настраиваем маршрутизацию транзитных пакетов. Правим /etc/sysctl.conf:

    1
    
    net.ipv4.ip_forward = 1
    

    И применяем изменения:

    1
    
    root@example:~# sysctl -p
    

    Добавляем правила для NAT в iptables:

    1
    2
    3
    4
    5
    
    root@example:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    root@example:~# iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
    root@example:~# iptables -I INPUT -s 172.16.0.0/24 -i ppp0 -j ACCEPT
    root@example:~# iptables --append FORWARD --in-interface eth0 -j ACCEPT
    root@example:~# iptables-save
    

На этом настройка PPTP-сервера завершена.

P. S.: Хотелось бы напомнить, что использование протокола PPTP не лишено недостатков, главным из которых является слабая безопастность на текущий момент.