Настройка VPN на VPS, pptp под управлением Centos

1. Установка PPTP

Устанавливаем PPTP-сервер:

rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm

yum -y install pptpd

2. Настройка PPTP-сервера

Разрешаем форвард пакетов, в файле /etc/sysctl.conf меняем значение net.ipv4.ip_forward с 0 на 1. Обновляем параметры командой:

sysctl -p

Добавляем в файл /etc/pptpd.conf, адрес шлюза и список адресов выдаваемых клиентским компьютера.

localip 192.168.1.1 # адрес шлюза

remoteip 192.168.1.200-250 # список выдаваемых адресов

Переходим к конфигурационному файлу /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
  • ms-dns 192.168.1.2 # По умолчанию параметр закомментирован, используется для передачи параметров локального DNS-сервера клиентскому ПК
  • ms-wins 192.168.1.2 # По умолчанию параметр закомментирован, используется для передачи параметров локального WNS-сервера клиентскому ПК

Добавляем пользователей. Для PAP-аутентификации используется файл /etc/ppp/pap-secrets, для CHAP/MSCHAP – /etc/ppp/chap-secrets. Оба файла имеют по сути одинаковую структуру.

vpnuser add login password

После этого в файле /etc/ppp/chap-secrets должен появиться пользователь с логином login и паролем password.

Включаем в автозагрузку и запускаем сервис pptpd

chkconfig pptpd on

service pptpd start

3. Настройка IPTABLES

Для разных случаев настройка iptables отличается. В данном случае приведено описание базового варианта.

eth0 – смотрит в инетрнет;

eth1 – локальная сеть;

По умолчанию установлено OUTPUT ACCEPT (исходящий трафик разрешен), FORWARD DROP (форвардинг пакетов запрещен), INPUT DROP (входящий трафик запрещен). 

Разрешаем входящие подключения на TCP порт 1723 и по протоколу GRE через внешний интерфейс eth0:

iptables -A INPUT -i eth0 -p gre -j ACCEPT

iptables -A INPUT -i eth0 -m tcp -p tcp --dport 1723 -j ACCEPT

service iptables save

При создании каждого подключения pptp создается виртуальный интерфейс ppp, этому интерфейсу присваивается внутренний адрес VPN-клиента. Когда клиент один все просто – пара разрешающих правил и все готово, но когда клиентов становится больше остаются два варианта: либо смягчить правила разрешив доступ со всех интерфейсов ppp и всего пула remoteip в локальную сеть и обратно, либо создавать и удалять правила динамически.

Для закрытия подключения создайте файл скрипта /etc/ppp/ip-down.local, он автоматически будет запускаться перед удалением интерфейса ppp при отключении клиента:
  • #!/bin/sh
  • PPTP_IF=$1 # Имя виртуального интерфейса ppp
  • PPTP_ADDR=$5 # Внутренний IP адрес клиента
  • LOCAL_NET_IF="eth1" # Локальный интерфейс нашего сервера удаляем правила созданные скриптом ip-up.local
  • iptables -D FORWARD -i ${PPTP_IF} -s ${PPTP_ADDR} -o ${LOCAL_NET_IF} -j ACCEPT
  • iptables -D FORWARD -i ${LOCAL_NET_IF} -d ${PPTP_ADDR} -o ${PPTP_IF} -j ACCEPT
  • iptables -D INPUT -i ${PPTP_IF} -j ACCEPT

4. Заключение.

PPTP проста в настройке и при установке. Она не требует от пользователя никаких знаний и навыков в ИТ сфере, для ее подключения, которое организовывается на основе стандартного программного обеспечения ОС.

Основным недостатком является слабая защищенность и плохая устойчивость против атак.

 

  • webmoney
  • visa
  • privat
  • liqpay
  • non-cash
  • liberty