
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 hat zwei Netzwerkkarten. Eine dient zur Verbindung mit einem Administratornetzwerk, 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 wenn ich teste vonAdmin-Netzwerk radtest test 1234 192.168.1.144 1812 testing123
Der FreeRADIUS-Server bemerkt und antwortet ordnungsgemäß, aber wenn ich teste vonLAN, der FreeRADIUS-Server erhält die Zugriffsanforderung überhaupt nicht. Ich verwende den Server im Debugmodus 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 nachgefragt beitcpdumpdass 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 benutzeiptableszum Weiterleiten von HTTP und HTTPS an die virtuelle PfSense-Maschine, damit ich es vom Administratornetzwerk aus 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, dass FreeRADIUS auf Port 1812 lauscht.
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 einer Schnittstelle zu einer anderen weiterzuleiten, aber entweder habe ich ihn falsch konfiguriert oder es hat nicht geholfen. Ich bin ziemlich sicher, dass es einen einfachen Trick gibt, um das zum Laufen zu bringen, aber ich habe ihn noch nicht gefunden. Vielen Dank für Ihre Hilfe!
AKTUALISIEREN
Ich habe versucht,Anforderungsprotokollierungrequests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.log
an, indem Sie die Zeile in der Datei auskommentieren /etc/freeradius/radiusd.conf
. Dies führt jedoch zu einem Fehler und Freeradius startet überhaupt nicht. Der Debugmodus startet, schreibt jedoch nichts in die Datei radius.log.
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
Antwort1
Ich habe das Problem gelöst. Ich musste auch der anderen Netzwerkkarte ein Gateway hinzufügen.
Hier ist meine ursprüngliche /etc/network/interfaces
Datei:
# 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
Ich habe eine zweite Routing-Tabelle hinzugefügt (die letzte Zeile wurde hinzugefügt):
sudo vim /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 rt2
Die neue Routingtabelle wurde konfiguriert:
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
Routing-Regeln hinzugefügt:
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
Habe getestet, ob die Konfiguration funktioniert und sie durch Ändern der Datei dauerhaft gemacht :
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
Die Quelle für die Lösung:https://www.thomas-krenn.com/de/wiki/Zwei_Standard-Gateways_auf_einem_System
IPTABLES
Und um meine Portweiterleitung am Laufen zu halten, muss ich hinzufügenAusgangsschnittstellezu den iptables-Regeln (-o ens192 hinzugefügt):
-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