Home FreeBSD FreeBSD Траффик VPN по протоколу PPTP на PoPToP.

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

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

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/security/poptop/

Подкинули халтуру - надо организовать, чтобы люди могли из дома ходить в рабочую сетку, терминально работать с 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: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
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.confoptions /etc/ppp/options.pptpd
debug
noipparam


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


а кончилось всё как всегда - надо было прочесть man на pptpd.conf :)
Затем создаём/радактируем следующие файлы:
/etc/ppp/ppp.confpptp:
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.pptpdproxyarp
+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 или имя сервака и всё...

Обновлено 28.05.2010 13:36  
Интересная статья? Поделись ей с другими:

  • Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte Вопросы по поводу написанных статей можно обсудить в нашем сообществе в  Вконтакте / Questions about written articles can be discussed in our community in Vkontakte
Яндекс.Метрика