
Ich bin neu bei Linux und iptables
. Ich habe eine Ubuntu Server-Distribution (12.04) auf einem PC, der über 2 Netzwerkschnittstellen ( eth0
und eth1
) verfügt. Ich habe auch 2 Laptops, einer ist an eth0
und der andere an angeschlossen eth1
.
Laptop1 IP-Konfiguration: 172.16.221.120 - 255.255.252.0 Laptop2 IP-Konfiguration: 192.168.222.250 - 255.255.255.0
Ich möchte von Laptop1 aus erfolgreich einen Ping an Laptop2 senden.
Muss ich Regeln erstellen INPUT
? OUTPUT
Oder FORWARD
auch eine Regel?
Ich habe dies ohne Erfolg versucht:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Antwort1
tcpdump
Um herauszufinden, wie weit Ihre Pings kommen, können Sie Folgendes verwenden :
tcpdump -i eth0 -n icmp
tcpdump -i eth1 -n icmp
Des Weiteren genügt es nicht, Pings auf dem Server zuzulassen; die Laptops müssen so konfiguriert werden, dass sie wissen, dass sie den anderen über den Server erreichen können (Routing).
Wahrscheinlich hat Ihre Firewall eine Regel, die Pakete zulässt, die eine Antwort sind. Wenn nicht, dann brauchen Sie auch
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
was ohnehin Sinn macht, da Sie wahrscheinlich beiden Laptops erlauben möchten, den anderen anzupingen. Sie können dies jedoch auf Pings und Pongs beschränken:
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT
Das letzte Problem sind die Laptops selbst: Wenn mindestens einer von ihnen über eine eigene Firewall verfügt, kann diese Pings blockieren (allgemein oder aufgrund der Quelladresse außerhalb des Schnittstellennetzwerks).
Antwort2
Standardmäßig benötigen Sie keine Regeln, da die Netfilter-Ketten leer sind und eine ACCEPT
Standardrichtlinie aufweisen. Wenn Sie bereits Regeln hinzugefügt haben, müssen der Kette Regeln hinzugefügt werden, um den Ping durchzulassen FORWARD
.
Sie müssen den Server außerdem als Router einrichten und sicherstellen, dass jeder Laptop den Server als Standardroute hat (oder zumindest eine Route für das Subnetz des anderen Laptops hat).
Um das Routing (IP-Weiterleitung) zu aktivieren, müssen Sie Folgendes festlegen /proc/sys/net/ipv4/ip_forward
. 1
Ubuntu sollte /etc/sysctl.conf
Folgendes bieten, damit Sie Elemente automatisch einrichten können /proc/sys
:
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
Wenn Sie dies ändern, müssen Sie die Änderungen in den Kernel laden:
sudo sysctl -p /etc/sysctl.conf
Die Änderung wird beim nächsten Start automatisch geladen, sodass Sie diesen Befehl nach der Änderung nur einmal manuell ausführen müssen /etc/sysctl.conf
.