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

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

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


Теперь открываем clients.conf. Тут надо убедиться, что директива secret (во вкладке client 127.0.0.1 { }) совпадает с паролем, а shortname равен localhost. И последнее - сделаем изменение в конфиге naslist. Файл содержит список Network Access Servers. Добавим в него следующую запись:

localhost local portslave

Здесь local - краткое название клиента, а portslave - тип девайса, который будет подключаться к радиусу (значение может быть livingston, cisco и т.д.).

Мутим туннель

Как ты, наверное, догадался, в нашей цепи не хватает демона pptpd - этот сервис будет принимать запросы от клиентов и запускать pppd, интегрированный с портслейвом. Portslave связывается с радиусом (при помощи клиента), а последний произведет авторизацию через модуль freenibs.

Установить pptpd очень просто. Сложнее исправить его конфигурационные файлы - этим мы сейчас и займемся. Во-первых, найди файл /etc/pptpd.conf. В нем содержатся опции демона. Исправь их на следующее:

speed 115200

option /etc/options.pptpd

pppd /usr/sbin/pptp-portslave

localip 192.168.0.1

remoteip 192.168.0.1-254

Что мы делаем? Мы устанавливаем максимальную скорость, прописываем файл с опциями, указываем скрипт к pppd, который содержит различные переменные (о них чуть позже), и напоследок раздаем IP-адреса: локальный (относительно сервера) и удаленный (для клиентов). По remoteip видно, что pptpd прекрасно понимает диапазоны адресов.

Все опции демона, которые относятся к стандартному шифрованию, находятся в /etc/options.pptpd. Вот их полный список:

Таблица: Опции pppd

require-chap

require-chapms-v2

+mppe-40

+mppe-128+mppe-stateless

ms-dns ns1.server.ru

noipx

asyncmap 0

auth

Расшифровку параметров я дам чуть ниже. Пока это не так важно - главное понять, что pppd должен юзать модуль ppp_mppe.o (не забудь загрузить его в ядро).

Теперь скрипт pptpd. Он задает важные переменные окружения:

Таблица: Стартовый скрипт pptp-portslave

#!/bin/bash

export PORTSLAVELOGNAME="AutoPPP"

export PORTSLAVE_SESSION=`date +%s``printf "%X" $RANDOM`

export PORTSLAVE_START_TIME=`date +%s`

export PORTSLAVE_DO_ACCT="1"

exec /usr/local/sbin/pppd-radius $*

Вроде все готово. Осталось запустить все сервисы и подготовить сеть для работы. В первую очередь запускается mysqld, затем radiusd и лишь потом pptpd. Но в тестовом режиме не спеши этого делать, т.к. у нас еще не составлена таблица юзеров, использующих VPN-соединения.

Администрирование через web

Для добавления тарифов и юзеров скачиваем пакет web-администрирования с сайта FreeNibs (http://nibs.net.ua). Для успешного старта скриптов тебе придется создать какой-нибудь дополнительный домен (например, admin.your.site.ru). В противном случае, ты будешь ковыряться в сорсах всех сценариев.

Итак, после создания домена, переходим в корень папки со скриптами. В директории includes/ меняем пароль на доступ к БД и немного модифицируем файл .htaccess. В .htaccess необходимо изменить prefix-пути для корректной работы скриптов. Напоследок убедись, что на сервере установлен PHP в нормальном, рабочем состоянии.

Назад на стр. 059-082-2  Содержание  Вперед на стр. 059-082-4