iptables FORWARD und INPUT
Ich habe ein Heimnetzwerk mit Linux-pc ' s, die alle iptables läuft. Ich glaube, es ist einfacher, mein LAN hinter einem Linux gateway/firewall, also ich habe einen pc (mit fedora,keine gui) zwischen meinem router und LAN und konfiguriert iptables. Kein problem, geben Sie hier nur erlaubt, dns, http (und einige lokale Sachen), die Weiterleitung funktioniert: LAN-Verbindung zum internet.
Aber meine Frage ist: macht VORWÄRTS, es allen ermöglicht, von außen, oder nur die ports, die ich konfiguriert mit INPUT? Tun, FORWARD-und INPUT zusammen oder sind Sie getrennt?
Dies ist mein iptables:
*nat
:PREROUTING ACCEPT [16:1336]
:INPUT ACCEPT [14:840]
:OUTPUT ACCEPT [30:2116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o p1p1 -j MASQUERADE
COMMIT
# Completed on Tue Oct 16 09:55:31 2012
# Generated by iptables-save v1.4.14 on Tue Oct 16 09:55:31 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [91:9888]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p UDP --dport 53 -j ACCEPT
-A INPUT -p TCP --dport 53 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp -m multiport --dports 20,21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp -m multiport --dports 20,21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp -m tcp --dport 5000:5100 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp -m tcp --dport 5000:5100 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i p1p1 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i p1p1 -p tcp -m multiport --dports 20,21,443 -j DROP
-A INPUT -i p1p1 -p tcp --dport 5000:5100 -j DROP
-A INPUT -i p1p1 -p icmp -m icmp --icmp-type 8 -j DROP
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A FORWARD -d 192.168.2.0/24 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A OUTPUT -j LOG --log-prefix "denied out: "
COMMIT
p1p1 (.1.x), ist meine externe nic, p3p1 (.2.x) ist im inneren.
InformationsquelleAutor der Frage Ray | 2012-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
RedHat hat eine tolle doc über iptables (ein wenig lang), aber das Thema Abdeckung ist Komplex und es gibt so viele verschiedene Anwendungsfälle, die ich nicht sehen, wie es zu vermeiden.
Hier ist das Kapitel über FORWARD-und NAT-Regeln. Wie heißt es:
Hier ist was passiert:
x.x.x.x:y
(Absender-IP aus dem internet & source port verwendet, der für die Paketübertragung)192.168.1.1:80
(vorausgesetzt, Ihr linux-gateway-IP auf dem externen NIC, dhp1p1
)-j
) der DNAT-Funktion (Destination Network Address Translation), die ändert das Ziel des Paket-headers von der ersten192.168.1.1:80
zu172.31.0.23:80
.172.31.0.23:80
.192.168.1.1:80
) ? Nein, also ich nicht senden es um die EINGANG Kette.filter
KetteFORWARD
), wird das Paket weitergeleitet werden soll, richtig in Ihrer lokalen Apache-HTTP-Server (Beispiel).Hoffe, es wird helfen, um ein bisschen mehr verstehen, wie das interne routing funktioniert mit iptables.
InformationsquelleAutor der Antwort Samuel Phan
INPUT, FORWARD und OUTPUT sind getrennt. Ein Paket traf nur einer der drei Ketten.
Wenn das Ziel ist zu diesem server, es trifft die INPUT-Kette. Wenn seine Quelle ist von diesem server, es hat AUSGANG. Wenn Quell-und Ziel-sind die beiden anderen Maschinen—das wird weitergeleitet durch dem server—dann trifft es die FORWARD-Kette.
InformationsquelleAutor der Antwort John Kugelman