Настройка pptp vpn линукс

Записки IT специалиста

Данной статьей мы продолжим тему настройки коммутируемых соединений в среде Ubuntu Server. Сегодня рассмотрим настройку PPTP подключений, которые могут использоваться как для подключения к интернету, так и для организации корпоративных сетей. Несмотря на то, что материал рассчитан в первую очередь на системных администраторов, он будет полезен всем пользователям Linux.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Для работы Ubuntu Server в качестве PPTP-клиента необходимо установить пакет pptp-linux:

sudo apt-get install pptp-linux

Основные настройки пакета, применяемые ко всем PPTP соедниненям по умолчанию хранятся в /etc/ppp/options.pptp, в большинстве случаев менять их нет необходимости, однако вы можете добавить какие-то свои опции, общие для всех соединений.

Для настройки подключения создадим в /etc/ppp/peers файл настроек с его именем:

sudo touch /etc/ppp/peers/test-vpn

Откроем его и внесем следующее содержимое:

pty "pptp vpn.server.local --nolaunchpppd" #тип и адрес сервера
name vpnuser #логин
remotename TEST #имя соединения
require-mppe-128 #включаем поддержку MPPE
nodefaultroute #не создавать маршрут по умолчанию
unit 12 #номер ppp интерфейса
persist #переподключаться при обрыве
maxfail 10 #количество попыток переподключения
holdoff 15 #интервал между подключениями
file /etc/ppp/options.pptp
ipparam $TUNNEL

В нашем примере создано PPTP подключение для корпоративной сети, поэтому мы добавили опцию «не создавать маршрут по умолчанию», если вы настраиваете соединение для доступа в интернет, то нужно наоборот разрешить создание нулевого маршрута, для этого укажите опции:

defaultroute #создавать маршрут по умолчанию
replacedefaultroute #принудительно изменять маршрут по умолчанию

Опция «включаем поддержку MPPE» не является обязательной и требуется только тогда, когда сервер использует этот тип шифрования. Номер ppp интрефейса создает для подключения всегда один и тот же сетевой интерфейс, в нашем случае это будет ppp12.

Отдельно стоит остановиться на наборе опций для автоматического переподключения. Мы настоятельно советуем ограничить количество попыток (0 — неограничено) разумным числом и не ставить слишком маленький промежуток времени. Это позволит ограничить нагрузку на VPN-сервер в случае проблем с подключением (например нет денег на балансе или изменились учетные данные).

Читайте также:  Universal print driver samsung linux

Если вы подключаетесь к доменной сети, то имя пользователя следует указывать следующим образом:

Теперь укажем авторизационные данные для нашего пользователя, для этого в файл /etc/ppp/chap-secrets добавим следующую строку:

которая предусматривает использование указанных учетных данных, где vpnpassword -пароль соединения, для удаленного соеднинения TEST (это имя мы указали в опции remotename). Для доменного пользователя строка будет выглядеть так:

"DOMAIN\\vpnuser" TEST "vpnpassword"

Теперь самое время проверить наше соединение. Первый раз лучше запустить его в интерактивном режиме, тогда все сообщения об ошибках и ходе подключения вы будете видеть прямо в консоли:

ppptp-ubuntu-001.jpg

В консоли сервера также видим подключившегося клиента:

ppptp-ubuntu-002.jpg

В дальнейшем управлять соединением можно при помощи команд pon и poff (подключить и отключить соответственно).

Чтобы автоматически поднимать соединение при запуске системы в файл /etc/network/interfaces добавим секцию:

auto tunnel
iface tunnel inet ppp
provider test-vpn

Для доступа в корпоративную сеть может понадобиться добавление статических маршрутов, это тоже можно делать автоматически, для этого в конец созданой секции добавим строку:

up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.222

Мы привели реальный маршрут используемый в нашем случае, вы должны указать здесь свои данные, если они не известны — уточните их у системного администратора.

Перезапустим сеть и убедимся что все работает правильно:

sudo /etc/init.d/networking restart

Для получения списка маршрутов воспользуйтесь командой route, также можно пропинговать какой-нибудь внутренний хост.

ppptp-ubuntu-003.jpg

При подключении к сети интернет через PPTP бывают ситуации, когда, несмотря на указанные опции, нулевой маршрут через туннель не устанавливается. В этом случае можно в конец соответсвующей секции в /etc/network/interfaces добавить:

up route del default
up route add default dev ppp12

где ppp12 — имя вашего ppp интерфейса.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Источник

Поднимаем VPN – PPTP сервер на Ubuntu

Поднимаем PPTP сервер на Ubuntu

