Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Security —> VPN (PoPToP)

VPN по протоколу PPTP на PoPToP.

Автор: lissyara.


    Подкинули халтуру - надо организовать, чтобы люди могли из дома ходить в рабочую сетку, терминально работать с 1с, и прочие прелести :) Копание инета дало - форточки много чего поддерживают, но для данного случая подходил только протокол PPTP (мне не хотелось замутов с ключами, да и настройка виндовой части там сложней - а инструктировать тётеньку-заказчика не было никакого желания, т.к. она малость подтормаживала :))
   PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа точка-точка. Не самый удачный выбор, т.к. спецификация на него не была ратифицированна - он не считается настолько же безопастным протоколом как другие VPN протоколы - IPSec, например...
   Первым делом проверяем наличие псевдо-устройства tun и ppp в ядре - без них работать не будет.
pseudo-device  ppp     1       # Kernel PPP
pseudo-device  tun             # Packet tunnel.

Если они закомментированы - раскомментируем и пересобираем ядро. Затем обновляем порты и устанавливаем PoPToP:
/root/>cd /usr/ports/
/usr/ports/>make search name='poptop'
Port:   poptop-1.2.3
Path:   /usr/ports/net/poptop
Info:   Windows 9x compatible PPTP (VPN) server
Maint:  olmi@rentech.ru
B-deps: expat-1.95.8_3 gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1
R-deps: rc_subr-1.31_1
WWW:    http://www.poptop.org/

/usr/ports/>cd /usr/ports/net/poptop
/usr/ports/net/poptop/>make && make install && make clean

После инсталляции правим конфиг PoPToP до такого состояния:
/usr/local/etc/pptpd.conf
options /etc/ppp/options.pptpd
debug
noipparam

debug - это только на время отладки, потом можно закомментровать. И не забудте noipparam - без неё работать не будет, сам наступил на эти грабли, ковырялся два дня, ползал по инету в поисках ответов на вопрос - что за ругань в логах на
Warning: Label ipparam rejected -direct connection: Configuration label not found

а кончилось всё как всегда - надо было прочесть man на pptpd.conf :)
Затем создаём/радактируем следующие файлы:
/etc/ppp/ppp.conf
pptp:
 enable proxy                   # для работы внутри локальной сети
                                # (позволяет делать запрося ARP, но только
                                # в случае, если выдаваемый клиенту адрес
                                # принадлежит этой сети)
 set dns 213.85.16.7            # адрес DNS
 set ifaddr 192.168.20.240       # внутренний адрес
 set timeout 300                # таймаут простоя до разрыва соединения
                                # если 0 - то не рвётся вообще
 enable MSChapV2                # протокол по которому шифруемся
 set nbns 192.168.20.254         # WINS

/etc/ppp/options.pptpd
proxyarp
+MSChap-V2 mppe-128 mppe-stateless

/etc/ppp/ppp.secret
# файлик с именами пользователей, паролями и IP адресами выдваемыми пользователям
# User_Name User_Password User_IP_address
lissyara            123     192.168.20.230
liss2               123     192.168.20.235

Собственно всё - добавляем строку в /etc/rc.conf и запускаем PoPToP:
/etc/ppp/>echo 'pptpd_enable="YES"' >> /etc/rc.conf
/etc/ppp/>/usr/local/etc/rc.d/pptpd.sh start
Starting pptpd.
/etc/ppp/>ps -axl | grep pptpd
  0  4448   1  25 2  0   936  524 select Ss  ??  0:00.02 /usr/local/sbin/pptpd
/etc/ppp/>sockstat | grep pptpd
root     pptpd     4448    6 tcp4   *:1723                *:*
root     pptpd     4448    5 dgram  syslogd[120]:3
/etc/ppp/>

После чего надо разрешить порт 1723 в файрволле, траффик по интерфейсу tun0 и протокол GRE:
allow tcp from any to me 1723
allow gre from any to any
allow ip from any to any via tun0

Правила добавляем гдень-ть вверху файрволла. (НО! Если через машину ходит траффик изнутри сети - т.е. это шлюз, добавлять надо после NAT - иначе ничё не заработает, т.к. пакеты выпадут до трансляции адресов :))
Пробуем что получилось, для контроля смотрим логи, для чего расскомметируем строку в файле /etc/syslog.conf
*.*                                             /var/log/all.log

После чего создаём этот файл и перезапускаем syslogd:
/root/>touch /var/log/all.log
/root/>killall -1 syslogd
/root/>tail -f /var/log/all.log
Dec  4 13:53:45 lissyara syslogd: restart

Там и смотрим происходящее во время подключения. Не забудте после настройки закомментировать строку в syslog.conf и перезапустить syslogd.
   Настройка форточек проста до безобразия: Создаём новое соединение мастером, выбираем подключаться к сети на рабочем месте, вводим логин, пароль, IP или имя сервака и всё...



размещено: 2005-12-04,
последнее обновление: 2008-10-30,
автор: lissyara


andrey, 2006-02-24 в 12:41:14

отличная статья. все работает только больше двух подключений почемуто не поддерживает, подскажите как это исправить

lissyara, 2006-02-24 в 13:35:21

Чё-то было при отладке такое... Ща потестю, отпишусь.

