Настройка PPTP VPN на CentOS 7
В данной статье мы рассмотрим настройку VPN сервера на базе CentOS 7 и настройку клиента на Windows 10.
Задача состоит в том что нам нужно работать с IP-адреса другой страны тогда, когда это необходимо. Например, подача отчетности, либо работа с клиент банком из другой страны не приветствуется законодательно. По крайней мере в нашем случае это так. Поэтому решено работать через VPN соединение на VPS сервере, который территориально находятся там где необходимо.
Прежде, чем начать установку PPTP VPN-сервера на CentOS 7, необходимо установить репозиторий, обновить систему и установить сетевые утилиты.
Добавляем репозиторий EPEL:
EPEL (Extra Packages for Enterprise Linux) — это основанный сообществом открытый и бесплатный проект репозитория предоставляемый командой Fedora, который содержит высококачественные пакеты дополнительного программного обеспечения для Linux дистрибутивов.
yum -y install epel-release
Проверить установку репозитория можно командой:
yum repolist
Обновляем систему:
yum update && yum upgrade
Если нужно узнать версию CentOS:
cat /etc/centos-release
uname -a
Если нужно ставим:
mc — GNU Midnight Commander — файловый менеджер с текстовым интерфейсом.
nano — консольный текстовый редактор.
htop — предназначенная для вывода на терминал списка запущенных процессов и информации о них (монитор процессов). Создана, как альтернатива top.
yum -y install mc nano htop
Проверяем есть ли в системе ifconfig (в CentOS 7 minimal его по умолчанию нет)
ifconfig -a
Если command not found, то ставим net-tools:
yum -y install net-tools
В CentOS 7 вместо iptables используется служба firewalld и, если предпочтение на стороне iptables то firewalld нужно отключить.
Устанавливаем iptables:
yum -y install iptables-services
Отключаем firewalld:
systemctl stop firewalld
systemctl mask firewalld
Устанавливаем PPTP VPN сервер:
yum -y install pptpd.x86_64
Редактируем системные файлы:
nano /etc/sysctl.conf
разрешаем обмен между сетевыми интерфейсами, добавим
net.ipv4.ip_forward = 1
nano /etc/pptpd.conf
добавляем например:
localip 10.0.0.1
remoteip 10.0.0.100-200 #диапазон адресов для клиентов
и проверяем наличие строки
option /etc/ppp/options.pptpd
nano /etc/ppp/options.pptpd
Добавляем внизу или меняем на
ms-dns 8.8.8.8
ms-dns 8.8.4.4
nano /etc/ppp/chap-secrets
Добавляем юзеров vpn-сервера.
Если нужно добавить следующего, то просто добавляем с новой строки.
# Secrets for authentication using CHAP
# client server secret IP addresses
username pptpd password *
username2 pptpd password2 *
Обновляем параметры:
sysctl -p
Для избежания проблем с загрузкой некоторых сайтов:
nano /etc/ppp/ip-up
перед последней строчкой вставить, в моем случае строка exit:/sbin/ifconfig $1 mtu 1400
Настраиваем iptables:
Команда для дампа текущего состояния iptables:
iptables-save > conf.txt
nano /etc/sysconfig/iptables
Название сетевого интерфейса в моем случае: eth0
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [853:222169]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p gre -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Перезапускаем iptables:
systemctl restart iptables
Добавим iptables в автозагрузку:
systemctl enable iptables
Проверим статус iptables:
systemctl status iptables
Проверим правила iptables:
iptables -L
Если остались с firewalld:
nano /etc/firewalld/services/pptp.xml
Добавляем правила firewall
firewall-cmd --permanent --new-service=pptp
firewall-cmd --permanent --zone=public --add-service=pptp
firewall-cmd --permanent --zone=public --add-masquerade
И перезапускаем:
firewall-cmd --reload
Запускаем службу pptpd:
systemctl start pptpd
Добавим pptpd в автозагрузку:
systemctl enable pptpd.service
Перезагружаем сервер:
reboot
Проверим, запущен ли pptpd:
ps ax | grep pptpd
Проверим, слушается ли наш порт:
netstat -an | grep -i listen
На этом настройка PPTP VPN сервера завершена.
Настройка клиента
PPTP VPN сервера на Windows 10
Заходим в Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом и выбираем Создание и настройка нового подключения или сети. Выбираем Подключение к рабочему месту. Далее выбираем Использовать мое подключение к Интернету (VPN). Указываем имя или IP-адрес сервера и название подключения (по желанию). Нажимаем Создать.
Выбираем Свойства созданного подключения и настраиваем его.
При первом подключении запросит имя и пароль пользователя.
На этом настройка клиента PPTP VPN сервера на Windows 10 завершена.