Ich habe FreeRADIUS 3.0.11 auf Ubuntu Server 16.04 installiert. Der Ubuntu-Server läuft auf einer virtuellen ESXi-Maschine. Die virtuelle Maschine verfügt über zwei Netzwerkkarten. Eine ist für die Verbindung mit einem Admin-Netzwerk, die andere für das Kunden-LAN. Ich verwende auch eine virtuelle PfSense-Maschine als Firewall zwischen LAN und Ubuntu-Server.
Das Problem ist, dass der FreeRADIUS-Server beim Testen über das Admin-Netzwerk radtest test 1234 192.168.1.144 1812 testing123
die Meldung und Antwort ordnungsgemäß erkennt. Beim Testen über das LAN erhält der FreeRADIUS-Server die Zugriffsanforderung überhaupt nicht. Ich verwende den Server im Debugging-Modus freeradius -X
.
Die IPs sind:
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
Ich habe mit tcpdump überprüft, ob der Ubuntu-Server die Access-Request-Pakete empfängt. Die IP 192.168.33.50 ist die IP eines Laptops.
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
Ich verwende iptables, um HTTP und HTTPS an die virtuelle PfSense-Maschine weiterzuleiten, damit ich sie über das Admin-Netzwerk konfigurieren kann.
# 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
Ich habe überprüft, ob FreeRADIUS Port 1812 überwacht.
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 :::*
Ich habe versucht, den Port 1812 von der Schnittstelle auf eine andere weiterzuleiten, aber entweder habe ich ihn falsch konfiguriert oder es hat nicht geholfen. Ich bin mir ziemlich sicher, dass es einen einfachen Trick gibt, um dies zum Laufen zu bringen, aber ich habe ihn noch nicht gefunden. Danke für deine Hilfe!
AKTUALISIEREN
Ich habe versucht, die Protokollierung von Anfragen zu aktivieren, indem ich die Zeile requests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.log
in der Datei auskommentiere /etc/freeradius/radiusd.conf
. Dies löst jedoch einen Fehler aus und freeradius startet überhaupt nicht. Der Debugging-Modus wird gestartet, es wird jedoch nichts in die Datei radius.log geschrieben.
sudo freeradius
radiusd: Error: Failed to parse log{} section.
Es scheint, dass die Anforderungsprotokollierung seit Version 3.0.9 nicht mehr funktioniert. Quelle: github.com/FreeRADIUS/freeradius-server/issues/1131
/etc/raddb/radiusd.conf
Antworten:
Ich habe das Problem gelöst. Ich musste dem anderen NIC auch ein Gateway hinzufügen.
Hier ist meine erste
/etc/network/interfaces
Datei:Ich habe eine zweite Routing-Tabelle hinzugefügt (die letzte Zeile wird hinzugefügt):
Konfiguriert die neue Routing-Tabelle:
Routing-Regeln hinzugefügt:
Getestet, dass die Konfiguration funktioniert, und durch Ändern der
/etc/network/interfaces
Datei dauerhaft gemacht :Die Quelle für die Lösung: https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
IPTABLES
Und um meine Portweiterleitung am Laufen zu halten, musste ich den iptables-Regeln eine ausgehende Schnittstelle hinzufügen (-o ens192 hinzugefügt):
quelle