Sergey-nsk, 2006-02-27 в 6:49:46

Хотелось бы уточнить такой нюанс: именно в вашей версии poptop в конфиге pptpd.conf несуществует параметра "optionS", а есть только "option"! Если написать конфиги как у вас, то в логи сыпятся строки:

Feb 27 09:23:02 ronozhi ppp[3616]: Warning: Label plugin rejected -direct connection: Configuration label not found
Feb 27 09:23:02 ronozhi pptpd[3615]: GRE: read(fd=7,buffer=804db80,len=8196) from PTY failed: status = 0 error = No error
Feb 27 09:23:02 ronozhi pptpd[3615]: CTRL: PTY read or GRE write failed (pty,gre)=(7,6)

Вообщем мучался долго и пришел к такой конфигурации:
-------pptpd.conf-------
noipparam
#необязательно! (адрес, который слушаем)
listen 192.168.0.1
---end---

-------ppp.conf-------
......
pptp:
enable proxy
enable MSChapV2
set mppe 128 stateless
set ifaddr 10.0.0.1 10.0.0.2-10.0.0.254 255.255.255.255
---end---
Файла options.pptpd нет вообще, ppp.secret - такой же.
Ну и хочу уточнить:
set ifaddr - здесь 10.0.0.1 -адрес на сервере для интервейса tun0 остальные - диапазон, который мы можем выдавать клиентам.
И напоследок слегка не втему: спасибо за статью ICAP! Она мне очень помогла!

Чуть не забыл важное уточнение: ось фря 6.0, poptop 123

lissyara, 2006-02-27 в 8:59:06

Пасиб. Что сыплются - подтверждаю, тока сам немог понять почему :)
Кстати, несмотря на то, что сыплются - работает :)

P.S. C ICAP ещё намучаешься :)))

CoRp$, 2006-03-07 в 16:26:36

Респект Вам огромный, вот только долго мучался с конфигами, а оказывается после pptp:
Все строики должны идти с пробелом, дык кто это знал :) Инфу нарыл, встретил в инете тут => http://dreamcatcher.ru/docs/openbsd_vpn.html (Хоть это и для OpenBSD, но заработало же %)

Пример:
pptp:
enable proxy
enable MSChapV2
set mppe 128 stateless
set ifaddr 10.0.0.1 10.0.0.2-10.0.0.254 255.255.255.255

P.S. Короче пробелы во всех строках после "pptp:" - обЯзательны!!!
P.P.S. Система FreeBSD 6.0 AMD64, pptp 1.2.3

CoRp$, 2006-03-09 в 23:26:01

И не забудьте, если вы хотите ходить за пределы сервера PPTP в локалку из вне, то на сервере необходимо включить форвардинг:
1 СПОСОБ:
Впишите следующее " net.inet.ip.forwarding=1 " в /etc/sysctl.conf
2 СПОСОБ:
Впишите в следующее " gateway_enable="YES" " в /etc/rc.conf

D.K., 2006-04-22 в 17:54:15

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
       inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
tun1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
tun2: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
       inet 10.0.0.3 --> 10.0.0.6 netmask 0xffffff00
tun3: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
Press any key to continue...

зависают сессии
при этом все процессы pp* убиты

-|LSV|-, 2006-05-28 в 12:56:30

Первая строка при запуске демона, вторая при коннекте клиента.
ppp[88885]: Warning: ff02:5::/32: Change route failed: errno: Network is unreachable
pptpd[88929]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
ppp[88930]: Warning: ff02:5::/32: Change route failed: errno: Network is unreachable

Brunen, 2006-07-01 в 10:27:59

Обнаружил такую ошибку(при подключении к VPN-серверу):
732
Согласование параметров PPP не выполнено, так как локальный и удаленный компьютеры не пришли к соглашению по поводу общего набора параметров. Обратитесь к системному администратору для проверки настройки сетевых протоколов, таких как TCP/IP и IPX. Кроме того, системный администратор может включить запись в журнал событий PPP при помощи программы Netsh.exe, что в свою очередь поможет определить источник данной ошибки.

b2d, 2006-07-04 в 19:59:11

На Фре версии 5.4 все сделал как описано - КЛАСС - все заработало с пол пинка. Решил тоже самое сделать на 6.1 столкнулся с таким.
При запуске pptpd -f -d:
При коннекте с ХР говорит
pppd: no device specified and stdin is not a tty
а ХР выдает 800 ошибку.
Вот полный лог :
ul  4 18:53:24 gw pppd[92068]: no device specified and stdin is not a tty
Jul  4 18:53:24 gw pptpd[92067]: GRE: read(fd=7,buffer=804dac0,len=8196) from PTY failed: status = 0 error = No error
Jul  4 18:53:24 gw pptpd[92067]: CTRL: PTY read or GRE write failed (pty,gre)=(7,6)

J0nEE, 2006-10-19 в 22:36:52

Статья хорошая. Ну есть пару вопросов.
Для начала после пересборки ядра нужно скачать РоРТОР с http://sourceforge.net/project/poptop/ соурцы? тоесть      pptpd-1.3.3.tar.gz к примеру. Потом их компилить так как написали выше.
Второй вопрос. Ситуация такая я должен по VPN роздавать другим пользователям инет. Скорость нужно ограничить до 33.600 кбит/сек. Может кто то посказать? Я пока что дошел до тог что и IPFW понадобится для этого. Ну что дальше как же всетаки ограничить скорость? Помогите кто может!
Заранее спасибо!

