VPN (PPTP PPPoE)

Материал из ALT Linux Wiki
42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


Настройка VPN-соединения (PPTP и PPPoE)

NB: ошибка в ALT Linux Server 4.0.0/4.0.1, ALT Linux Desktop 4.0.0/4.0.1/4.0.2: FAQ#950

(ссылка не работает, надо найти, куда делся старый FAQ)

Данное руководство подразумевает использование etcnet. etcnet используется по умолчанию во всех дистрибутивах ALT Linux, начиная с версии 3.0, исключая десктопные дистрибутивы, начиная с 6.0. В последних используется Network Manager, хотя и etcnet тоже присутствует. Для настройки «по-дубовому» см. раздел в конце документа.

PPTP

Необходимые пакеты: ppp.

Рассматривается настройка VPN-соединения (pptp), аналогичного широко используемому клиентами Windows. Для начала рекомендуется читать документацию в /usr/share/doc/pptp* (на русском).

Создаем каталог /etc/net/ifaces/pppXX (где XX — любой свободный номер интерфейса). Пишем туда следующие файлы:

/etc/net/ifaces/pppXX/options:

ONBOOT=yes
PPPTYPE=pptp
PPTP_SERVER=10.0.0.1
REQUIRES=eth0

Пояснение: в параметр REQUIRES записывается имя того интерфейса, через который осуществляется доступ к PPTP (VPN) серверу. Наличие этого параметра гарантирует правильный порядок старта интерфейсов. Здесь и далее предполагается, что имя этого интерфейса eth0. /etc/net/ifaces/pppXX/pppoptions:

name ВАШ_ЛОГИН
password SUPER_SECRET_PASSWORD
noipdefault
defaultroute
noauth
hide-password
persist

(вместо user/password можно вписать параметр name, по аргументу которого будет производится поиск в первой колонке /etc/ppp/{pap,chap}-secrets)

Также рекомендуется в /etc/net/ifaces/eth0/ipv4route добавить отдельную строку для маршрута к VPN-серверу:

default via 10.0.66.1
10.0.0.1/32 via 10.0.66.1

Пояснение: первая строка — маршрут (в локальную сеть) по умолчанию для интерфейса eth0. Вторая строчка это указание статического маршрута до одного конкретного сервера (того самого сервера PPTP). Если его не указать (частая ошибка в настройках PPTP), то после присоединения к PPTP-серверу маршрут по умолчанию изменится, и сам сервер станет недоступен. Симптомы такой неправильной настройки: соединение устанавливается, но ничего не работает, и соединение почти сразу разрывается.

Для ручной остановки PPTP-соединения следует (от root) использовать команду ifdown pppXX, где вместо pppXX следует писать имя вашего PPTP-интерфейса. Для ручного запуска используйте команду ifup pppXX.

PPPoE

Необходимые пакеты: rp-pppoe-base.

Сначала настраиваем /etc/net/ifaces/eth0. Для этого удаляем из этого каталога всё кроме options. В options оставляем строчки

BOOTPROTO=static
MODULE=<имя_модуля_сетевой карточки>

После создаём в /etc/net/ifaces/ppp0 файлы:

options:

ONBOOT=yes
PPPTYPE=pppoe
HOST=eth0
PPPOE_EXTRA_OPTIONS="-T 80 -m 1412"

из man pppoe:

       -m MSS Causes pppoe to clamp the TCP  maximum  segment  size  at  the  specified
              value.   Because of PPPoE overhead, the maximum segment size for PPPoE is
              smaller than for normal Ethernet encapsulation.  This could  cause  prob
              lems  for  machines on a LAN behind a gateway using PPPoE.  If you have a
              LAN behind a gateway, and the gateway  connects  to  the  Internet  using
              PPPoE, you are strongly recommended to use a -m 1412 option.  This avoids
              having to set the MTU on all the hosts on the LAN.

pppoptions:

noipdefault
noauth
default-asyncmap
defaultroute
hide-password
mtu 1492
mru 1492
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
user ВАШ_ЛОГИН
password ВАШ_ПАРОЛЬ
lcp-echo-interval 20
lcp-echo-failure 3
persist

(вместо user/password можно вписать параметр name, по аргументу которого будет производится поиск в первой колонке /etc/ppp/{pap,chap}-secrets)


Проверяем что все работает

  1. service network restart

и… всё. Теперь при загрузке в процессе запуска сервиса network будет создаваться и подниматься соединение PPP-over-Ethernet.

PS. Если используется как шлюз, то в /etc/net/ifaces/default/fw/iptables/mangle/FORWARD необходимо вставить:

 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Ручная настройка (без etcnet)

PPTP

Кратко: устанавливаем пакет pptp-client, запускаем pptp-config и настраиваем. На всякий случай укажите данные для авторизации как PAP, так и CHAP. В /etc/sysconfig/pptp нужно указать название соединения (придуманное при pptp-config):

# Tunnel name
PPTP_TUNNEL=НАЗВАНИЕ_ТУННЕЛЯ

Данные о соединении запишутся в /etc/ppp/peers/название_соединения:

debug

pty "/usr/sbin/pptp 192.168.0.254 --nolaunchpppd"
connect /bin/true
defaultroute

# 
# Tags for CHAP secret selection
#
name ВАШ_ЛОГИН
remotename PPTP

#
# Tunnel name for ip-up.local or ip-up.d scripts
#
ipparam НАЗВАНИЕ_ТУННЕЛЯ

file /etc/ppp/options.pptp

а также в файлы /etc/ppp/pap-secrect и /etc/ppp/chap-secret

Далее делаем service pptptunnel start Если интерфейс ppp0 появляется, а обмена нет, попробуйте отключить сжатие: в /etc/ppp/options.pptp дописать nodeflate.

Если вы задали GATEWAY в /etc/sysconfig/network, то при подключении через VPN он не будет переопределяться, соответственно работать Инет не будет. Поэтому GATEWAY надо отключить, а в /etc/sysconfig/static-routes указать статические маршруты для локальной сети:

any net 192.168.2.0/24 gw 192.168.2.246

PPPoE

Необходимые пакеты: rp-pppoe-client.

Указываем настройки в /etc/ppp/pppoe.conf:

ETH=eth0  #сетевой интерфейс
USER=логин
DNSTYPE=SERVER
ACNAME=internet

Указать в /etc/ppp/chap-secret (и быть может в /etc/ppp/pap-secret) свой логин/пароль и

  1. service adsl start

для подключения.