Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #59, НОЯБРЬ 2003 г.

Шифрани свою сеть!

Докучаев Дмитрий aka Forb

Xakep, номер #059, стр. 059-082-5


name LOGIN

remotename VPN

# Информация для файла chap-secrets.

lock

# Лочим девайс, устанавливающий соединение.

debug

logfd 2

# Отладочные параметры.

+chapms

+chapms-v2

mppe-40

mppe-128

mppe-stateless

# Осуществляется mppe-шифрование каждого пакета.

noauth

# Не требуем авторизации со стороны сервера.

И последний штрих - запишем в /etc/ppp/chap-secrets следующие строки:

LOGIN VPN "password"

где LOGIN и password - аккаунт для соединения. Вот, собственно, и все. Можно тестировать соединение. Делаем это через консоль, используя псевдотерминальную опцию pty демона pppd. Поток будет передаваться pptp-клиентом:

# pppd pty 'pptp vpn.server.ru --nolaunchpppd' call vpn nodetach

Параметр nodetach не позволит демону уйти в бэкграунд. Так ты сможешь убедиться в правильности соединения. Когда появится надпись: "MPPE 128 Compression enabled", то считай, что соединение прошло удачно. Можешь давить ctrl+c и убирать опцию nodetach. В противном случае, перечитывай заново этот раздел и исправляй ошибку ;).

Вроде все готово. Осталось добавить дефолтовую маршрутизацию в инет через VPN-шлюз. Откроем файл /etc/ppp/ip-up.local (если такого нет - создаем) и пишем в него две строки:

/sbin/route del default

/sbin/route add default gw $IPREMOTE

Аналогично оформляется файл /etc/ppp/ip-up.down, после исполнения которого будет возвращен старый дефолтовый маршрут.

Если все работает, остается добавить запуск pppd в загрузочный скрипт и радоваться жизни - соединение будет активизироваться при каждом старте машины. Еще раз напомню - не забудь добавить подгрузку ppp_mppe в /etc/modules, иначе pppd не поймет алгоритма шифрования.

Всем спасибо, все свободны

В этом материале я постарался дать максимум инфы о поднятии VPN-сети (как серверной, так и клиентской части). Разумеется, всего я сказать не мог, так что если у тебя что-то не получится, не отчаивайся, а исправляй ошибки. В конце концов, VPN взлетит ;). И помни - истина где-то в логах!

Restricted Area

Чтобы простые юзеры не смогли сделать себе халявный доступ, позаботься о защите паролем web-скриптов. Для этого допиши в .htaccess следующие строки:

AuthType Basic

AuthName "Admin zone"

AuthUserFile "/path/to/.htpasswd"

Require valid-user

А затем в .htpasswd занести пару login:password.

Файл /etc/raddb/users

Я не рассказал об одном интересном файле под названием users. В нем хранятся предустановленные опции для каждого пользователя, а именно протокол, тип шифрования и т.д. Весьма интересной опцией является Idle-timeout, которая сбрасывает юзера после определенного время молчания (задается в секундах). Обязательно посмотри этот файл. Там полно понятных примеров.

Кстати, freenibs содержит целую таблицу аналогичных параметров, так что совсем не обязательно указывать их в файле users.

Проверка VPN-соединения

Бывает, что VPN-шлюз перезагружают. Естественно, что соединение при этом пропадает. Восстановить его поможет небольшой скрипт, который запускается в определенное время и проверяет наличие pppd-процесса:

Назад на стр. 059-082-4  Содержание  Вперед на стр. 059-082-6
<<< НАЗАД ||| ГЛАВНАЯ