Кирилл, 2006-12-24 в 13:36:53

Задолбал этот poptop. Какого предмета он пытается инициализировать pppd с ключом -direct? Тот, ессно, отваливается моментально, ссогласование РРР не проходит!
Никто не знает, может при сборке надо какие-то опции использовать, чтобы это безобразие прекратилось? Щас буду рыться в текстах!!!
Нашёл! pptpctrl.c:
/* options for BSDUSER_PPP
        *
        * ignores IP addresses, config file option, speed
        * fix usage info in pptpd.c and configure script if this changes
        *
        * IP addresses can be specified in /etc/ppp/ppp.secret per user
        */
       pppd_argv[an++] = "-direct";
       pppd_argv[an++] = "pptp";       /* XXX this is the system name */
       /* should be dynamic - PMG */
Счего аффтары взяли, что у BSD-pppd есть такая опция?

Кирилл, 2006-12-24 в 14:53:34

Ааааа, поняль, поняль!!!
Этот порт poptop при установке определяет, каким бинарником он будет пользоваться для соединения. В моём случае это "user space ppp program" или что-то в этом духе, то есть программа ррр. Вот у неё-то и есть опция -direct. А я-то пытаюсь ему скормить pppd :)! Понятно, почему у вас не работают всякие ipparam - их просто нет у программы ррр, они есть только у демона pppd! Поэтому есть два пути: дать в pptpd.conf правильный бинарик, или изнасиловать порт на этапе make configure, заставив его использовать "normal ppp daemon".

sectoid, 2007-06-04 в 23:33:51

CTRL: PTY read or GRE write failed (pty,gre)=(7,6)

поборол ли кто нибудь эту ошибку? на фре 6.2 тоже самое...
если кто знает решение намыльте плиз!

lissyara, 2007-06-05 в 0:05:57

man ipfw

AsM, 2007-06-06 в 4:56:03

Да! Из-за Firewall пол месяца не мог понять почему VPN не работает. А про существование Firewall'а просто забыл уже. Давно настраивал. Автору большой респект именно его статья заставила задуматься =)

Michael, 2007-09-06 в 10:18:41

Сорри, господа, решил обратиться сюда. Задолбался...      Настраиваю pptpd, работает... Настраиваю pppd - не работает pptpd, у клиента ошибка Обнаружено замыкание на себя, в логах pptpd[1000]: GRE: Bad cheksum from pppd. Если из ppp.conf убрать строчку Default:, то pptpd поднимается, но при запуске pppd просит вернуть Default обратно.
FreeBSD 6.2
pppd 2.3 patch level 5
pptpd v1.3.4

Michael, 2007-09-07 в 0:35:38

Разобрался. Все заработало после того как добавил строчку в ppp.conf Строчка стоит перед Default:

ADSL:
DEFAULT:
...
...

User, 2007-11-03 в 1:11:19

-----------------------LOG------------------------

Nov  3 00:59:41 srv-05 ppp[86422]: Phase: PPP Started (direct mode).
Nov  3 00:59:41 srv-05 ppp[86422]: Phase: bundle: Establish
Nov  3 00:59:41 srv-05 ppp[86422]: Phase: deflink: closed -> opening
Nov  3 00:59:41 srv-05 ppp[86422]: Phase: deflink: Connected!
Nov  3 00:59:41 srv-05 ppp[86422]: Phase: deflink: opening -> carrier
Nov  3 00:59:41 srv-05 ppp[86422]: Phase: deflink: carrier -> lcp
Nov  3 00:59:42 srv-05 pptpd[86421]: CTRL: I wrote 32 bytes to the client.
Nov  3 00:59:42 srv-05 pptpd[86421]: CTRL: Sent packet to client
Nov  3 00:59:42 srv-05 pptpd[86421]: CTRL: Received PPTP Control Message (type: 15)
Nov  3 00:59:42 srv-05 pptpd[86421]: CTRL: Got a SET LINK INFO packet with standard ACCMs
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: deflink: Disconnected!
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: deflink: Connect time: 16 secs: 0 octets in, 295 octets out
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: deflink: 0 packets in, 5 packets out
Nov  3 00:59:57 srv-05 ppp[86422]: Phase:  total 18 bytes/sec, peak 23 bytes/sec on Sat Nov  3 00:59:45 2007
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: deflink: lcp -> closed
Nov  3 00:59:57 srv-05 pptpd[86421]: GRE: read(fd=7,buffer=804d580,len=8196) from PTY failed: status = 0 error = No error
Nov  3 00:59:57 srv-05 kernel: Nov  3 00:59:57 srv-05 pptpd[86421]: GRE: read(fd=7,buffer=804d580,len=8196) from PTY failed: status= 0 error = No error
Nov  3 00:59:57 srv-05 pptpd[86421]: CTRL: PTY read or GRE write failed (pty,gre)=(7,6)
Nov  3 00:59:57 srv-05 kernel: Nov  3 00:59:57 srv-05 pptpd[86421]: CTRL: PTY read or GRE write failed (pty,gre)=(7,6)
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: bundle: Dead
Nov  3 00:59:57 srv-05 ppp[86422]: Phase: PPP Terminated (normal).
Nov  3 00:59:57 srv-05 pptpd[86421]: CTRL: Reaping child PPP[86422]
Nov  3 00:59:57 srv-05 pptpd[86421]: CTRL: Client 192.168.65.15 control connection finished
Nov  3 00:59:57 srv-05 pptpd[86421]: CTRL: Exiting now
Nov  3 00:59:57 srv-05 pptpd[86419]: MGR: Reaped child 86421
-----------------------LOG------------------------
-----------------/etc/ppp/ppp.conf----------------

