Настройка PPTP-севера Ubuntu 20.04
1. Устанавливаем пакет
sudo apt-get install pptpd
Вам надо научиться редактироать текстовые файлыи сохранять их в Ubuntu. Самое просто это редактор nano. Когда написано отредактируете файл ХХХХ надо запустить
sudo nano ХХХХ и потом сохранить и выйти из редактора.
2. Настроим pptp сервер
редактируем файл
/etc/pptpd.conf
Внизу расскоменчиваем строки и можно оставить как там написано, а можно поменять сеть которую мы отдадим под туннель (я в данном примере себе зарезервировал сеть 192.168.99.ХХ
localip 172.16.0.1
remoteip 172.16.0.2-60,172.16.0.200
редактируем файл
/etc/ppp/pptpd-options
Точнее, даже не редактируем а проверяем следующий строчки (должны быть раскомменчены)
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
Вкратце, мы запрещаем все виды авторизации кроме mschap и требуем шифрование.
Редактируем файл (файл с логинами и паролями)
/etc/ppp/chap-secrets
Там пишем внизу с новой строки
ЛОГИН pptpd ПАРОЛЬ *
Таких строк можно написать много, по количеству пользователей. Пароль лежит в открытом режиме, не используйте пароли, которые вы используете для критических сервисов.
В нашем случае это будет
ivan pptpd ivanidanilo *
Можем запустить pptpd командой
systemctl pptpd start
А вот так надо сделать, чтобы pptpd запускался автоматически.
sudo systemctl enable pptpd
3. Настраиваем сеть
Теперь нам надо настроить сеть.
Во первых, теперь наш компьютер становится роутером и ему надо сказать что можно через себя пропускать пакеты.
В файле /etc/default/ufw
Находим DEFAULT_FORWARD_POLICY="DROP" и меняем на строчку
DEFAULT_FORWARD_POLICY="ACCEPT"
В файле /etc/ufw/sysctl.conf находим net/ipv4/ip_forward=0 и меняем на строчку
net/ipv4/ip_forward=1
В файле /etc/sysctl.conf находим строчку net.ipv4.ip_forward и меняем (раскомменчиваем) на
net.ipv4.ip_forward=1
Применяем все изменения по политике
sudo sysctl -p
Во-вторых, займемся файрволлом
1. если не установлен, устанавливаем ufw (скорее всего будет установлен)
sudo apt-get install ufw
Заодно поставим ssh сервер (удаленно ходить в командную строчку)
sudo apt-get install ssh
2. Теперь начинаем работать с ufw
Активируем
sudo ufw enable
и добавим правил
Пропускать ssh
sudo ufw add ssh
Пропускать авторизацию pptp
sudo ufw add from any to any 1723
Смотрим что получилось командой
sudo ufw status
Должны появиться правила
22/tcp ALLOW Anywhere
1723 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
1723 (v6) ALLOW Anywhere (v6)
Но, у сожалению, это еще не все. Нам надо добавить правило, чтобы ufw пропускал протокол GRE (специальный протокол для туннеля) и указать что надо все что приходит из туннеля "заворачивать (NAT) в внешний IP и выпускать наружу. Сделаем это.
Правим файл /etc/ufw/before.rules
В самом начале вставляем такой вот код для NAT
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-F
# Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 172.16.0.0/24 -o ens3 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't
# be processed
COMMIT
Теперь будем внимательны
вместо ens3 надо указать имя вашей сетевой карты, которая "смотрит" в интернет. Сейчас научимся узнавать имя карты.
Выполняем команду ifconfig (если система ругнется, то надо поставить пакет net-tools
sudo apt-get install net-tools
Вот так у меня выглядит ifconfig
Слева "имена" интерфейсов (в кружочках). Как узнать наш. Во первых, по выделенному ip-адресу (его должен был дать провайдер). У меня он замазан красным, но он там есть. Во-вторых через интерфейс скрее всего идет трафик (выделено зеленым). Итак, мой интерфейс это enp2s0.
Тогда у нас в итоге получается вот такой вот код
# NAT table rules *nat :POSTROUTING ACCEPT [0:0]
-F
# Forward traffic through enp2s0 - Change to match you out-interface
-A POSTROUTING -s 172.16.0.0/24 -o enp2s0 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't # be processed
COMMIT
Теперь перезапускаем ufw командой
sudo ufw disable && sudo ufw enable
Обращу отдельное внимание на "-F" - этот параметр не приводится в инструкциях, которые я читал, а без него правила nat начинают дублироваться. Смысл в том, что если вы сначала забыли поменять название интерфейса и оставили eth0, то у вас прописалось неверное правило. Вы перезапустили ufw, а потом вспомнили\исправили и перегрузили еще раз. Без "-F" старое правило не сотрется будет стоять перед новым и ничерта работать не будет.
Чтобы понять что у Вас правильные правила nat, нужно набрать команду (ufw этого не покажет)
sudo iptables -t nat --line-numbers -L -v
Вот что примерно вы увидите
Chain POSTROUTING (policy ACCEPT 1827 packets, 129K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 MASQUERADE all -- any enp2s0 172.16.0.0/24 anywhere
2 1668 122K MASQUERADE all -- any enp2s0 172.16.0.0/24 anywhere
Видно, что у вас 2 правила nat и они пронумерованы. Если Вы видите неправильные правила, то можете их удалить по номеру. Вот так удаляется правило номер "1"
sudo iptables -t nat -D POSTROUTING 1
ВСЕ ! На этом установка окончена. Теперь самое интересное. Берем ноубук с Windows\Ubuntu\Android или WiFi роутер и указываем тип соединения pptp логин\пароль те, что вы прописали в сервере и у вас должно установиться VPN-соединение и через него работать Интернет. И хотя pptp считается простейшим VPN, весь интернет будет у вас в руках.
Взято тут
Автор: igel