WARNING: PPTP IS AN INSECURE PROTOCOL! Not only has the encryption been breached, but it sends your authentication in clear text and is easily intercepted. It has been estimated that the amount of time required to brute-force the password is roughly equivalent to the time required to brute-force a single DES key. Consider using OpenVPN or another VPN architecture instead of PPTP!
Я использовал это руководство для настройте PPTP-сервер VPN на моем сервере Ubuntu 12.04.
Подводя итог основным пунктам ссылки:
1: установите pptpd
и ufw
. iptables
можно использовать вместо ufw, но для удобства, ufw
лучше, если вы не знаете iptables
.
sudo apt-get install pptpd ufw
2: Откройте необходимые порты. Руководство предлагает 22 (SSH) и 1723 для pptp vpn.
sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable
3: Изменить /etc/ppp/pptpd-options
. Откройте файл с вашим любимым редактором (мой nano, так что команда для меня - sudo nano /etc/ppp/pptpd-options
) и закомментируйте эти строки, поставив перед ними #
, если вы хотите, чтобы это универсально работало на всех ОС:
refuse-pap
refuse-chap
refuse-mschap
Вы можете прокомментировать эту строку, если вы хотите отключить шифрование: require-mppe-128
4: При редактировании /etc/ppp/pptpd-options
добавьте DNS-серверы для VPN. В этом примере используются серверы OpenDNS:
ms-dns 208.67.222.222
ms-dns 208.67.220.220
5: Изменить /etc/pptpd.conf
. Откройте файл с вашим любимым редактором (мой nano, поэтому команда для меня - sudo nano /etc/pptpd.conf
). Вам необходимо добавить локальные IP-адреса VPN для системы, поэтому добавьте:
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
) и добавьте данные auth.
Формат для /etc/ppp/chap-secrets
:
[Username] [Service] [Password] [Allowed IP Address]
Пример: 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 table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
# Process the NAT table rules
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>