Настройка FreeRADIUS DHCP для ABillS

Допустим установлен FreeRADIUS 2 как написано в этой статье — Установка и настройка биллинговой системы ABillS
Теперь скопируем файл dhcp.conf в конфигурацию FreeRADIUS:

sudo cp /usr/abills/misc/freeradius/v2/dhcp.conf /usr/local/freeradius/etc/raddb/sites-enabled/

Откроем его в редакторе и заменим %DHCP_SERVER_IP% на ip адрес сервера и укажем сетевой интерфейс:

sudo nano /usr/local/freeradius/etc/raddb/sites-enabled/dhcp.conf

Откроем в редакторе словарь:

sudo nano /usr/local/freeradius/share/freeradius/dictionary

Добавим строку:

$INCLUDE dictionary.dhcp

Запустим Freeradius в режиме отладки:

radiusd -X

Возможно Freeradius уже запущен и запустить еще один естественно не получится, смотрите мою статью — Решение ошибки Failed binding to authentication address * port 1812: Address already in use freeradius
После запуска должно отобразится что-то вроде:

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on dhcp interface enp2s0 address 192.168.99.1 port 67 as server dhcp
Ready to process requests.

Комбинацией клавиш Ctrl+C остановим radiusd и запустим в обычном режиме:

sudo /etc/init.d/radiusd start

Если понадобится, то можно анализировать пакеты через tcpdump:

sudo tcpdump port 67 or port 68 -e -n
sudo netstat -tulpn | grep :67

Приступим к настройке ABillS, импортируем базу модуля Dhcphosts:

mysql -u root -p --default-character-set=utf8 -D abills < /usr/abills/db/Dhcphosts.sql

Копируем платный модуль в ABillS:

cp Mac_auth.pm /usr/abills/Abills/mysql/

В файле config.pl ABillS должен быть подключен модуль Dhcphosts:

Откроем файл конфигурации ABillS в текстовом редакторе:

nano /usr/abills/libexec/config.pl

И пропишем следующие параметры:

$AUTH{dhcp}='Mac_auth';
# использовать для DHCP leases записей базу
$conf{DHCPHOSTS_LEASES}='db'; 
# включить авторизацию по порту и коммутатору
$conf{DHCPHOSTS_PORT_BASE}=1;

Естественно должен быть подключен модуль Dhcphosts:

@MODULES = (
        'Dhcphosts'
        );

Настроим DHCP логи, откроем в текстовом редакторе файл:

/usr/local/freeradius/etc/raddb/modules/linelog

И добавим в самом конце:

linelog linelog-dhcp {
    filename = ${logdir}/linelog-dhcp.log
    format = ""
    reference = "%{%{reply:DHCP-Message-Type}:-%{request:DHCP-Message-Type}}"
    DHCP-Discover = "%S --> Transaction-ID: %{DHCP-Transaction-Id} DISCOVER: [%{DHCP-Client-Hardware-Address}] via (%{DHCP-Gateway-IP-Address}), hop count = %{DHCP-Hop-Count}, Relay = %{DHCP-Relay-Remote-Id}, Hostname =  %{DHCP-Hostname}"
    DHCP-Offer = "%S <-- Transaction-ID: %{DHCP-Transaction-Id} OFFER: %{reply:DHCP-Your-IP-Address} to [%{DHCP-Client-Hardware-Address}] ..."
    DHCP-Request = "%S --> Transaction-ID: %{DHCP-Transaction-Id} REQUEST: [%{DHCP-Client-Hardware-Address}] via (%{DHCP-Gateway-IP-Address}), hop count = %{DHCP-Hop-Count}, Relay = %{DHCP-Relay-Remote-Id} ..."
    DHCP-Ack = "%S <-- Transaction-ID: %{DHCP-Transaction-Id} ACK: %{reply:DHCP-Your-IP-Address} to [%{DHCP-Client-Hardware-Address}] ..."
    DHCP-NAK = "%S <-- Transaction-ID: %{DHCP-Transaction-Id} NAK: [%{DHCP-Client-Hardware-Address}] for %{request:DHCP-Client-IP-Address}; ..."
    0 = "%S -/- Transaction-ID: %{DHCP-Transaction-Id} %{request:DHCP-Message-Type} DROPPED: ..."
}

Если что, можно создать файл:

touch /var/log/linelog-dhcp.log
chown freerad:freerad /var/log/linelog-dhcp.log

Перезапустим FreeRADIUS чтобы применить изменения:

sudo /etc/init.d/radiusd restart

На ошибку в логах «No name specified for Post-Auth-Type block» можно не обращать внимания.

Возможно придется дать доступ администратору к модулю Dhcphosts в меню ABillS «Настройка» — «Администраторы».

В «Настройка» — «Сервер доступа» добавим коммутатор для авторизации по порту и коммутатору:

IP: IP адрес коммутатора
Name: Название
Type: dhcp DHCP FreeRadius in DHCP mode
Mac: Мак адресе коммутатора

Если используется L3 схема с Accel-ppp, то нужно также добавить DHCP Relay в сервера доступа.

Смотрите также мою статью:
IPTables правила для FreeRADIUS

Оставьте комментарий

Добавить комментарий