Простой VPN сервер с помощью PPTP.

Virtual Private Network — виртуальная частная сеть, позволяет вам создать шифрованный канал по верх другой публичной сети, например Internet. А PPTP(Point-to-Point Tunneling Protocol) достаточно старый протокол который поддерживаю пожалуй все устройства. К сожалению у него много проблем с безопасностью.

  • MSCHAP-v2 уязвим к словарной атаке на перехваченные challenge response пакеты. Существуют программы, выполняющие данный процесс.
  • В 2012 году было показано, что сложность подбора ключа MSCHAP-v2 эквивалентна подбору ключа к шифрованию DES, и был представлен онлайн-сервис, который способен восстановить ключ за 23 часа.

Но для решения задач где не требуется большой уровень безопасности он вполне пригоден. Ну например использовать VPN сервер в публичных WiFi сетях или доступ к серверу через VPN туннель для большей безопасности.Начнем:

apt-get install pptpd

Далее открываем файл /etc/pptpd.conf  и редактируем строчки:

localip 10.0.0.1 #ip адрес сервера.

remoteip 10.0.0.100-200 #ip адреса которые будут выдаваться клиентам.

Далее открываем файл /etc/ppp/options.pptpd и проверяем что бы все было хорошо:

name pptpd  # Название локальной системы для целей авторизации.
 refuse-pap  # Отказывать авторизацию пирам, использующим PAP.
 refuse-chap  # Отказывать авторизацию пирам, использующим CHAP.
 refuse-mschap  # Отказывать авторизацию пирам, использующим MS-CHAP.
 require-mschap-v2  # Требовать авторизацию с использованием MS-CHAPv2.
 require-mppe-128  # Требовать использование MPPE с 128-битным шифрованием.
 proxyarp  # Добавлять запись в системную таблицу ARP.
 lock    # Обеспечить блокирование для монопольного доступа к последовательному устройству.
 nobsdcomp   # Отключить сжатие BSD-Compress.
 novj    # Отключить сжатие Вана Якобсона для заголовков.
 novjccomp  # Отключить сжатие идентификатора соединения.
 nolog    # Отличить логирование в файл.
 ms-dns 8.8.8.8   # Указываем первичный адрес DNS-сервера для клиентов Microsoft Windows.
 ms-dns 8.8.4.4   # Указываем вторичный адрес DNS-сервера для клиентов Microsoft Windows.
 mtu 1400 # Размер пакета.
 mru 1400 # Размер пакета.

Далее нам надо создать пользователей и задать им пароли /etc/ppp/chap-secrets 

# <Имя> <Название сервера> <Пароль> <IP-адреса>

user2    pptpd   123     *

Собственно основная настройка на этом закончена.Не забывайте так же что должен быть открыт порт 1723 и разрешены gre пакеты если вдруг у вас закрыты они файерволом. Что бы клиенты могли общаться не только внутри нашей приватной сети но и с внешней сетью надо настроить форвардинг (Forwarding).

Просто отредактируйте /etc/sysctl.conf, добавив туда следующую строку, если ее там еще не было:

net.ipv4.ip_forward = 1

Для применения изменений выполните команду sysctl -p. 

Если вы хотите что бы работал еще и интернет через VPN, то нужно еще настроить NAT.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.

  • POSTROUTING — через эту цепочку проходят все исходящие пакеты, поэтому именно в ней целесообразно проводить операции маскарадинга (SNAT и MASQUERADE).
  • MASQUERADE — подменяет адрес источника для исходящих пакетов адресом того интерфейса, с которого они исходят, то есть осуществляет маскарадинг. Такая операция позволяет, например, предоставлять доступ в Интернет целым локальным сетям через один шлюз.

 

Более подробно про iptables читайте в этой статье.

Denian/Ubuntu. На других Linux дистрибутивах  установка может отличаться.