pptp:
enable proxy
enable MSChapV2
set mppe 128 stateless
set ifaddr 192.168.65.16 192.168.65.20-192.168.65.254 255.255.255.0

-----------------/etc/ppp/ppp.conf----------------

это с конфигом Sergey-nsk. С конфигом lissyara'ы тож самое.

В общем, подключаюсь к серверу из XPSP2, как доходит до проверки логина и пасса, pptpd подвисает на строке:
Nov  3 00:59:42 srv-05 pptpd[86421]: CTRL: Got a SET LINK INFO packet with standard ACCMs

не знаю в чем проблема...

qqq, 2007-11-19 в 12:18:13

ipfw pass gre from any to any ?

ant, 2007-12-02 в 2:32:35

Долгим ковырянием пришёл к выводу:
1) из pptpd корректно вызывается ppp но не pppd, из чего следует что строку option /usr/sbin/pppd в pptp.conf лучше бы закомментировать.

2) параметр noipparam в случае MSChapV2 MPPE 128 не влияет на установление соединения.

3) файл pptpd.conf можно вообще оставить пустым или удалить.

4) все параметры можно установить в /etc/ppp/ppp.conf, у меня это выглядит так:

pppoe:
set log Phase Chat LCP IPCP CCP tun command
allow mode direct
enable lqr echo
enable chap MSCHAPv2 MPPE
set ifaddr 10.0.0.1 10.0.0.10-10.0.0.250
set dns 10.0.0.1
set radius /etc/radius.conf

pptp:
enable MSChapV2
disable deflate pred1
deny deflate pred1
set ifaddr 10.0.0.1 10.0.0.101-10.0.0.254
set dns 10.0.0.1
set radius /etc/radius.conf

одновременно сессии раздаются по pppoe (ядерный) и pptp (poptop-1.3.0), авторизация на удалённом радиусе. freebsd-6.2.

ЗЫ: спасибо огромное за пост - долго бы ещё выдумывал про ppp.

sahnyr, 2008-01-08 в 11:32:51

Помогите!!!
все сделал как написано выше
виндовый клиент ругается - сервер не выдал адресс
в логах ругается на ppp.conf
----log-----
Jan  8 11:28:50 mail syslogd: restart
Jan  8 11:29:04 mail pptpd[4502]: CTRL: Client 192.168.200.1 control connection started
Jan  8 11:29:04 mail pptpd[4502]: CTRL: Starting call (launching pppd, opening GRE)
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 2) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 3) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 4) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 5) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Phase: Using interface: tun0
Jan  8 11:29:04 mail ppp[4503]: Phase: deflink: Created in closed state
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 2) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 3) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 4) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 5) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Warning: Bad label in /etc/ppp/ppp.conf (line 2) - missing colon
Jan  8 11:29:04 mail ppp[4503]: Phase: PPP Started (direct mode).
Jan  8 11:29:04 mail ppp[4503]: Phase: bundle: Establish
Jan  8 11:29:04 mail ppp[4503]: Phase: deflink: closed -> opening
Jan  8 11:29:04 mail ppp[4503]: Phase: deflink: Connected!
Jan  8 11:29:04 mail ppp[4503]: Phase: deflink: opening -> carrier
Jan  8 11:29:04 mail ppp[4503]: Phase: deflink: carrier -> lcp
Jan  8 11:29:05 mail pptpd[4502]: GRE: accepting packet #0
Jan  8 11:29:05 mail pptpd[4502]: GRE: accepting packet #1
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #2
Jan  8 11:29:08 mail pptpd[4502]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Jan  8 11:29:08 mail kernel: Jan  8 11:29:08 mail pptpd[4502]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: lcp -> open
Jan  8 11:29:08 mail ppp[4503]: Phase: bundle: Network
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #3
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #4
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #5
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #6
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #7
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #8
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #9
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #10
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: IPV6CP protocol reject closes IPV6CP !
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #11
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #12
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #13
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: IPV6CP protocol reject closes IPV6CP !
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #14
Jan  8 11:29:08 mail pptpd[4502]: GRE: accepting packet #15
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: open -> lcp
Jan  8 11:29:08 mail ppp[4503]: Phase: bundle: Terminate
Jan  8 11:29:08 mail pptpd[4502]: CTRL: Reaping child PPP[4503]
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: read (0): Got zero bytes
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: Disconnected!
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: Connect time: 4 secs: 552 octets in, 464 octets out
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: 11 packets in, 16 packets out
Jan  8 11:29:08 mail ppp[4503]: Phase:  total 254 bytes/sec, peak 68 bytes/sec on Tue Jan  8 11:29:06 2008
Jan  8 11:29:08 mail ppp[4503]: Phase: deflink: lcp -> closed
Jan  8 11:29:08 mail ppp[4503]: Phase: bundle: Dead
Jan  8 11:29:08 mail ppp[4503]: Phase: PPP Terminated (normal).
Jan  8 11:29:08 mail pptpd[4502]: CTRL: Client 192.168.200.1 control connection finished


