Настройка PPTP VPN на CentOS 7

Итак, задача взять недорогой виртуальный сервер на линуксе в Европе и настроить на нем vpn, чтобы пользоваться всеми благами интернета без российской цензуры. Инструкция по шагам с самого начала для тех кто так же как я с *никсом на «вы»:)

Инструкция по настройке ниже:

#Настройка vpn сервера pptpd на CentOS 7 x64
yum update && yum upgrade

#узнаем версию CentOS:
cat /etc/centos-release
uname -a

#установка mc
yum install mc

#проверяем есть ли в системе ifconfig (в CentOS 7 minimal его по умолчанию нет)
ifconfig -a

#если command not found, то ставим net-tools
yum install net-tools

#устанавливаем pptpd
yum install pptpd.x86_64 -y
chkconfig pptpd on

#если пакет pptpd.x86_64 не находится, надо подключить другой репозиторий:
yum install epel-release

или
cd /usr/src
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
rpm -Uhv epel-release-7-8.noarch.rpm

#файл /etc/sysctl.conf:

net.ipv4.ip_forward = 1

#файл /etc/pptpd.conf:
localip 10.0.0.1
remoteip 10.0.0.100-200 #диапазон адресов для клиентов

#проверяем чтобы в файле была строчка:
option /etc/ppp/options.pptpd

#файл /etc/ppp/options.pptpd:
ms-dns 8.8.8.8
ms-dns 8.8.4.4

#файл /etc/ppp/chap-secrets добавляем пользователей и пароли:
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
username    pptpd    password    *

#обновляем параметры:
sysctl -p

# редактируем файл /etc/ppp/ip-up — перед последней строчкой вставить (без этого некоторые сайты не грузятся)
/sbin/ifconfig $1 mtu 1400

service pptpd restart

#Удаляем firewalld, вместо него ставим IPTABLES
#—
#With RHEL 7 / CentOS 7, firewalld was introduced to manage iptables. IMHO, firewalld is more suited for workstations than for server environments.
#It is possible to go back to a more classic iptables setup. First, stop and mask the firewalld service:

systemctl stop firewalld
systemctl mask firewalld

#устанавливаем iptables
yum install iptables-services

#старт iptables при загрузке сервера
systemctl enable iptables

#команда для дампа текущего состояния iptables:  iptables-save >conf.txt

#название внешнего сетевого интерфейса — смотрим файл в /etc/sysconfig/network-scripts (ifcfg-enp0s6)
#enp0s6 — название интерфейса, подставляем его в файл /etc/sysconfig/iptables, файл должен быть таким:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o enp0s6 -j MASQUERADE
COMMIT
# Generated by iptables-save v1.4.21 on Fri Nov 13 02:12:55 2015
*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 enp0s6 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i enp0s6 -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 enp0s6 -j ACCEPT
-A FORWARD -i enp0s6 -o ppp+ -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


##Управление сервисом: systemctl [stop|start|restart] iptables

#Перезапускаем iptables:
systemctl restart iptables

#перезапускаем сервер
reboot

Настройка PPTP VPN на CentOS 7: 10 комментариев

  1. Антон

    У вас в выражениях типа —state, —reject-with, —dport указан длинный дефис. Т.е. ваш редактор текста заменил двойные тире на длинный дефис. Исправьте в статье.

  2. waymanskynet

    При данном конфиге средствами ОС все работает и туннель подымается и все работает. Но вот роутер Zyxel Keneetic 4g III пишет следующее:

    Jul 19 01:24:12pptp[8636]Plugin pptp.so loaded.
    Jul 19 01:24:12pptp[8636]PPTP plugin version 0.8.3 compiled against pppd 2.4.4-4
    Jul 19 01:24:12pptp[8636]pppd 2.4.4-4 started by root, uid 0
    Jul 19 01:24:12ndmNetwork::Interface::PPTP: added host route to 194.67.196.108 via UsbModem0.
    Jul 19 01:24:12pptp[8640]IP: 194.67.196.108
    Jul 19 01:24:13pptp[8640]control connection
    Jul 19 01:24:13pptp[8640]unix_sock
    Jul 19 01:24:13pptp[8641]enable echo requests (30:3)
    Jul 19 01:24:13pptp[8641]Sent control packet type is 1 ‘Start-Control-Connection-Request’
    Jul 19 01:24:13pptp[8641]Received Start Control Connection Reply
    Jul 19 01:24:13pptp[8641]Client connection established.
    Jul 19 01:24:14pptp[8641]Sent control packet type is 7 ‘Outgoing-Call-Request’
    Jul 19 01:24:14pptp[8641]Received Outgoing Call Reply.
    Jul 19 01:24:14ndmkernel: Fast VPN ctrl: setup for src 194.67.196.108
    Jul 19 01:24:14pptp[8641]Outgoing call established (call ID 1688, peer’s call ID 1408).
    Jul 19 01:24:14pptp[8636]Using interface ppp2
    Jul 19 01:24:14pptp[8636]Connect: ppp2 pptp (194.67.196.108)
    Jul 19 01:24:16ndmCore::ConfigurationSaver: configuration saved.
    Jul 19 01:24:44pptp[8641]read returned zero, peer has closed
    Jul 19 01:24:44pptp[8641]Closing connection (shutdown)
    Jul 19 01:24:44pptp[8641]Sent control packet type is 12 ‘Call-Clear-Request’
    Jul 19 01:24:44pptp[8641]read returned zero, peer has closed
    Jul 19 01:24:44pptp[8641]Closing connection (call state)
    Jul 19 01:24:44pptp[8636]Modem hangup
    Jul 19 01:24:44ndmkernel: Fast VPN ctrl: release for src 194.67.196.108
    Jul 19 01:24:44pptp[8636]Connection terminated.
    Jul 19 01:24:44pptp[8636]Exit.
    Jul 19 01:24:44ndmService: «PPTP1»: unexpectedly stopped.

    Не подскажете куда смотреть?

    1. alex Автор записи

      Не знаю, попробуйте написать в суппорт zyxel, вроде они раньше помогали.
      А вообще я бы рекомендовал в качестве роутера использовать Mikrotik, например RB951G, девайс на 5+ за свои деньги, очень стабильный и гибко настраиваемый.

  3. Eugene

    Не выходит каменный цветок 🙁
    Статья написана отлично, но в моих условиях — не работает.
    Вопрос: при [пере]запуске pptpd должен ли появляться интерфей

  4. Eugene

    Статья изумительна (честно).
    Но в моем случае не выходит каменный цветок.
    Вопрос — при [пере]старте pptpd должен ли появляться интерфейс ppp0?
    А то у меня сервис pptpd говорит «всё чики, бро!», а /dev/ppp? — нема.
    CentOS7 в состоянии «муха не сидела» (только-что yum update сделал).

    PS. т.е. в статью больше диагностики бы.

  5. eugene

    в листинге iptables после строки безусловного реджекта:
    -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

    бессмысленны.

  6. Михаил

    remoteip здесь диапазон разрешенных для подключения ip?
    #файл /etc/pptpd.conf:
    localip 10.0.0.1
    remoteip 10.0.0.100-200 #диапазон адресов для клиентов

  7. kem

    Вот это надо в конец, а то vpn не подключится:
    -A INPUT -j REJECT —reject-with icmp-host-prohibited

    Но у меня,всё равно трафик не выходит в интернет из vpn, может, что-то ещё забыли?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *