Я установил FreeRADIUS 3.0.11 на Ubuntu Server 16.04. Ubuntu Server работает на виртуальной машине ESXi. Виртуальная машина имеет две сетевые карты. Один для подключения к сети администратора, другой для локальной сети клиента. Я также использую виртуальную машину PfSense в качестве межсетевого экрана между локальной сетью и сервером Ubuntu.
Проблема в том, что когда я тестирую из админ-сети radtest test 1234 192.168.1.144 1812 testing123
сервер FreeRADIUS замечает и отвечает правильно, но когда я тестирую из локальной сети, сервер FreeRADIUS вообще не получает Access-Request , Я использую сервер в режиме отладки freeradius -X
.
IP-адреса:
Ubuntu server admin NIC, ens160: 192.168.1.144
Ubuntu server NIC to PfSense, ens192: 192.168.34.2
PfSense NIC to Ubuntu server: 192.168.34.1
PfSense LAN NIC: 192.168.33.1
Я проверил с помощью tcpdump, что сервер Ubuntu получает пакеты Access-Request. IP 192.168.33.50 - это IP-адрес ноутбука.
sudo tcpdump -i ens192 port 1812
10:24:18.578802 IP 192.168.33.50.63334 > 192.168.34.2.radius: RADIUS, Access-Request (1), id: 0x09 length: 44
10:24:19.578202 IP 192.168.33.50.63334 > 192.168.34.2.radius: RADIUS, Access-Request (1), id: 0x09 length: 44
Я использую iptables для пересылки HTTP и HTTPS на виртуальную машину PfSense, поэтому я могу настроить ее из сети администратора.
# Generated by iptables-save v1.6.0 on Wed May 4 10:23:08 2016
*nat
:PREROUTING ACCEPT [2:396]
:INPUT ACCEPT [2:396]
:OUTPUT ACCEPT [3:213]
:POSTROUTING ACCEPT [3:213]
-A PREROUTING -i ens160 -p tcp -m tcp --dport 4954 -j DNAT --to-destination 192.168.34.1:80
-A PREROUTING -i ens160 -p tcp -m tcp --dport 4955 -j DNAT --to-destination 192.168.34.1:443
-A POSTROUTING -d 192.168.34.1/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.34.2
-A POSTROUTING -d 192.168.34.1/32 -p tcp -m tcp --dport 443 -j SNAT --to-source 192.168.34.2
COMMIT
# Completed on Wed May 4 10:23:08 2016
# Generated by iptables-save v1.6.0 on Wed May 4 10:23:08 2016
*filter
:INPUT ACCEPT [24:2294]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:3245]
-A INPUT -p udp -m udp -m multiport --dports 1812 -m comment --comment "Accept RADIUS" -j ACCEPT
COMMIT
# Completed on Wed May 4 10:23:08 2016
Я проверил, что FreeRADIUS прослушивает порт 1812.
netstat -lun | grep 1812
udp 0 0 127.0.0.1:18120 0.0.0.0:*
udp 0 0 0.0.0.0:1812 0.0.0.0:*
udp6 0 0 :::1812 :::*
Я попытался переадресовать порт 1812 с интерфейса на другой, но либо неправильно настроил, либо это не помогло. Я почти уверен, что есть какая-то легкая уловка, чтобы заставить это работать, но я еще не нашел это. Спасибо за помощь!
ОБНОВИТЬ
Я пытался поставить запросы на вход в систему , раскомментировав запросы строк requests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.log
в файле /etc/freeradius/radiusd.conf
, Однако это вызывает ошибку, и freeradius не запускается вообще. Запускается режим отладки, но он ничего не записывает в файл radius.log.
sudo freeradius
radiusd: Error: Failed to parse log{} section.
Кажется, что регистрация запросов не работает с версии 3.0.9. Источник: github.com/FreeRADIUS/freeradius-server/issues/1131