FreeRADIUS 3.0.11 ignora la solicitud de acceso desde una interfaz NIC

FreeRADIUS 3.0.11 ignora la solicitud de acceso desde una interfaz NIC

Instalé FreeRADIUS 3.0.11 en Ubuntu Server 16.04. El servidor Ubuntu se ejecuta en una máquina virtual ESXi. La máquina virtual tiene dos NIC. Uno es para conectarse a una red de administración y el otro es para la LAN del cliente. También estoy usando una máquina virtual PfSense como firewall entre LAN y el servidor Ubuntu.

Una foto de mi red.

El problema es que cuando estoy probando desdered de administración radtest test 1234 192.168.1.144 1812 testing123el servidor FreeRADIUS se da cuenta y responde correctamente, pero cuando estoy probando desdeLAN, el servidor FreeRADIUS no recibe la solicitud de acceso en absoluto. Estoy usando el servidor en modo de depuración freeradius -X.

Las IP son:

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

lo he comprobado contcpdumpque el servidor Ubuntu está recibiendo los paquetes Access-Request. La IP 192.168.33.50 es la IP de una computadora portátil.

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

Estoy usandoiptablespara reenviar HTTP y HTTPS a la máquina virtual PfSense, para poder configurarla desde la red de administración.

# 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

Revisé que FreeRADIUS esté escuchando en el puerto 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                 :::*

Intenté reenviar el puerto 1812 de una interfaz a otra, pero lo configuré mal o no ayudó. Estoy bastante seguro de que existe algún truco sencillo para que esto funcione, pero aún no lo he encontrado. ¡Gracias por su ayuda!

ACTUALIZAR

traté de ponerRegistro de solicitudesencendido descomentando la línea requests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.logen el archivo /etc/freeradius/radiusd.conf. Sin embargo, esto genera un error y freeradius no se inicia en absoluto. El modo de depuración se inicia pero no escribe nada en el archivo radio.log.

sudo freeradius
radiusd: Error: Failed to parse log{} section.

Parece que el registro de solicitudes no funciona desde la versión 3.0.9. Fuente: github.com/FreeRADIUS/freeradius-server/issues/1131

Respuesta1

Resolví el problema. También tuve que agregar una puerta de enlace a la otra NIC.

Aquí está mi /etc/network/interfacesarchivo inicial:

# 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

Agregué una segunda tabla de enrutamiento (se agrega la última línea):

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

Configure la nueva tabla de enrutamiento:

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

Reglas de enrutamiento agregadas:

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

Probé que la configuración funciona y la hice permanente modificando el /etc/network/interfacesarchivo:

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

La fuente de la solución:https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

IPTABLES

Y para mantener en funcionamiento el reenvío de puertos, debo agregarinterfaz salientea las reglas de iptables (-o ens192 agregado):

-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

información relacionada