Краткое руководство по простой настройке сервера VPN (PPTP)

Устанавливаете пакеты ppp и pptp.

1
2
3
 wget http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
 rpm -i pptp-release-current.noarch.rpm
 yum install pptpd

Далее создаете такие конфигурации:

/etc/pptpd.conf

1
2
3
4
5
 option  /etc/ppp/options.pptpd
 #logwtmp
 localip 192.168.0.1 #IP сервера, на котором слушается VPN
 remoteip        192.168.0.115-120 #IP которые будут розданы внутри сети
 noipparam

/etc/ppp/options.pptpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 name pptpd
 refuse-pap
 refuse-chap
 refuse-mschap
 require-mschap-v2
 require-mppe-128
 proxyarp
 lock
 nobsdcomp
 novj
 novjccomp
 nologfd
 debug
 dump
 ms-dns 192.168.0.1 #IP сервера DNS

/etc/ppp/chap-secrets

1
2
3
4
5
 # Secrets for authentication using CHAP
 # client        server  secret                  IP addresses
 ####### redhat-config-network will overwrite this part!!! (begin) ##########
 ####### redhat-config-network will overwrite this part!!! (end) ############
 имя        pptpd   пароль      *

Сервис по-умолчанию будет слушать порт 1723.


Краткая инструкция как настроить pptp client для работы с VPN сервером.

  • Установка необходимого ПО

Для работы с VPN необходимо установить пакеты pptp-client и ppp. Обычно они есть в репозитариях.

  • Настройка конфигурационных файлов

/etc/ppp/chap-secrets

Укажите логин и пароль пользователя в таком формате:

1
 USER  "*"  password

/etc/ppp/options

Не путать с options.pptp!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 local
 lock
 nodetach
 mtu 1500
 mru 1500
 nobsdcomp
 nodeflate
 persist
 maxfail 0
 require-mppe-128
 lcp-echo-interval 30
 lcp-echo-failure 5
 require-mschap-v2
 refuse-pap
 refuse-chap
 require-mschap
 refuse-eap
 defaultroute
 user USER

/etc/ppp/options.pptp

1
2
3
4
5
6
7
8
 lock 
 proxyarp 
 auth 
 ipcp-accept-local 
 ipcp-accept-remote 
 +chap 
 +mschap-v2 
 mppe required
  • Запуск командой
1
 pptp IP_сервера dump

Ошибки

GRE: ******* status = -1 error = Message too long

Тут все просто - у вас стоит высокое значение mtu и mru в файле options. Уменьшаем до нужных пределов - 1024, 512…

LCP terminated by peer (MPPE required but peer refused)

В файле options отсутствует строка

1
 require-mppe-128

В неком красношапочтом дистрибе это вылечить не удалось, поэтому просто убрал шифрование (как указано ниже в “Protocol-Reject for unsupported protocol”) . На Вин-клиентах пришлось указывать “необязательное шифрование” или “без шифрование”

Видит только IP сервера и не видит компьютеров внутри сети

Не роутятся пакеты. Отдайте на клиентской машине такую команду:

1
 /sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1

где:

*192.168.0.0 - ваша сеть

*255.255.255.0 - маска вашей сети

*192.168.0.1 - внутренний IP вашего шлюза

Protocol-Reject for unsupported protocol

Пакет собран без поддержки ряда протоколов. Либо пересобирать, либо уберите mppe вообще. На сервере исправьте:

1
 require-mppe-128

на

1
 nomppe

На клиенте уберите любое упоминание mppe в options, такие как:

1
2
 require-mppe
 require-mppe-128

На виндовс-клиенте уберите “обязательное шифрование.