Настройка Dial-IN сервера FreeBSD PPPD
Материал из BiTel WiKi
Текст данной статьи любезно предоставлен Stoun ом.
Попробуем собрать NAS (dial-in) c использованием следующих компонентов radpppd, mgetty, snmp, и все это для обустройства NASa (на FreeBSD 4.9-5.2.1) для BG-billing
Итак начнем.
- Установка mgetty (mgetty-1.1.30.12.16_4.tgz)
- Установка radpppd с патчем, его берем с сайта http://nibs.is.kh.ua : http://nibs.is.kh.ua/src/radpppd/radpppd.tgz http://nibs.is.kh.ua/src/radpppd/radpppd_alive_remote.patch.bz2
- Установка net-snmp (net-snmp-5.1.2.tar.gz)
1.Устанавливаем mgetty. из пакета mgetty-1.1.30.12.16_4.tgz, при установке отвечаем на вопросы: критичные следующие вопросы
- скорость соединения по портам - 115200
- порт соединения – для начала пускай будет cuaa0
- data-only – yes … ну и так далее в /usr/local/etc/mgetty+sendfax/ правим login.config
#пропускаем все коментарии #Вот нужная строка: /AutoPPP/ - a_ppp /usr/sbin/radpppd auth radius +pap -chap debug #остальное оставляем как есть
Правим mgetty.config: Комментируем первую строку, т.к. будем работать не только с этим портом, так же все настройки можно менять здесь же.
#port cuaa0 debug 4 fax-id 00 00 000000 speed 115200 direct NO blocking NO port-owner uucp port-group uucp port-mode 0660 toggle-dtr YES toggle-dtr-waittime 500 data-only YES fax-only NO modem-type auto init-chat "" ATS0=0Q0&D3&C1 OK modem-check-time 3600 rings 1 answer-chat "" ATA CONNECT \c \r answer-chat-timeout 80 autobauding NO ringback NO ringback-time 30 ignore-carrier false issue-file /etc/issue prompt-waittime 500 login-prompt @!login: login-time 240 diskspace 1024 notify faxadmin fax-owner uucp fax-group modem fax-mode 0660
С mgetty пока закончим, но потом к нему вернемся.
2. Установка radpppd Распаковываем исходные тексты этого модуля, в какую-либо директорию, например /usr/install/radpppd, в ту же директорию распаковываем и кладем патч для alive пакетов radpppd_alive_remote.patch Накладываем patch командой:
cd /usr/install/radpppd patch < radpppd_alive_remote.patch
Находим и правим файл auth.c, строку 1891:
snprintf(radacc_session_id, sizeof(radacc_session_id), "%ld", (long)random());
меняем на
snprintf(radacc_session_id, sizeof(radacc_session_id), "%04", getpid());
Теперь компилируем radpppd и копируем в /usr/sbin
Настраиваем: Копируем файлы из /usr/share/examples/pppd в /etc/ppp, ну вот если по порядку
- auth-down.sample в такой auth-down
- auth-up.sample в такой auth-up
- chap-secrets.sample в такой chap-secrets
- pap-secrets.sample в такой pap-secrets
- ip-down.sample в такой ip-down
- ip-up.sample в такой ip-up
- options.sample в такой options
Файлы с номерами 1, 2, 5,6 необходимо сделать исполняемыми от root-а и закомментировать в них все строки Вот рабочий файл options:
# $FreeBSD: src/share/examples/pppd/options.sample,v 1.1 2002/01/29 00:23:33 cjc Exp $ #debug passive modem #radius эта опция перенесена в файл конфигурации mgetty – login.config 192.168.1.200:192.168.1.201 proxyarp ms-dns 192.168.1.101 #defaultroute require-pap refuse-chap noipx #mtu 250 #mru 250
Вот рабочий файл pap-secrets:
# Example for /etc/ppp/pap-secrets file. # # This file should be owned by root and not readable or # writable by any other user. # # Dialin format: <remote name> <our name> <password> <allowed IP addresses> # Dialout format: <our name> <server name> <password> # #jane isp password * * * *
Создаем файл radius.conf в /etc со следующим содержанием:
auth 192.168.1.73:1812 12345 acct 192.168.1.73:1813 12345
где IP адреса меняем на используемые реально, а пароль "12345" меняем по своему усмотрению, естественно на аналогичный в настройках NASa в самом биллинге для успешного подключения
3.Установка SNMPD. Распаковываем net-snmp-5.1.2.tar.gz например в /usr/install/net-snmp. Как обычно:./configure, запрашивает версию используемого протокола, ставим – 2, затем
make make installС настройкой SNMP можно ознакомиться далее. Теперь настраиваем в /etc/ttys “прослушивание” портов для mgetty, в конец файла дописываем, обычно mgetty это сам делает, но если не прописал или мы настраиваем mgetty для нескольких портов, то пишем:
cuaa0 “/usr/local/sbin/mgetty” unknown on insecure cuaa1 “/usr/local/sbin/mgetty” unknown on insecure cuaa4 “/usr/local/sbin/mgetty” unknown on insecure cuaa5 “/usr/local/sbin/mgetty” unknown on insecure
Две последние строки пишем при использовании дополнительной мультипортовой платы.
…Небольшое отступление по поводу подключения дополнительного оборудования.
Для включение поддержки мультипортовой платы, (которая собрана на чипе NM9835 и на себе несет два дополнительных COM порта и один LPT, последний нас не интересует), необходимо пересобрать ядро. В файле конфигурации ядра необходимо раскоментировать строку или добавить эту строку, в случае ее отсутствия:
device puc
после этого компилируем и подключаем ядро. Теперь при установленной мультипортовой карте в компьютере и загрузке операционной системы мы должны увидеть следующее или подобное сообщение (сообщение ядра):
puc0: <NetMos NM9835Dual UART and 1284 Printer port> port …
После загрузки компьютера в /dev появятся еще два устройства – cuaa4 и cuaa5, которые и будут являться дополнительными COM портами. Их только нужно прописать в файле /etc/ttys, как и было описано выше, и они будут использоваться.Следует уделить внимание раздаче IP адресов при подключении клиентов.
Настроить раздачу адресов из диапазона, указанного в настройках NASa биллинговой системы, почему-то не удалось. Но IP адреса можно присваивать и другим способом: Для каждого используемого порта cuaa0, cuaa1… создаем свой файл options в /etc/ppp/ с названиями, содержащими в себе имя порта, например при использовании мультипортовки и использовании всех четырех портов, создаем следующие файлы:
options.cuaa0 options.cuaa1 options.cuaa4 options.cuaa5
С тем же содержимым, которое было указано в файле options выше, единственное что меняем, то это номера IP адресов для присвоения клиенту, а файл options удаляем.