Настройка PPTP клиента под Linux и FreeBSD

В связи с постоянным развитием программы pppclient, мы считаем лучшим решением взять самую последнюю стабильную версию. И только по этой причине не выкладываем исходные коды программы на нашем сервере.

"Официально поддерживаемой" версией ppptclient's сетью vzletka.net, на данный момент, является оп. система FreeBSD4-Stable.

Документацию и поддержку пользователей pptp под unix ведет Roman Y. Bogdanov. Я со своей стороны приложу все услилия, чтобы помочь тем, кто изначально работает на unix/linux/beos/macos, но у меня просто нет времени на техническую поддержку ВСЕХ СИСТЕМ. Это не потому, что я гадкий и злой человек, который ни за что не будут помогать другим, а только лишь в силу того, что я не могу отвечать на 400 сообщений/звонков в день и еще что-то делать для серверов vzletka.net

Linux

1. Установка

Для установки PPTP клиента под Linux необходимо установить программу pptpclient, исходный код которой можно скачать либо с сервера SourceForge. Можете поискать эту программу в Вашем дистрибутиве или (для RPM-based систем) на rpmfind.net. Для установки бинарного пакета руководствуйтесь документацией на Ваш пакетный менеджер.

Для установки из исходных текстов распакуйте архив следующими командами:

$ tar -xzf pptp-linux-1.0.3-1.tar.gz
$ cd pptp-linux-1.0.3-1
$ tar -xzf pptp-linux-1.0.3.tar.gz
$ patch -p0 < ../pptp-linux-1.0.3.diff
$ cd pptp-linux-1.0.3
Для сборки pptp Вам понадобятся программы gcc и make. Наберите команду
$ make
У вас должны создаться два файла - pptp и pptp_callmgr. Скопируйте их в каталог /usr/local/sbin/.

Примечание:
Также у вас должна быть установлена программа pppd(8), она должна идти в комплекте с дистрибутивом. В ядре также должна быть включена поддержка PPP.

2. Настройка

Файл /etc/ppp/options должен быть примерно следующего содержания:

name <LOGIN>
remotename vpn
defaultroute
noauth
asyncmap 0
crtscts
lock
hide-password
local
noproxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx
где <LOGIN> - имя пользователя для авторизации на VPN сервере.

Файл /etc/ppp/chap-secrets должен содержать строку:

<LOGIN>    vpn    <PASSWORD>
где <LOGIN> - имя пользователя для авторизации на VPN сервере, а <PASSWORD> - его пароль.

ВАЖНО: Если Вы не находитесь в одном IP сегменте с VPN сервером, перед установлением соединения в таблице маршрутизации должен быть прописан маршрут до VPN сервера. Это можно сделать запустив команду:

/sbin/route add -host <IP_address_of_VPN_server> gw <gateway>
где <IP_address_of_VPN_server> - IP адрес VPN сервера, а <gateway> - шлюз, имеющийся у вас до установки PPTP соединения.

3. Запуск и остановка

Подключение к VPN серверу выполняется командой, запущенной с правами администратора:

# /usr/local/sbin/pptp <IP_address_of_VPN_server>
где <IP_address_of_VPN_server> - IP адрес VPN сервера.

При успешном подключении создастся интерфейс pppX, где X - цифра. Через этот интерфейс и пойдёт весь трафик.

Разорвать соединение можно послав сигнал TERM (15) командой kill(1) процессу pppd. Либо (если установлена команда killall и запущен только один pppd процесс) с помощью команды

# killall pppd

FreeBSD

1. Установка

Для установки PPTP клиента под FreeBSD необходимо установить из портов пакет pptpclient, а также необходимый ему пакет libgnugetopt. Скачать эти пакеты можно с официального ftp сервера FreeBSD.

Чтобы установить эти пакеты, в системе FreeBSD используется команда pkg_add(1). С правами администратора запустите следующие команды:

# pkg_add -p /usr libgnugetopt-1.1.tgz
# pkg_add pptpclient-1.0.3.tgz

2. Настройка

Для настройки ppp добавьте следующие строки в файл /etc/ppp/ppp.conf

vpn:
set authname <LOGIN>
set authkey <PASSWORD>
set timeout 0
set ifaddr 0 0
add default HISADDR
где <LOGIN> - имя пользователя для авторизации на VPN сервере, а <PASSWORD> - его пароль.

ВАЖНО: Если Вы не находитесь в одном IP сегменте с VPN сервером, перед установлением соединения в таблице маршрутизации должен быть прописан маршрут до VPN сервера. Это можно сделать запустив команду:

/sbin/route add -host <IP_address_of_VPN_server> <gateway>
где <IP_address_of_VPN_server> - IP адрес VPN сервера, а <gateway> - шлюз, имеющийся у вас до установки PPTP соединения.

3. Запуск и остановка

Подключение к VPN серверу выполняется командой, запущенной с правами администратора:

# /usr/local/sbin/pptp <IP_address_of_VPN_server> vpn &
При успешном подключении создастся интерфейс tunX, где X - цифра. Через этот интерфейс и пойдёт весь трафик.

Разорвать соединение можно послав сигнал TERM (15) командой kill процессу pptp.


Настройка firewall'а

Протокол PPTP использует следующие порты и протоколы:

  • На сервере - порт 1723, протокол TCP.
  • У клиента (т.е. у Вас) - некий верхний порт (>1023), протокол TCP.
  • С обеих сторон - протокол GRE (для создания туннеля).
Если у Вас на машине установлен firewall, его необходимо настроить с учётом этих данных. Смотрите руководство на программное обеспечение, отвечающее за firewall в Вашей операционной системе.