Допустим установлен FreeRADIUS 2
Теперь скопируем файл dhcp.conf в конфигурацию FreeRADIUS:
cp /usr/abills/misc/freeradius/v2/dhcp.conf /usr/local/freeradius/etc/raddb/sites-enabled/ |
Откроем его в редакторе и заменим %DHCP_SERVER_IP% на ip адрес сервера и укажем сетевой интерфейс:
nano /usr/local/freeradius/etc/raddb/sites-enabled/dhcp.conf |
Откроем в редакторе словарь:
sudo nano /usr/local/freeradius/share/freeradius/dictionary |
Добавим строку:
$INCLUDE dictionary.dhcp |
Запустим Freeradius в режиме отладки:
radiusd -X |
После запуска должно отобразится что-то вроде:
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 и запустим в обычном режиме:
/etc/init.d/radiusd start |
Если понадобится, то можно анализировать пакеты через tcpdump:
tcpdump port 67 or port 68 -e -n netstat -tulpn | grep :67 |
Приступим к настройке ABillS, импортируем базу модуля Dhcphosts:
mysql -u root -p --default-character-set=utf8 -D abills < /usr/abills/db/Dhcphosts.sql |
В файле config.pl АСР Казна-39 должен быть подключен модуль Dhcphosts:
Откроем файл конфигурации АСР Казна-39 в текстовом редакторе:
/usr/abills/libexec/config.pl |
И пропишем следующие параметры:
$AUTH{dhcp}='Mac_auth2';
# использовать для DHCP leases записей базу
$conf{DHCPHOSTS_LEASES}='db';
# включить авторизацию по порту и коммутатору
$conf{DHCPHOSTS_PORT_BASE}=1; |
Настроим DHCP логи, откроем в текстовом редакторе файл:
nano /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 чтобы применить изменения:
/etc/init.d/radiusd restart |
На ошибку в логах «No name specified for Post-Auth-Type block» можно не обращать внимания.
Возможно придется дать доступ администратору к модулю Dhcphosts в меню АСР Казна-39 «Настройка» — «Администраторы».
В «Настройка» — «Сервер доступа» добавим коммутатор для авторизации по порту и коммутатору:
IP: IP адрес коммутатора Name: Название Type: dhcp DHCP FreeRadius in DHCP mode Mac: Мак адресе коммутатора |
Если используется L3 схема с Accel-ppp, то нужно также добавить DHCP Relay в сервера доступа.