---ppp.conf----
pptp:
enable proxy
enable MSChapV2
set mppe 128 stateless
set ifaddr 192.168.200.102 192.168.200.190-192.168.200.200 255.255.255.0

freeman_tnu, 2008-01-08 в 14:55:21

sahnyr после pptp: перед каждой строкой в конфиге поставь пробел. ну и попробуй таймаут добавить что-ли...

x0pkins, 2008-01-22 в 17:34:08

Гм.. Скажите, а почему бы не использовать MPD? Оно же на ng, что быстрее tun, насколько мне известно.

Alexey Sergeev, 2008-02-02 в 0:47:04

Скажите, может ли виндовая машина стоять за NAT-ом? Без реального IP-адреса на ней будет работать?

lissyara, 2008-02-02 в 1:00:06

Да. Но не все НАТы одинаково полезны =)

Дмитрий, 2008-03-14 в 19:28:05

Не пойму в чем проблема, проверяю конфиг
set dns 10.2.70.100            # адрес DNS

смотрю на клиентской машине
Inet - PPP адаптер:

       DNS-суффикс этого подключения . . :
       Описание  . . . . . . . . . . . . : WAN (PPP/SLIP) Interface
       Физический адрес. . . . . . . . . : 00-53-45-00-00-00
       Dhcp включен. . . . . . . . . . . : нет
       IP-адрес  . . . . . . . . . . . . : 10.2.70.101
       Маска подсети . . . . . . . . . . : 255.255.255.255
       Основной шлюз . . . . . . . . . . : 10.2.70.101

О днс ничего не сказано.

ant, 2008-03-14 в 22:45:06

а где там должен быть днс??!!

Дмитрий, 2008-03-15 в 17:51:06

Дописана строчка чтото типа:
DNS-серверы . . . . . . . . . . . : 10.2.70.100

а строка set dns 10.2.70.100            # адрес DNS
находится в /etc/ppp/ppp.conf
как указано в примере, или я гдето ошибаюсь?

Михаил Воробьев, 2008-03-16 в 0:33:15

Добрый день народ, помогайте: изучив все тонкости данной статьи и проделав все фря мне выдает след бяку:
pptpd[444]: Long config file ignored

В чем проблема?

ant, 2008-03-16 в 3:46:54

>>Дмитрий
я убеждён в 2х вещах относительно pppoe и pptp в FreeBSD:
1. Если соединение устанавливается - значит счастье близко.
2. Если есть хоть малейшие проблемы с днс (например, пакеты к днс серверу не разрешены для клиента) - могут быть большие и тяжело понимаемые проблемы.
Как ни кажется бессмысленным факт того что соединение ppp не настраиваются корректно при некорректной службе днс - я очень советую обратить на это внимание.
ПС: в компьютерах всё просто, сложно то что придумал для них очередной кулибин... нельзя забывать о том что программа не думает а исполняет, а значит, в ошибках программ нет ничего странного - все эти ошибки придумал человек, может быть Вы (или я) в момент конфигурирования

Михаил Воробьев, 2008-03-26 в 16:07:32

Я хочу выразить благодарность за статью VPN по протоколу PPTP на PoPToP, отличная статься. Если можно задать Вам вопрос по этой теме: я все сделал и с виндовой машины пробую заходить а у меня появляется ошибка 619, а во фре пишет следующее:
Неизвестная опция –direct
PTY read or GRE write failed

Если Вас не затрудняет мой вопрос, может подскажите как исправить эту ошибку!

ant, 2008-03-27 в 0:44:42

>>Михаил Воробьев
Очевидно вы не прочли коммент выше:
"Кирилл, 2006-12-24 в 14:53:34..."

AYM, 2008-04-07 в 18:29:58

Тоже проблема ошибки 619 и в логах –direct ....
по совету "Кирилл, 2006-12-24 в 14:53:34..." попробовал
указать бинарник:
ppp /usr/sbin/ppp
результат тотже

aivus, 2008-04-14 в 17:15:43

мну удалось его поднять... причем все ок пашет....

Файл /usr/local/etc/pptpd.conf
noipparam


Файл /etc/ppp/ppp.conf

pptp:
       enable proxy
       set ifaddr 192.168.0.1 192.168.0.50-192.168.0.200 255.255.255.255
       set timeout 300
       enable dns
       nat enable yes
       set dns 192.168.0.1
       set mppe 128 stateless
       enable MSChapV2



Файл /etc/ppp/ppp.secret

user            user            *
tester       tester      192.168.0.60

Гоша Салеля, 2008-05-24 в 12:35:17

Уважаемый lissyara было бы неплохо еще и статью по подключению с FreeBSD desktop на FreeBSD Сервер сделать посредством pptpclient

lissyara, 2008-05-24 в 13:12:37

Эх Гоша, Гоша...
Взрослый человек, а поиск никак не освоите...
pptp_client+FreeBSD+poptop

