Centos 6.5 настройка PPTP сервера

Вводные.
Шлюз. (Виртуальная машина) 2 сетевых карты. одной картой смотрит во внешнюю сеть, второй — внутрь локальной сети.
Задача:
Дать мобильным клиентам доступ во внутреннюю сеть.

eth0 LAN inet addr:192.168.11.1 Bcast:192.168.11.255 Mask:255.255.255.0
eth1 WAN inet addr:XX.XX.XX.178 Bcast:XX.XX.XX.191 Mask:255.255.255.248
PPP 172.16.16.1

Для начала, обновляемся. Ставим вспомогательные пакеты.

yum update && yum upgrade
yum install ssh openssh-server nano wget fetch tcpdump


Отключаем selinux

[root@gate ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

т.к. в моем случае шлюз - виртуальная машина на хосте ESXi - ставим vmWare tools

yum install perl gcc make kernel-headers kernel-devel -y
mount /dev/cdrom /mnt
cd /mnt
tar xzvf VMwareTools-9.4.0-1280544.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib/
./vmware-install.pl --default

reboot
ifconfig -a
wget http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
rpm -i pptp-release-current.noarch.rpm
yum install pptpd ppp  pptp pptpd dnsmasq
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp

[root@gate ~]# cat /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 172.16.16.0/24 -o eth0 -j SNAT --to-source 192.168.11.1 --persistent 
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [433:72508]
-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 # Порт для ssh
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT # Порт для pptp
-A INPUT -i ppp+ -j ACCEPT # Разрешаем любые входящие от клиентов на PPTP
-A INPUT -p gre -j ACCEPT # Разрешаем прохождение gre
-A FORWARD -j ACCEPT  # Форвардинг разрешен
-A FORWARD -i ppp+ -o ppp+ -j ACCEPT # Разрешаем передачу данных от одного клиента другому
COMMIT

cat /etc/sysctl.conf
....
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
...

cat /etc/rc.d/rc.local
...
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
...

[root@gate ~]# cat /etc/pptpd.conf
localip 172.16.16.1
remoteip 172.16.16.200-250
option /etc/ppp/options.pptpd

[root@gate ~]# cat /etc/ppp/options.pptpd
# имя сервера - используется для аутентификации
name pptpd
# Список протоколов проверки пароля
refuse-pap            # Незашифрованный пароль PAP
refuse-chap           # Протокол проверки пароля CHAP
refuse-mschap         # Протокол проверки пароля MS-CHAP
require-mschap-v2     # Протокол проверки пароля MS-CHAP v2
require-mppe-128      # Использоавть MPPE128 шифрование при проверке пароля
                      # MS-CHAP v2
nobsdcomp
nodeflate
novj
novjccomp
nologfd
proxyarp
ms-dns 8.8.8.8 # DNS1
ms-dns 8.8.4.4 # DNS2
mtu 1400
mru 1400
lcp-echo-failure 6
lcp-echo-interval 10
nodefaultroute # 
debug # Для отладки

[root@gate ~]# cat /etc/ppp/chap-secrets
# Secrets for authentication using PAP
# client        server  secret                  IP addresses
user1   pptpd   P@SS      "*"

sysctl -p

chkconfig pptpd on
chkconfig iptables on
chkconfig dnsmasq on

service pptpd start

Centos 6.5 настройка PPTP сервера: 6 комментариев

  1. JG

    Здравствуйте, сделал все как вы описали, пытаюсь подключиться к VPN серверу (Centos 6.5) с Win8 выдает 619 ошибку, на Win8 выставил CHAP/MS-CHAPv2, на VPN сервере:
    cat /etc/ppp/options.pptpd
    name pptpd
    #auth # требуем авторизацию у клиентов
    #refuse-pap # Не зашифрованный пароль PAP
    refuse-chap # Протокол проверки пароля CHAP
    refuse-mschap # Протокол проверки пароля MS-CHAP
    require-mschap-v2 # Протокол проверки пароля MS-CHAP v2
    #require-mppe-128 # Использовать MPPE128 шифрование при проверке пароля MS-CHAP v2
    #require-mppe # Используем шифрование
    proxyarp
    nodefaultroute
    lock
    nobsdcomp
    logfile /var/log/ppp/pptpd.log
    ms-dns 8.8.8.8
    debug
    nodeflate
    novj
    novjccomp
    nologfd
    mtu 1400
    mru 1400
    lcp-echo-failure 6
    lcp-echo-interval 10

    cat /etc/pptpd.conf
    ppp /usr/sbin/pppd
    option /etc/ppp/options.pptpd
    localip 192.168.200.1
    remoteip 192.168.200.100-200

    service iptables status
    Table: nat
    Chain PREROUTING (policy ACCEPT)
    num target prot opt source destination

    Chain POSTROUTING (policy ACCEPT)
    num target prot opt source destination
    1 SNAT all — 192.168.200.0/24 0.0.0.0/0 to:1.1.1.1

    Chain OUTPUT (policy ACCEPT)
    num target prot opt source destination

    Table: filter
    Chain INPUT (policy ACCEPT)
    num target prot opt source destination
    1 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:1723
    2 ACCEPT 47 — 0.0.0.0/0 0.0.0.0/0
    3 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    4 ACCEPT icmp — 0.0.0.0/0 0.0.0.0/0
    5 ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    6 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:xxxxxx
    7 REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT)
    num target prot opt source destination
    1 ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    2 ACCEPT all — 0.0.0.0/0 0.0.0.0/0
    3 REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT)
    num target prot opt source destination

    И логи:

    May 30 12:14:01 VPN pptpd[2012]: CTRL: Client 2.2.2.2 control connection started
    May 30 12:14:01 VPN pptpd[2012]: CTRL: Starting call (launching pppd, opening GRE)
    May 30 12:14:01 VPN pppd[2013]: pppd 2.4.5 started by admin, uid 0
    May 30 12:14:01 VPN pppd[2013]: Using interface ppp0
    May 30 12:14:01 VPN pppd[2013]: Connect: ppp0 /dev/pts/0
    May 30 12:14:31 VPN pppd[2013]: LCP: timeout sending Config-Requests
    May 30 12:14:31 VPN pppd[2013]: Connection terminated.
    May 30 12:14:31 VPN pppd[2013]: Modem hangup
    May 30 12:14:31 VPN pppd[2013]: Exit.
    May 30 12:14:31 VPN pptpd[2012]: GRE: read(fd=6,buffer=6124a0,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
    May 30 12:14:31 VPN pptpd[2012]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
    May 30 12:14:31 VPN pptpd[2012]: CTRL: Client 2.2.2.2 control connection finished

    Проверял все не однократно, между устройствами ничего нет (FW) порт pptp и gre разрешены, Centos установлен как VM на HyperV, LIS так же установлен (3.5) , что вы думаете об этом ?

  2. admin Автор записи

    Возможно трабла в nodefaultroute ( Комментируем строку.)
    В винде идем в свойстрва pptp соединения (Панель управления\Сеть и Интернет\Сетевые подключения) там вкладка сеть -> Протокол интернета v4 -> Дополнительно -> убрать галку использовать основной шлюз в уд. сети.

    Если не прокатит то можно попробовать без шифрования.

    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    ms-dns 8.8.8.8
    proxyarp
    lock
    nobsdcomp
    noaccomp
    logfile /var/log/pptpd.log
    nodefaultroute

  3. JG

    Ранее уже пробовал комментировать nodefaultroute и не с шифрованным паролем, убрал галку с «использовать основной шлюз в уд. сети», без изменений те же логи, пробовал запускать на разных компах из разных сетей, я думаю, что эти параметры связаны с непосредственно передачей данных через VPN, а не с установкой самого VPN, подозреваю, что проблема с GRE не пойму только какая, mod работает в iptables тоже все Ok.

  4. JG

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing — SELinux security policy is enforced.
    # permissive — SELinux prints warnings instead of enforcing.
    # disabled — No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these two values:
    # targeted — Targeted processes are protected,
    # mls — Multi Level Security protection.
    SELINUXTYPE=targeted
    ***************************************************************
    А debug был отключен, включил.

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

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

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.