Ich habe einen Host, der als Gateway für die Weiterleitung eines Heimnetzwerks zum Internet fungiert. IP-Masquerading ist seit Monaten aktiviert und das System hat einwandfrei funktioniert.
Wie konfiguriere ich es so, dass es auch als Firewall fungiert? Irgendwelche Bedingungen, die ich in den Verkehr gebracht habe FORWARD
Kette funktioniert einfach nicht.
Zum Beispiel
-A FORWARD -i eth1 -p tcp -j ACCEPT
Lässt einfach den gesamten TCP-Verkehr vom Routing ab, anstatt ihn auf den Verkehr zu beschränken, der von eth1 stammt. Ebenfalls...
-A FORWARD -s 192.168.2.0/24 -p tcp -j ACCEPT
... lässt nicht nur TCP-Verkehr aus dem 192.168.2.0-Subnetz zu, sobald ich die Regel anwende, stoppt der gesamte TCP-Verkehr das Routing.
Ich konnte keine eindeutige Dokumentation zum Packet Mangling mit Masquerade finden oder darüber, wie man Masquerade unterbindet und stattdessen SNAT verwendet.
eth0
ist eine externe Schnittstelle im selben Subnetz wie der DSL-Routereth1
ist eine interne Schnittstelle, über die alle meine Hosts problemlos mit DHCP arbeiten
Wie konfiguriere ich iptables für IP-Masquerading und Firewalling?
# Generated by iptables-save v1.4.21 on Thu Oct 29 12:48:19 2015
*nat
:PREROUTING ACCEPT [10859:2328892]
:INPUT ACCEPT [1002:126271]
:OUTPUT ACCEPT [1256:91484]
:POSTROUTING ACCEPT [638:43890]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Oct 29 12:48:19 2015
# Generated by iptables-save v1.4.21 on Thu Oct 29 12:48:19 2015
*filter
:INPUT ACCEPT [5:803]
:FORWARD ACCEPT [127:18532]
:OUTPUT ACCEPT [5:431]
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT -m comment --comment "HTTP Serve eth1"
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT -m comment --comment "SSH Serve eth1"
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT -m comment --comment "ssh on eth1"
-A INPUT -i eth0 -p tcp -m tcp --dport 53 -j DROP -m comment --comment "drop dns from eth0"
-A INPUT -p icmp -j ACCEPT
-A INPUT -i eth0 -j DROP
-A INPUT -i eth1 -j REJECT
-P INPUT DROP
-A FORWARD -p tcp -j ACCEPT -m comment --comment "all tcp from internal"
-A FORWARD -p udp -j ACCEPT -m comment --comment "all udp from internal"
-A FORWARD -p icmp -j ACCEPT
-P FORWARD DROP
-A OUTPUT -o eth1 -p tcp -m tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-P OUTPUT DROP
COMMIT
# Completed on Thu Oct 29 12:48:19 2015
SNAT
funktioniert nicht, verwenden Sie wahrscheinlich die falsche Quelladresse.
iptables-save
mit Ihren gewünschten Regeln sowie einer verbalen Beschreibung von ihnen.