В этой статье я расскажу как поднять собственный PPTP сервер на Ubuntu. Почему именно PPTP? У каждого свои цели и задачи, кому-то нужен PPTP, кому-то L2TP/IPSec, кому-то IKEv2, а может и OpenVPN. Я постараюсь написать статьи по установке и настройке хотя бы двух протоколов VPN на Ubuntu и начну с PPTP. Все описанные действия производились на Ubuntu 14.04.5 LTS. Напоминаю, что дешевые VPS во Франции для запуска своего VPN вы можете посмотреть здесь.

Читайте также:  Linux shell file commands

Для установки понадобятся права root пользователя или sudo.

1. Устанавливаем необходимые пакеты:

После окончания установки, нам понадобится отредактировать несколько файлов. Для изменения файлов вы можете пользоваться любым удобным для вас способом, хоть nano, хоть визуальными редакторами и т.д.

Теперь вам необходимо определиться с локальной подсетью для клиентов VPN. Вы можете сделать себе подсеть из любой подсети, которая не маршрутизируется в интернете:

10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

2. Открываем файл /etc/pptpd.conf, находим и раскоментируем (если вдруг закоментированы) строки localip и remoteip, затем прописываем свою ip адресацию.

localip 172.16.0.1 remoteip 172.16.0.2-254
  • localip – ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
  • remoteip – пул ip адресов для раздачи клиентам VPN.

Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

3. Открываем файл /etc/ppp/pptpd-options и добавляем в конце файла:

mtu 1400 mru 1400 auth require-mppe

В этом же файле при необходимости вы можете указать конкретные DNS, которые будут использоваться при подключении через VPN. Найдите и раскомментируйте строки ms-dns:

4. Открываем стандартный файл /etc/sysctl.conf, находим и раскомментируем строку:

5. Добавляем необходимые правила в iptables:

iptables -A INPUT -p gre -j ACCEPT iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Обратите внимание, что eth0 – имя вашего сетевого интерфейса. Вы можете узнать его с помощью команды ifconfig

Если вам необходимо, чтобы была локальная сеть между клиентами, подключенными к VPN, добавьте следующие правила в iptables:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE iptables -I INPUT -s 172.16.0.0/24 -i ppp0 -j ACCEPT iptables --append FORWARD --in-interface eth0 -j ACCEPT

Обратите внимание, что 172.16.0.0/24 – локальная подсеть, которую вы себе выбрали, а ppp0 – имя pptp интерфейса.

Читайте также:  Pax sp30 драйвер linux

Для сохранения iptables, выполните команду:

6. Пользователей для подключения к VPN серверу добавляем в файле /etc/ppp/chap-secrets

user1 pptpd password1 "*" user2 pptpd password2 "172.16.0.2"
  • user1 – имя пользователя
  • password1 – пароль пользователя
  • “*” – локальный ip будет выдаваться из пула, указанного в файле /etc/pptpd.conf
  • “172.16.0.2” – пользователю будет присвоен указанный ip адрес.

7. Перезапускаем сервис pptpd для применения новых настроек:

Ваш PPTP сервер на Ubuntu запущен!

P.S. Если вдруг вы столкнетесь с тем, что добавленные правила iptables пропадают после рестарта firewall или перезагрузки машины, то сделайте действия, описанные ниже.

1. Добавляем заново все правила, как описано в 5-м шаге.
2. Сохраняем правила в конфиг:

iptables-save > /etc/iptables.conf

3. Открываем файл /etc/network/interfaces и добавляем в самый конец:

pre-up /sbin/iptables-restore < /etc/iptables.conf

Теперь можете перезагрузить Firewall или всю машину и убедиться, что правила iptables сохраняются.

  1. Если ваши цели связаны с анонимностью и безопасностью, я крайне не рекомендую использовать PPTP. Лучше посмотрите в сторону OpenVPN или Wireguard.
  2. На новых системах уже нет возможности сохранять правила iptables способом, описанным выше. И вообще, желательно отказаться от iptables-save по той простой причине, что есть сервисы, которые сами добавляют свои правила в iptables после перезагрузки машины (например Docker) и могут возникнуть конфликты с уже сохраненными iptables-save через iptables-save правилами.

Поэтому проще делать следующим образом:

Сначала вы создаете iptables.sh и прописываете в него все собственные правила, например так:

#!/bin/sh iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # ICMP iptables -A INPUT -p icmp -j ACCEPT # SSH iptables -A INPUT -s 5.5.5.5/32 -p tcp --dport 22 -j ACCEPT # Веб-сервер iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Zabbix Agent iptables -A INPUT -s 5.5.5.5/32 -p tcp --dport 10050 -j ACCEPT iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT

Затем добавляете файлу права на запуск: chmod +x /root/iptables.sh и добавляете в крон:

@reboot root /root/iptables.sh >/dev/null 2>&1

Источник

Оцените статью
Adblock
detector