Raspbian-Router/Firewall

Raspbian-Router/Firewall

Hallo liebe Superuser,

Hier ist die Topologie meines LAN. WAN-Modem-Router-Firewall-Pi-Router-Firewall-LAN-Maschinen.

Ich benutze im LAN eine Testmaschine: Bob.

Ich kann nicht auf die Internetseiten von Bob zugreifen und erhalte die Meldung „Zielhost nicht erreichbar“.

Hier sind meine Routen:

Routen auf Bob (anonymisiert):

Standardmäßig überpi-router-iface-inner-lan-eth0Entwickler eth0 QuelleBob-IPmetrisch 202

inner-lan/24 dev eth0 proto dhcp Bereich Link srcBob-IPmetrisch 202

lan-beyond-pi-router (Modem + pi-iface-eth1)/24 überpi-router-inner-lan-iface-eth0Entwickler eth0

Routen auf dem Pi-Router:

Standardmäßig überpi-router-inner-iface-eth0Entwickler eth0 Quellepi-router-inner-iface-eth0metrisch 202

Standardmäßig überpi-router-outer-iface-eth1Entwickler eth1 srcpi-router-outer-iface-eth1metrisch 203

inner-lan/24 dev eth0 proto dhcp Bereich Link srcpi-router-inner-iface-eth0metrisch 202

LAN-Beyond-Pi-Router/24 dev eth1 proto dhcp Bereich Link srcpi-router-outer-iface-eth1metrisch 203

Ich verwende ufw für Filter und nat. Das ist meine eigene Idee, ich bin mir nicht ganz sicher: Da ich auf dem Modem keine Via-Route konfigurieren kann, habe ich NAT auf der „externen“ (eth1) Schnittstelle des Pi-Routers aktiviert (Schnittstelle auf der Modemseite). Hier ist meine ufw-Konfiguration:

'#

'# Regeln.vor

'#

'# Regeln, die ausgeführt werden sollen, bevor die ufw-Befehlszeile Regeln hinzufügt. Benutzerdefiniert

'# Regeln sollten zu einer dieser Ketten hinzugefügt werden:

'# ufw-vor-Eingabe

'# ufw-vor-Ausgabe

'# ufw-vor-weiter

'#

'# nat Tabellenregeln

*nat

:POSTROUTING AKZEPTIEREN - [0:0]

'# Leite den Verkehr von eth0 über eth1 weiter

-A POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE

'#persönliche Ergänzung, bin mir nicht sicher

-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

'# Löschen Sie die Zeile 'COMMIT' nicht, sonst werden diese NAT-Tabellenregeln nicht verarbeitet

BEGEHEN

'# Löschen Sie diese erforderlichen Zeilen nicht, sonst treten Fehler auf

*Filter

:ufw-vor-Eingabe - [0:0]

:ufw-vor-Ausgabe - [0:0]

:ufw-vorwärts - [0:0]

:ufw-nicht-lokal - [0:0]

'# Beenden Sie die erforderlichen Zeilen

'# alles beim Loopback zulassen

-A ufw-vor-Eingabe -i lo -j AKZEPTIEREN

-A ufw-before-output -o lo -j AKZEPTIEREN

'# Pakete schnell verarbeiten, für die wir bereits eine Verbindung haben

-A ufw-before-input -m conntrack --ctstate VERWANDTE, ETABLIERTE -j AKZEPTIEREN

-A ufw-before-output -m conntrack --ctstate VERWANDTE, ETABLIERTE -j AKZEPTIEREN

-A ufw-before-forward -m conntrack --ctstate VERWANDTE, ETABLIERTE -j AKZEPTIEREN

'# UNGÜLTIGE Pakete verwerfen (protokolliert diese im Loglevel Medium und höher)

-A ufw-before-input -m conntrack --ctstate UNZULÄSSIG -j ufw-logging-deny

-A ufw-before-input -m conntrack --ctstate UNZULÄSSIG -j DROP

'# ok ICMP-Codes für INPUT

-A ufw-before-input -p icmp --icmp-type Ziel nicht erreichbar -j AKZEPTIEREN

-A ufw-before-input -p icmp --icmp-type Zeit überschritten -j AKZEPTIEREN

-A ufw-before-input -p icmp --icmp-type Parameterproblem -j AKZEPTIEREN

-A ufw-before-input -p icmp --icmp-type echo-request -j AKZEPTIEREN

'# ok ICMP-Code für FORWARD -A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type Zeit überschritten -j AKZEPTIEREN

-A ufw-before-forward -p icmp --icmp-type Parameterproblem -j AKZEPTIEREN

-A ufw-before-forward -p icmp --icmp-type echo-request -j AKZEPTIEREN

'# DHCP-Client funktionieren lassen

-A ufw-before-input -p udp --sport 67 --dport 68 -j AKZEPTIEREN

'#

'# ufw-nicht-lokal

'#

-A ufw-vor-Eingabe -j ufw-nicht-lokal

'# wenn LOKAL, RÜCKGABE

-A ufw-nicht-lokal -m Adresstyp --Zieltyp LOKAL -j RÜCKGABE

'# wenn MULTICAST, RETURN

-A ufw-nicht-lokal -m Adresstyp --Zieltyp MULTICAST -j RETURN

'# wenn BROADCAST, RÜCKGABE

-A ufw-nicht-lokal -m Adresstyp --Zieltyp BROADCAST -j RETURN

'# alle anderen nicht lokalen Pakete werden verworfen

-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny

-A ufw-nicht-lokal -j DROP

'# MULTICAST mDNS für die Diensterkennung zulassen (achten Sie darauf, dass die MULTICAST-Zeile oben

'# ist nicht kommentiert) -A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT

'# MULTICAST UPnP für die Diensterkennung zulassen (achten Sie darauf, dass die MULTICAST-Zeile oben

'# ist nicht kommentiert)

-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j AKZEPTIEREN

BEGEHEN


Jetzt kann ich das Modem von Bob aus anpingen, habe aber keinen richtigen Internetzugang. Internet-DNS funktioniert jedoch.

Wenn ich versuche, eine Verbindung zu einem WAN-Server herzustellen, erhalte ich die Meldung „Zielhost nicht erreichbar“. Ich vermute, dass irgendwo in meiner Konfiguration ein Problem vorliegt oder etwas fehlt.

Vielleicht sollte ich etwas am Modem konfigurieren, das weiß ich jetzt nicht. Aber nein, als ich die Tests durchführte, steckte ich den Pi-Router an einen Switch, wobei beide Ifaces am selben Switch waren. Irgendwann konnte ich auf das Netz zugreifen, alles funktionierte. Nach diesen Tests steckte ich den Pi an seinen endgültigen Standort, neben das Modem. Nun geht die Route von der Maschine Bob zum WAN über einen Switch, zwei CPLs, den Pi-Router und das Modem.

Vielen Dank für deine Einblicke :-)

/cr!?ptal

Antwort1

Ich habe dem Pi-Router eine neue Route hinzugefügt und es funktioniert!

sudo ip add route default überModem-Router-IP/24 Entwickler eth1.

Und:

sudo su

ufw deaktivieren und ufw aktivieren

Um diese benutzerdefinierte Route dauerhaft zu machen, habe ich sie außerdem zu /etc/dhcpcd.exit-hook hinzugefügt.

Mission erfolgreich :-)

verwandte Informationen