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 дистрибутивах установка может отличаться.