RapteR, 2008-06-05 в 14:35:23

FreeBSD 7.0 poptop 1.3.4_1 firewall_type="open"

#
# ppp.secret 05.06.2008 13:30
#

# User name    Password    IP
system2k    02081936    192.168.100.10
123        123        192.168.100.100

#
# pptpd.conf 05.06.2008 13:45
#

ppp /usr/sbin/ppp
debug
delegate
listen 192.168.1.253
proxyarp
+MSChap-V2 mppe-128 mppe-stateless

#
# ppp.cong 05.06.2008 13:20
#

pptp:
enable proxy
accept dns
enable dns
enable MSChapV2
set mppe 128 stateless
set ifaddr 192.168.100.9 192.168.100.10-192.168.100.254 255.255.255.255
set dns 192.168.100.1
set nbns 192.168.100.1
set timeout 0

в результата получаем:

Jun  5 16:34:20 inet ppp[985]: Warning: iface add: ioctl(SIOCAIFADDR, 192.168.100.9 -> 192.168.100.10): File exists
Jun  5 16:34:20 inet ppp[985]: Error: ipcp_InterfaceUp: unable to set ip address
Jun  5 16:34:20 inet ppp[985]: Warning: ipv4_Input: IPCP not open - packet dropped
Jun  5 16:34:20 inet ppp[985]: Phase: Unknown protocol 0x00fd (1st choice compression)

Проблемы: не конектится более чем с 1 тачки в виду того, что при любом логине выдает 10 ип. арп не ворвардится, днс не прописывается. ну собственно и CTRL: Ignored a SET LINK INFO packet with real ACCMs!

P.S. сильно не ругайтесь что не на форуме пишу, просто хочу разобраться и помочь освежить статью.

ant, 2008-06-05 в 21:58:57

есть мнение, что в фре 7.0 глючный ррр...
поставь 6.3

RapteR, 2008-06-06 в 6:25:43

ant, есть мнение что не зачот менять ОС ради одной кривой софтины ;-) С множественными подключениями разобрался, но АРП по прежнему не форвардиться и ДНС не прописывается.

Совет всем FreeBSDшникам: если что то не работает - допишите в файл конфигурации в конце пустую строку и будет вам счастье.)

amba, 2008-06-16 в 8:03:33

я знаю, я туп, объясните мне как это все завести с поднятым нетамсом, у мну весь трафик дивертится на него и сервак не желает отвечать на удаленные запросы :( подключаюсь в локальной сети - подключается, но говорит, локалы не могут коннектится к этому подключению, а снаружи такое ощущение - вааще не слышит :( объясните мну где я туплю
кусок правил ipfw
intnet="192.168.1.1"
extnet="192.168.0.250"
ipfw="/sbin/ipfw"
oif="bge0"
tun="tun0"

${ipfw} 90   add divert 199   ip from 192.168.1.0/16 to any out xmit ${oif}
${ipfw} 95   add divert 199   ip from any to any out xmit ${tun}

${ipfw} 100  add divert 8668 ip from 192.168.1.0/16 to any out xmit ${oif}
${ipfw} 200  add divert 8668 ip from any to any out xmit ${tun}
${ipfw} 210  add divert 8668 ip from any to any in recv ${tun}
${ipfw} 300  add divert 8668 ip from any to 192.168.1.0/16 in recv ${oif}

${ipfw} 305  add divert 199 ip from any to any in recv ${tun}
${ipfw} 310  add divert 199 ip from any to 192.168.1.0/16 in recv ${oif}

${ipfw} 330  add allow all from any to any 1723
${ipfw} 340  add allow gre from any to any

RapteR, 2008-06-16 в 8:44:07

add 102 divert 199 ip from 192.168.1.0/24 to any out xmit rl0
add 103 divert 8668 ip from 192.168.1.0/24 to any out xmit rl0

add 104 divert 8668 ip from any to me in recv rl0
add 105 divert 199 ip from any to 192.168.1.0/24 in recv rl0
add 106 allow all from any to any

где rl0 - карточка смотрящая в инет, nfe0 - смотрит в сетку

zevvs, 2008-08-05 в 18:26:58

сделал по статье. Эврика! всё заработало с первого раза! ))

Victor, 2008-09-01 в 13:47:15

Настроил всё работает но есть один нюанс, никак немогу понять в чём проблема.
При подключении в винде отваливается инет.
я так понимаю что с этой виндовой машины перекидывается дефолтный маршрут. Как этого избежать подскажите плз!

Victor, 2008-09-01 в 13:48:22

пардон опечатался. не с этой а на эту виндовую машину перекидывает маршрут с фряхи

cheshire_cat, 2008-10-21 в 0:40:28

Victor, есть простое решение для Вашей проблемы.
Выбираете "Свойства" Вашего VPN-подключения, затем вкладка "Сеть", потом "Свойства" для строки "Протокол Интернета TCP/IP". Нажимаете кнопку "Дополнительно", и снимаете галочку "Использовать основной шлюз в удаленной сети". Таким образом Windows будет сначала пытаться отправить данные в Интернет, а если не получается, тогда через VPN-соединение...

cheshire_cat, 2008-10-30 в 18:28:47

Всем привет! Отличная статья, спасибо lissyara!

