PPTP-сервер своими руками на Ubuntu 18.04
Подготовительные операции
Независимо от того, какой из вариантов VPN сервера вы предпочтете, доступ клиентов в Интернет будет реализован штатными средствами операционной системы. Для того, чтобы из внутренней сети открыть доступ в Интернет через внешний интерфейс сервера необходимо разрешить пересылку пакетов между интерфейсами (форвардинг пакетов), и настроить трансляцию адресов.
Для включения форвардинга пакетов откроем файл “/etc/sysctl.conf” и изменим значение параметра “net.ipv4.ip_forward” на 1.
Чтобы изменения применились без перезагрузки сервера, выполним команду
sudo sysctl -p /etc/sysctl.conf
Трансляция адресов настраивается средствами iptables. Предварительно уточним имя внешнего сетевого интерфейса, выполнив команду “ip link show”, оно понадобится на следующем шаге. В нашем случае имя интерфейса “ens3”.
Включаем трансляцию адресов на внешнем интерфейсе для всех узлов локальной сети.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Обратите внимание, что в команде необходимо указать реальное имя сетевого интерфейса. На вашем сервере оно может отличаться.
По умолчанию все созданные правила iptables сбрасываются после перезагрузки сервера, для того, чтобы этого избежать, воспользуемся утилитой “iptables-persistent” Устанавливаем пакет.
sudo apt install iptables-persistent
В процессе установки откроется окно конфигурации, в котором система предложит сохранить текущие правила iptables. Так как правила уже настроены, соглашаемся и дважды нажимаем “Yes”. Теперь, после перезагрузки сервера правила будут восстанавливаться автоматически.
1. PPTP сервер
Настройка сервера
Устанавливаем пакет
sudo apt install pptpd
После завершения установки открываем в любом текстовом редакторе файл “/etc/pptpd.conf” и приводим его к следующему виду.
option /etc/ppp/pptpd-options #путь к файлу с настройками
logwtmp #механизм логирования клиентских подключений
connections 100 #количество одновременных подключений
localip 172.16.0.1 #адрес, который будет шлюзом для клиентов
remoteip 172.16.0.2-200 #диапазон адресов для клиентов
Далее редактируем файл “/etc/ppp/pptpd-options”, большинство параметров уже установлены по умолчанию.
#имя сервиса, потребуется при создании учетных записей для клиентов
name pptpd
#запрещаем устаревшие методы аутентификации
refuse-pap
refuse-chap
refuse-mschap
#разрешаем более надежный метод аутентификации
require-mschap-v2
#включаем шифрование
require-mppe-128
#указываем dns сервера для клиентов, можно указать любые доступные
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
На следующем этапе необходимо создать учетную запись для подключения клиентов. Предположим, мы хотим добавить пользователя “vpnuser”, с паролем “1” и разрешить для него динамическую адресацию. Открываем файл “/etc/ppp/chap-secrets” и добавляем в конец строку с параметрами пользователя.
vpnuser pptpd 1 *
Значение “pptpd” это имя сервиса, которое мы указали в файле “pptpd-options”. Вместо символа “*” для каждого клиента можно указать фиксированный ip-адрес. В результате содержимое файла “chap-secrets” будет таким.
Для применения настроек перезагружаем службу pptpd и добавляем её в автозагрузку.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Настройка сервера завершена.
Настройка клиента
Открываем “Пуск” - “Параметры” - “Сеть и интернет” - “VPN” и нажимаем “Добавить VPN-подключение”
В открывшемся окне вводим параметры подключения и нажимаем “Сохранить”
- Поставщик услуг VPN: “Windows (встроенные)”
- Имя подключения: “vpn_connect” (можно ввести любое)
- Имя или адрес сервера: (указываем внешний ip адрес сервера)
- Тип VPN: “Автоматически”
- Тип данных для входа: “Имя пользователя и пароль”
- Имя пользователя: vpnuser (имя, которое указано в файле “chap-secrets” на сервере)
- Пароль: 1 (так же из файла “chap-secrets”)
После сохранения параметров, в окне VPN появится новое подключение. Щелкаем по нему левой кнопкой мыши и нажимаем “Подключиться”. При успешном соединении с сервером, на значке подключения появится надпись “Подключено”.
В свойствах подключения отображаются внутренние адреса клиента и сервера. В поле “Адрес назначения” указан внешний адрес сервера.
При установленном соединении внутренний ip-адрес сервера, в нашем случае 172.16.0.1, становится шлюзом по умолчанию для всех исходящих пакетов.
Воспользовавшись любым онлайн-сервисом вы можете убедиться, что внешний IP адрес компьютера теперь совпадает с IP адресом вашего VPN сервера.
Материал с сайта profitserver.ru