вторник, 11 августа 2009 г.

Настройка сервера доступа на FreeBSD (PPPOE + FREERADIUS)

Итак описываю ситуацию при которой мне впервые пришлось столкнуться с FreeBSD. После переезда в другой город(больше в 5 раз) пришел я устраиваться на работу к одному ISP меня взяли с испытательным сроком в 1 месяц и дали тестовое задание поднять NAS на FreeBSD. Его установку и настройку я опишу.

Дали мне машинку с CD приводом HDD 6.5Gb
1 CD FreeBSD 7.0 и доступ в интернет по внутренней сети.

Немного погуглил и прочитав про возможные подводные камни начал установку. Саму установку описывать нет смысла так как все предельно ясно.
Система установлена можно приниматься за работу.

# whereis pppoed
pppoed: /usr/libexec/pppoed

и мы увидим уже установленный демон PPPOE
Настроим его, для этого в файлах
/etc/ppp/ppp.conf

pppoe-in:
 set login
 allow mode direct
 set mru 1492
 set mtu 1492
 set speed sync
 set log Phase Chat LCP IPCP CCP tun command chap
 disable eap pap chap chap81
 enable lqr
 enable MSCHAPv2
 set timeout 0
 set ifaddr 10.0.0.1 10.0.0.2-254
 set dns 192.168.1.1 4.2.2.2
 accept dns


/etc/ppp/ppp.secret

USERNAME PASSWORD * * *


где USERNAME это имя тестового пользователя, а PASSWORD его пароль теперь можно проверить его работоспособность запускаем pppoe сервер командой
/usr/libexec/pppoed -p SERVICE_NAME -l pppoe-in IFACE_NAME

В данной конфигурации IP адрес клиенту назначается автоматически для использования конкретного адреса, нужно в файле
/etc/ppp/ppp.conf
убрать строку
set ifaddr 10.0.0.1 10.0.0.2-254

и запись в файле
/etc/ppp/ppp.secret
привести к виду
USERNAME PASSWORD 10.0.0.2 * *

аутентификация предусмотренная в данном случае MSCHAPv2 если требуется другой вид аутентификации то в файле
/etc/ppp/ppp.conf
измените строку
enable MSCHAPv2

так как нужно Вам.
Для аутентификации через FREERADIUS изменим предыдущий конфиг но сначала поставим FREERADIUS.
Набираем
# whereis freeradius

видим где лежит порт
freeradius: /usr/ports/net/freeradius

переходим в каталог порта
# cd /usr/ports/net/freeradius

и даем команды
# make config

устанавливаем нужные опции в том числе и поддержку MySQL жмем [OK]
# make

и
# make install

FREERADIUS с MySQL установлен можно приступить к конфигурации данной связки для этого команда
# echo "acct RADIUS_IP SECRET_KEY" >> /etc/radius.conf
# echo "auth RADIUS_IP SECRET_KEY" >> /etc/radius.conf

где RADIUS_IP – IP адрес radius сервера, SECRET_KEY – секретный ключ. SECRET_KEY устанавливается в файле
/usr/local/etc/raddb/clients.conf


client localhost {
secret = SECRET_KEY
shortname = localhost
}


в файле /usr/local/etc/raddb/sql.conf можно записать свои SQL запросы, описывать не вижу смысла ,примеров в интернете много.

меняем конфигурацию pppoed

/etc/ppp/ppp.conf

pppoe-in:
 set login
 allow mode direct
 set mru 1492
 set mtu 1492
 set speed sync
 set log Phase Chat LCP IPCP CCP tun command chap
 disable eap pap chap chap81
 enable lqr
 enable MSCHAPv2
 set timeout 0
 set radius /etc/radius.conf
 set ifaddr 10.0.0.1 10.0.0.2-254
 set dns 192.168.1.1 4.2.2.2
 accept dns


Для автозагрузки всего этого хозяйства нужно добавить в файл

/etc/rc.conf

radiusd_enable="YES"
pppoed_enable="YES"
pppoed_provider="SERVICE_NAME"
pppoed_flags="-l pppoe-in"
pppoed_interface="rl1"

При копировании материалов
ссылка на источник обязательна!


2 комментария:

  1. круто) смотрю ты там уже вкурил что к чему)

    ты мне лучше скажи почему мой "любимый" провайдер использует в обязательном порядке mppc, та самая патентная компрессия от МС которой нет изкоробки в линуксе? Насколько я знаю, у большинства провайдеров эта компрессия опциональна, т.е. можно и без ней жить.

    ОтветитьУдалить
  2. Пока еще вкуриваю :)
    А по поводу вопроса Хто Знает, видимо так больше нравиться :)

    ОтветитьУдалить