Документация по ОС FreeBSD Пятница, 19.04.2024, 09:57
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » РРР

Настройка сервера PPPoE под FreeBSD
При настройки использовались следующие программные продукты :

1. Операционная система FreeBSD ver. 4.2

2. Демон PPPoE от системы OpenBSD (не использующий NETGRAPH) можно получить на сайте ftp://ftp.vsi.ru/pub/unix/pppoe/pppoed.tgz) в дальнейшей работе мы будем использовать именно его.
(Можно так же использовать "родной" демон PPPoE поставляющийся c FreeBSD основанный на NETGRAPH, но в версии FreeBSD 4.2 он имеет ошибки которые приводят к падению всей ОС, возможно в следующих версиях ОС эту ошибку устранили)

3. Клиентская часть для Windows 98/2000/XP реализуемая драйвером PPPoE от Robert Schlabbach. можно получить на сайте (http://user.cs.tu-berlin.de/~normanb/)

4. Пакет user-level ppp. Для работы с системой учета ниже необходимо версия пакета ppp-020417.src.tar.gz или более поздняя ! можно получить на сайте (http://www.Awfulhak.org/ppp.html) (в любом случае желательно обновить данный пакет).

В ядро системы дожно быть собранно со следующими устройствами:

# данное устройство необходимо для работы PPPoE демона
pseudo-device bpf # Berkeley packet filter

# данное устройство необходимо для работы user-level ppp
pseudo-device tun # Packet tunnel


Настройка PPPoE серевера.

Необходимо распаковать архив коммандой
# tar -xvzf pppoed.tgz
скомпилировать демон коммандой
# make
готовый демон скопировать в каталог
# cp pppoe /usr/sbin/

Добавить в файл /etc/ppp/ppp.conf следущие запись необходимые для работы pppoe демона.

default:
#set log Phase Chat LCP IPCP CCP tun command debug

pppoe:
set device !/usr/sbin/pppoe
set mtu 1450
set mru 1450
set speed sync
set timeout 300
set server /var/tmp/pppuser%d "" 0177
allow mode direct
enable pap passwdauth
enable chap
disable acfcomp protocomp
deny acfcomp
set ifaddr 192.168.3.1 192.168.3.3-192.168.3.253
# ip адрес DNS сервера назначаемое соединению
set dns 213.24.96.233
accept dns


Описание некоторых комманд:
set timeout 300 - определяем время в секундах закрытия соединения в случае неактивности канала (не желательно ставить 0 могут оставаться незакрытые сесии )

set server /var/tmp/pppuser%d "" 0177 - имя sock файла через который будет осуществлятся взаимодействие с конкретным соединением, опция %d заставляет создавать файлы с именами pppuser0,pppuser1 ... итд.

enable pap passwdauth - определяется способ авторизации при наличии опции passwdauth пароли и пользователи могут проверятся в /etc/master.passwd (имя и пароль пользователя передаются по каналу в открытом виде)
enable chap - (имя и пароль передаются по каналу в шифрованном виде)

disable acfcomp protocomp
deny acfcomp - отключает компрессию для того, что бы заработала поддержка MPPE - алгоритма криптографии от Microsoft.

set ifaddr 192.168.3.1 192.168.3.3-192.168.3.253 -
ip адрес шлюза и диапазон адресов доступный для назначения соединению клиента

set dns 213.24.96.233 - ip адрес DNS сервера назначаемое соединению клиента

Создать файл-скрипт /usr/local/etc/rc.d/pppoe.sh для автоматичекого запуска PPPoE демона при загрузки ОС зделать его выполняемым # chmod +x pppoe.sh следующего содержания:
#!/bin/sh
case "$1" in
start)
echo "PPPoE server"
/usr/sbin/pppoe -s -p pppoe -i rl0 &
;;
stop)
;;
*)
echo "Usage: `basename $0` { start | stop }"
exit 64
;;
esac

Где rl0 интерфейс сервера на котором необходимо принимать запросы от клиентов.

Запустить PPPoE сервер коммандой:
# /usr/local/etc/rc.d/pppoe.sh start

Принципы организации системы учета и контроля трафика на базе PPPoE сервера.

При подключении пользователя к pppoe серверу последний запускает процесс user-level ppp. Далее этот процесс ppp открыват псевдо-устройство tun и создает файл unix sock заданный в файле конфигурации коммандой set server /var/tmp/pppuser%d "" 0177.
Через этот файл можно с помощью программы /usr/sbin/pppctl задав в качестве параметра его имя управлять конкретным соединением:
устанавливать различные режимы работы соединения, получать информацию о соединении , принудительно закрывать конкретное соединение.

Вот пример некоторых комманд:
#pppctl /var/tmp/pppuser0 close - закрывает соединение
#pppctl /var/tmp/pppuser0 ! echo USER - показывает имя пользователя которым открыто данное соединение.
#pppctl /var/tmp/pppuser0 ! echo UPTIME OCTETSIN OCTETSOUT - показывает сколько времени открыто соединие , сколько принято и отправлено байт пользователем. (эти комманды доступны начиная версии ppp-020417.src.tar.gz)

Так как нас есть возможность в любой момент получить информацию о любом соединении следовательно можно постороить систему учета которая позволила бы весть учет для каждого пользователя по следующим пунктам:

1. Лимитировать трафик
2. Учитывать время проведенное пользователем на линии
3. Задавать временные промежутки в какие пользователю разрешено работать
 
Автор: by yura
Категория: РРР | Добавил: oleg (21.11.2007)
Просмотров: 2046 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024