В заголовке данной статьи почётное место занимает словосочетание “… для ленивых”. Спешу заверить читателя в том, что эти слова не носят оскорбительный характер.
Напротив, если Вы открыли и читаете данную статью, то лень – не Ваша подруга )
Как многие мои предыдущие статьи, желание написать данную статью родилось в моей голове спонтанно. Как говорили до нас и будут говорить после нас : “Желания должны исполняться” )
Сегодня я напишу о том, как надо поднимать сервер PPTP VPN под управлением CentOS 7.
“Этот баян” многократно описан и переписан на страницах рунета ” – наверняка подумает в этом месте читатель и окажется прав )
Почему-то мне захотелось преподнести этот “баян” в своём представлении.
Как известно, семейство операционных систем Linux не отличается своей дружелюбностью к пользователю. Каждому столкнувшемуся с ними приходилось многократно править конфигурационные файлы системы в поисках работоспособности того или иного приложения. Со временем процесс бесконечной правки файлов Linux превращается в надоедливую рутину.
Для себя процесс правки конфигов Linux на удалённых серверах я облегчила установкой на локальном компьютере программы Bitvise SSH Client. Программа позволяет редактировать файлы, находящиеся на удалённой машине, в редакторе Notepad++. При этом не возникает никаких проблем с кодировками, нет необходимости многократно стучать по клавиатуре в консольном текстовом редакторе Linux, имеется возможность копи-пастить информацию кнопками мыши и сохранять её на удалённом компе.
При всех своих достоинствах, программа Bitvise SSH Client не спасет от ошибок начинающих линуксоидов: всегда что-то пойдёт “не так”. Процесс поиска ошибки занимает порой довольно продолжительный период времени. К примеру, вчера на полу-часовую установку PPTP VPN под управлением CentOS 7 я потратила весь день (
Несмотря на то, что упомянутый процесс многократно описан системными администраторами в своих блогах, по-настоящему стоящих статей не так уж и много. К тому-же в процессе установки VPN-сервера возникают вопросы, ответы на которые получить не у кого. Учитывая тот факт, что данный сайт носит статус “форума”, отныне и навсегда каждый желающий сможет получить ответ ЗДЕСЬ !
– Немного самонадеянно – пробежала мысль в моём правом полушарии
– Ну и пусть – оппонировало левое )
– Мне это нравится – подытожил мозг, но пора уже переходить к сути статьи ))
Прежде, чем начать установку PPTP VPN-сервера на CentOS 7, необходимо установить репозиторий и установить сетевые утилиты.
# yum install -y epel-release
# yum install -y mc
# yum install -y net-tools
Указанная выше установка файлового менеджера Midnight Commander никак не связана с процессом установки сервера PPTP VPN и не является обязательной.
Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux
Код:
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Выше я упомянула, что вчерашний процесс установки сервера VPN занял у меня весь день. В течение дня я редактировала этот файл многократно: локально в Notepad++, удалённо в mcedit. К вечеру под влиянием настройки Linux во мне стали просыпаться экстрасенсорные возможности )
С самого начала статьи я обещала способ “для ленивых”, поэтому сегодня – никаких “ковыряний” в конфигах не будет !
Сегодня – способ для ленивых ))
Я призываю читателя статьи отключить SeLinux, а также продолжить установку PPTP VPN сервера при помощи нескольких консольных команд. Команды можно “тупо копировать” при помощи манипулятора “мышь” из этой статьи, вставлять в консоль Bitvise SSH Client и нажимать клавишу “ENTER” на клавиатуре. К концу статьи на вашей CentOS 7 гарантированно, с наименьшими умственными, эмоциональными и физическими затратами будет стоять PPTP VPN сервер )
Отключаем SeLinux:
# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/sysconfig/selinux
# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/selinux/config
После перезагрузки проверьте статус SELinux командой «sestatus», Вы должны увидеть следующий вывод:
Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:
# yum install -y ppp pptp pptpd pptp-setup
# chkconfig pptpd on
Далее настройка конфигов из консоли (копируем, вставляем и жмём “Enter”) :
Файл /etc/pptpd.conf
cp /etc/pptpd.conf /etc/pptpd.conf.bak
cat >/etc/pptpd.conf<<EOF
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.10.1
remoteip 10.0.10.2-254
EOF
Файл /etc/ppp/options.pptpd
Редактирование данного файла преследует собою цель – указание DNS серверов.
В примере ниже гугловские
ms-dns 8.8.8.8
ms-dns 8.8.4.4
можно заменить на свои.
cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
cat >/etc/ppp/options.pptpd<<EOF
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
EOF
Файл /etc/ppp/chap-secrets
Редактирование данного файла преследует собою цель – указание логина и пароля для подключения к PPTP VPN серверу.
В примере ниже “root” и “toor” можно заменить на свои.
cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
cat >/etc/ppp/chap-secrets<<EOF
root pptpd toor *
EOF
Файл /etc/sysctl.conf
Редактирование данного файла преследует собою цель – изменение значения “0” на “1” net.ipv4.ip_forward = 1.
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat >/etc/sysctl.conf<<EOF
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.ip_forward = 1
EOF
Перечитываем конфигурацию.
На этом установка и настройка VPN PPTP сервера закончена.
Осталось только “разобраться” с файерволлом.
Удаляем firewalld,
# systemctl stop firewalld
# systemctl disable firewalld
вместо него ставим IPTABLES:
# yum install iptables-services iptables
Включим автозапуск iptables:
# systemctl enable iptables
chmod +x /etc/rc.d/rc.local
Теперь процесс настройки IPTABLES подошёл к ответственному моменту – настройке конфигурации таблиц.
В рамках данной статьи, с целью не набивать себе “шишек” и не наживать лишних хлопот, я рекомендую отредактировать конфигурационный файл /etc/sysconfig/iptables в текстовом редакторе. Да, да, вопреки заявленному в начале статьи принципу отказа от использования текстовых редакторов, рекомендую сделать одно-единственное исключение ))
Код:
mcedit /etc/sysconfig/iptables
*nat
REROUTING ACCEPT [0:0]
OSTROUTING 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
Истинные поклонники консоли вместо текстового редактора могут воспользоваться консольными командами:
echo “iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE” >> /etc/rc.d/rc.local
iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
Это конец, сохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.
service iptables save
service iptables restart
systemctl start pptpd
Проверяем,запущен ли pptp-сервер;
Проверяем, слушается ли наш порт:
# netstat -an | grep -i listen
Дополнительная команда для проверки статуса pptpd: