Вернуться назад

Настройка 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

Поднимаем pptpd на UBUNTU- теперь это актуально. И чуть про ufw.

Слева "имена" интерфейсов (в кружочках). Как узнать наш. Во первых, по выделенному 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
Дата: 05 мая 2021 г. в 22:16:51

Автор: igel