FreeRADIUS 3.0.11 игнорирует Access-Request от одного интерфейса NIC

897
Eastman

Я установил 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 = $/radiusd-%{%:-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

0
Вы проверили журналы главного сервера, чтобы убедиться, что сервер видит входящий пакет с распознанным адресом источника? Arran Cudbard-Bell 8 лет назад 0
Что вы подразумеваете под "журналами основного сервера"? Eastman 8 лет назад 0
Основной журнал демона RADIUS. Как настроено в `` / etc / raddb / radiusd.conf`` Arran Cudbard-Bell 7 лет назад 0
FreeRADIUS может иметь N разных мест назначения журнала, но глобальные события сервера всегда идут в основной журнал. Arran Cudbard-Bell 7 лет назад 0
@ Eastman, пожалуйста, опубликуйте свое решение как ответ. Вы можете (и должны) ответить на свой вопрос. VL-80 7 лет назад 0
Хорошо, я отправил решение в качестве ответа. Почему-то я вспомнил, что не следует отвечать на свои вопросы. @ ArranCudbard-Bell, спасибо за попытку помочь. Eastman 7 лет назад 0

1 ответ на вопрос

0
Eastman

Я решил проблему. Мне также пришлось добавить шлюз в другой сетевой адаптер.

Вот мой исходный /etc/network/interfacesфайл:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).  source /etc/network/interfaces.d/*  # The loopback network interface auto lo iface lo inet loopback  # The primary network interface # This is an autoconfigured IPv6 interface #auto ens160 #iface ens160 inet6 auto  # ESXi NIC admin network auto ens160 iface ens160 inet static address 192.168.1.144 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.3 192.168.1.2  # ESXi NIC DMZ auto ens192 iface ens192 inet static address 192.168.34.2 netmask 255.255.255.0 

Я добавил вторую таблицу маршрутизации (добавлена ​​последняя строка):

sudo vim /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 1 rt2 

Настроил новую таблицу маршрутизации:

sudo ip route add 192.168.34.0/24 dev ens192 src 192.168.34.2 table rt2 sudo ip route add default via 192.168.34.1 dev ens192 table rt2 

Добавлены правила маршрутизации:

sudo ip rule add from 192.168.34.2/32 table rt2 sudo ip rule add to 192.168.34.2/32 table rt2 

Проверено, что конфигурация работает и сделал ее постоянной, изменив /etc/network/interfacesфайл:

iface ens192 inet static address 192.168.34.2 netmask 255.255.255.0 post-up ip route add 192.168.34.0/24 dev ens192 src 192.168.34.2 table rt2 post-up ip route add default via 192.168.34.1 dev ens192 table rt2 post-up ip rule add from 192.168.34.2/32 table rt2 post-up ip rule add to 192.168.34.2/32 table rt2 

Источник решения: https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

IPTABLES

И чтобы поддерживать переадресацию портов, я добавил исходящий интерфейс к правилам iptables (-o ens192 добавлен):

-A POSTROUTING -d 192.168.34.1/32 -o ens192 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.34.2 -A POSTROUTING -d 192.168.34.1/32 -o ens192 -p tcp -m tcp --dport 443 -j SNAT --to-source 192.168.34.2