Возникла проблема: не получается подключится одновременно двумя клиентами. Правильно ли я понимаю, что если, допустим, у меня три клиента, то к правилам ipfw, перечисленным в статье, нужно добавить вот эти:

allow ip from any to any via tun1
allow ip from any to any via tun2


Но даже с этими правилами не получается подключится двум клиентам сразу!
Еще заметил непонятный момент - даже при отсутствующих подключениях в данный момент по вызову ifconfig висят интерфейсы вида:

tun1: flags=8010<POINTOPOINT,MULTICAST> metric 0 mtu 1500

В принципе, в этом нет никакого криминала (как мне кажется), просто немного настораживает...

В общем, буду очень благодарен за помощь, если получится все сделать, обязательно напишу...

cheshire_cat, 2008-10-30 в 22:03:30

Маленькое добавление (извините за флуд).

Второй клиент может подключится, но дальше ничего не происходит. То есть соединение (с машины под Windows) устанавливается, клиенту присваивается IP-адрес, даже на VPN-сервере появляется новый интерфейс вида:

tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1398
inet 192.168.0.200 --> 192.168.0.201 netmask 0xffffffff
Opened by PID 95049


Но дальше не получается сделать ничего - с клиента VPN-сервер (равно как и остальные компьютеры локальной сети) не пингуется, в другую сторону тоже. Конечно же, все другие сервисы (Web, RDP, POP3 и др) также не работают.

Я уже успел прочитать, что если подключающиеся клиенты находятся за одним НАТовским роутером, то они не смогут одновременно работать по VPN. Это связано с особенностями GRE и NAT. Но у меня не получается также подключиться двумя клиентами находящимися в совершенно разных подсетях и не сидящих за одним роутером! Хотя бы сделать чтобы так работало, а уж потом решать более серьезные проблемы с NAT и GRE.

Ладно, пойду дальше думать, что делать... Если у кого-то появятся какие-нибудь идеи по этому поводу - пишите лучше сразу на почту (sheitan@list.ru).

cheshire_cat, 2008-10-31 в 12:20:52

В общем, перешел на форум для обсуждения своей проблемы. Линк: http://forum.lissyara.su/viewtopic.php?f=8&t=12093

Jonny, 2008-12-26 в 10:33:25

по поводу ошибки при повторном подключении клиента ХР заномером 629

во freeBSD7 в логе пишется:
Oct 8 17:58:48 shark ppp[5596]: tun0: Warning: iface add: ioctl(SIOCAIFADDR, ххх.ххх.ххх.ххх -> ххх.ххх.ххх.ххх): File exists
Oct 8 17:58:48 shark ppp[5596]: tun0: Error: ipcp_InterfaceUp: unable to set ip address

решилась у меня так:
в  ppp.conf

set ifaddr 192.168.100.0 192.168.100.10-192.168.100.254 255.255.255.255
прописал адрес сети 192.168.100.0

и все остальне параметры как статье

Sorcerer, 2009-03-01 в 17:10:12

Free 6.1 Poptop 1.3.4, баг такой:
рез в сутки в /var/log/messages

Mar  1 03:56:54 router1 ppp[61978]: tun2: Warning: iface add: ioctl(SIOCAIFADDR, 192.168.1.4 -> 192.168.1.85): File exists
Mar  1 03:56:54 router1 ppp[61978]: tun2: Warning: iface add: ioctl(SIOCAIFADDR, 192.168.1.4 -> 192.168.1.85): File exists
Mar  1 03:56:54 router1 ppp[61978]: tun2: Error: ipcp_InterfaceUp: unable to set ip address
Mar  1 03:56:54 router1 ppp[61978]: tun2: Warning: ipv4_Input: IPCP not open - packet dropped
Mar  1 03:56:55 router1 last message repeated 4 times
Mar  1 03:59:42 router1 pptpd[61596]: CTRL: EOF or bad error reading ctrl packet length.
Mar  1 03:59:42 router1 pptpd[61596]: CTRL: couldn't read packet header (exit)
Mar  1 03:59:42 router1 pptpd[61596]: CTRL: CTRL read failed
Mar  1 07:38:42 router1 pptpd[35454]: CTRL: EOF or bad error reading ctrl packet length.
Mar  1 07:38:42 router1 pptpd[35454]: CTRL: couldn't read packet header (exit)
Mar  1 07:38:42 router1 pptpd[35454]: CTRL: CTRL read failed


Начинают виснуть сессии, а потом eof м сервер на пару минут не отвечает даже на пинги. Руки опускаются, даже незнаю что это может быть.

RapteR, 2009-03-02 в 6:08:38

Sorcerer, могу только посоветовать выбросит ПоПтоП и поставить MPD5 по статье http://www.lissyara.su/?id=1680 в ном определенно больше плюсов.

Marzik, 2009-04-06 в 11:32:15

Спасибо огромное за статейку!
Всеже повайдохаться пришлось, почитать обсуждения и т.п.
Но все заработало (я так рад :)), подключение есть, а вот как работать с сетью? Через сетевое окружение? Так там ничего нет.
Подскажите пожалуйсто.

Meloun, 2009-10-20 в 3:02:36

