ВНИМАНИЕ: PPTP - БЕЗОПАСНЫЙ ПРОТОКОЛ! Мало того, что шифрование было взломано, но оно отправляет вашу аутентификацию в виде открытого текста и легко перехватывается. Было подсчитано, что время, необходимое для взлома пароля, примерно эквивалентно времени, которое требуется для взлома одного ключа DES. Подумайте об использовании OpenVPN или другой архитектуры VPN вместо PPTP!
Я использовал это руководство для настройки VPN-сервера PPTP на моем сервере Ubuntu 12.04.
Чтобы суммировать основные моменты в ссылке, хотя:
1: установить pptpd
и ufw
. iptables
может использоваться вместо UFW, но для простоты ufw
лучше, если вы не знаете iptables
.
sudo apt-get install pptpd ufw
2: Откройте необходимые порты. Руководство предлагает 22 (SSH) и 1723 для pptp vpn.
Sudo UFW позволяют 22
sudo ufw разрешить 1723
sudo ufw enable
3: Изменить /etc/ppp/pptpd-options
. Откройте файл в вашем любимом редакторе (у меня nano, поэтому для меня это команда sudo nano /etc/ppp/pptpd-options
) и закомментируйте эти строки, поставив #
перед ними, если вы хотите, чтобы это работало универсально на всех ОС:
Отказываюсь мазок
Отказываюсь глава
Отказываюсь MSCHAP
Вы можете прокомментировать эту строку, если хотите отключить шифрование: require-mppe-128
4: во время редактирования /etc/ppp/pptpd-options
добавьте DNS-серверы для VPN. В этом примере используются серверы OpenDNS:
МС-днс 208.67.222.222
МС-днс 208.67.220.220
5: Редактировать /etc/pptpd.conf
. Откройте файл в вашем любимом редакторе (у меня nano, так что команда для меня sudo nano /etc/pptpd.conf
). Вам необходимо добавить локальные VPN-IP-адреса для системы, поэтому добавьте:
localip 10.99.99.99
remoteip 10.99.99.100-199
Если ваша система является VPS, используйте общедоступный IP-адрес для «localip». Если это не так и находится в локальной сети, используйте IP-адрес вашего компьютера. Используйте разные IP-адреса и диапазоны, если эти IP-адреса существуют в вашей подсети! Если вы не знаете свой публичный IP-адрес вашего VPS, найдите его, запустивdig +short myip.opendns.com @resolver1.opendns.com
6: Изменить /etc/ppp/chap-secrets
. Откройте файл в вашем любимом редакторе (у меня nano, поэтому для меня команда sudo nano /etc/ppp/chap-secrets
) и добавьте данные аутентификации.
Формат для /etc/ppp/chap-secrets
:
[Имя пользователя] [Сервис] [Пароль] [Разрешенный IP-адрес]
Примером может быть: sampleuser pptpd samplepassword *
7: перезапустите pptpd. Запустите эту команду в терминале:sudo /etc/init.d/pptpd restart
8: Редактировать /etc/sysctl.conf
. Откройте файл в вашем любимом редакторе (у меня nano, так что команда для меня sudo nano /etc/sysctl.conf
). Снимите комментарий со следующей строки (удалив ее #
в начале) в /etc/sysctl.conf
: net.ipv4.ip_forward=1
Перезагрузите конфигурацию: sudo sysctl -p
9: этот шаг предполагает, что у вас есть UFW.
Отредактируйте /etc/default/ufw
и измените параметр DEFAULT_FORWARD_POLICY
с DROP
наACCEPT
10: этот шаг предполагает, что у вас есть UFW.
Отредактируйте /etc/ufw/before.rules
и добавьте следующее в начале /etc/ufw/before.rules
или непосредственно перед *filter
правилами (рекомендуется):
# Правила таблицы NAT
* физ
: РАЗМЕЩЕНИЕ ПРИНЯТИЯ [0: 0]
# Разрешить пересылать трафик на eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# Обработка правил таблицы NAT
COMMIT
Если у вас ядро версии 3.18 и новее (вы можете проверить это, запустив uname -r
), также добавьте следующие строки перед # drop INVALID packets ...
строкой:
-A ufw-before-input -p 47 -j ACCEPT
11. Перезапустите брандмауэр, чтобы обновить наборы правил и применить правила, которые мы добавили к /etc/ufw/*.rules
файлам: sudo ufw disable && sudo ufw enable
Предупреждение: если у вас есть другие порты, которые вам нужно открыть, например, для HTTPS, если на вашем сервере размещается веб-сайт, вам нужно отдельно добавить эти порты в список разрешенныхsudo ufw allow <PORT>