На правах "ОФФТОП"
2RapteR выбрасывать ничего не надо. всему свое место.
По поводу MPD5 тож сначала нарадоваться не мог, все работало как часики почти 2 года. при обновлении, а также полной переустановке системы до 7.2-RELEASE и MPD5.3 вылезла большая гадость в виде отваливания интерфейса на котором работает MPD или полный вис системы когда пытаешься поднять клиентское соединение (с этой машины) по PPTP (проблема с роутом по дефолту и накладывающимися роутами мну знает, а также кучу других грабликов и граблищь MPD ;P ). Стоит только отправить хоть один пакет и усе(( Причем соединения по PPPoE работают замечательно. И это не только у меня. MPD завязан на ядре и при креше рушится вся система. Пришлось до окончания разбирательст поднимать старый добрый PopTop, который междупрочим у мну всегда работал и работает как танк, как настроил так и пахает, ток конфиги переношу с машины на машину...
PS Все больше разочаруюсь в MPD 5 версии, по многим граблям пришлось пройти от версии к версии, а последнее просто как нож в спину...

Dog, 2009-10-20 в 12:45:19

2Meloun: man send-pr.
MPD очень мощный инструмент. Да, как было сказано, завязан на ядре, что имеет как свои плюсы, так и минусы. Но пр этом инструмент уникальный по функционалу/быстродействию/ресурсоемкости.
Не хватает знаний накатать pr на английском - свяжись непосредственно с разработчиком, благо Александр Мотин товарищ русскоязычный. Вместо того чтобы вставать в позу и гордо вещать о том что "все больше разочаруюсь" и "по многим граблям пришлось пройти" лучше бы помог проекту избавиться от бага.

Meloun, 2009-10-20 в 16:01:46

2Dog не надо так реагировать на мои слова )), как говорится мир, дружба, жвачка)) pr уже накатан, жду результатов. Моя любимая поза как и у многих любителей BSD это на голове-ушах-... и других частях тела всю ночь пока глазья не покраснеют))
Суть моего сообщения была не в том что MPD5 большой коках, а в том что на ответственных участках его бывает весьма стремно ставить. Там где он у меня стоит после подгонки и тюнинга, систему мну старается необновлять воизбежание вышеописанного. В последнее время стал ставить PoPTop на точках обслуживающих до 20-30 юзверей, правленный руками для взаимодействия с тем что у MPD уже зашито. От NETGRAPH пока стараюсь отказаться там где это возможно, задумка очень здоровская, но часть модулей все еще подглючивает. Работает не так шустро, но зато стабильнее при апгрейдах и длительных аптаймах... ИМХО
ЗЫ Чтобы не продолжать полемику, есть компромисс, откатиться на MPD3 как бронебойную версию, многие до сих пор работают на этой версии, мну непереваривает за убогие конфиги (ИМХО). А дедушку PoPToP не трогайте он еще работаит там где другие pr-а требуют ;P

Dog, 2009-10-20 в 17:28:56

2Meloun:
А MPD4? Он как по части падучести? Мне как-то везло всегда, стойко себя вел и 4-й, и 5-й, о проблемах только читал - правда мне эту радость ставить на большие нагрузки и не приходилось. А PR - это да, это наше все.
З.Ы. Я хороший! Просто сам люблю стать в театральную позу и чего-нибудь высказать с гордым видом :)

Meloun, 2009-10-20 в 20:58:26

MPD4 ставил уже давно, работало стабильно, но это было еще на 5-6 фрях. В рассылках читал что 4-ка тож глюкает в некоторых комбинациях software/hardware, сам не экспериментировал (4-ка тож не нравится в плане гонфигов, в пятерке удобно, настройки лэйеров в одном файлике). Большие надежды на 8-й "правильныйОС" там как говорят разработчики будут форсировать исправления баг. Ждемс))

staskur, 2010-08-02 в 12:06:21

на FreeBSD 7.0-RELEASE #1
заработало только в таком виде...

/usr/local/etc/rc.d/>cat /etc/ppp/ppp.conf | grep -v "#" | grep .
pppoe:
set log Phase Chat LCP IPCP CCP tun command
allow mode direct
enable lqr echo
enable chap MSCHAPv2 MPPE
set ifaddr 192.168.1.40 192.168.1.247-192.168.1.252
set dns 192.168.1.40
pptp:
enable MSChapV2
disable deflate pred1
deny deflate pred1
set ifaddr 192.168.1.40 192.168.1.247-192.168.1.252
set dns 192.168.1.40
/usr/local/etc/rc.d/>

parus7, 2012-08-01 в 17:10:46

Представлен способ взлома MS-CHAPv2, по трудоёмкости идентичный подбору DES
http://opennet.ru/opennews/art.shtml?num=34456
MS-CHAPv2 свое время дослуживает. В перспективе имеет смысл использовать более совершенные средства, например l2tp+IPSec

Ornament, 2012-08-16 в 9:56:11

Надоедливая ошибка pptpd: CTRL: Ignored a SET LINK INFO packet with real ACCMs! на работоспособность не влияет. Но фиксится легко. в /etc/ppp.conf дописываем:
set accmap ffffffff.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0704 секунд
Из них PHP: 31%; SQL: 69%; Число SQL-запросов: 86 шт.
Исходный размер: 93674; Сжатая: 22505