| Linux/UNIX Linuxverfechter finden hier Weggefährten. |
Diskussion: iptables: Zugriff auf mehrere Netze verhindern im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hi, ich habe folgende Situation: Ein Netzwerk (N1), das hinter einem Debian Router steht, soll _nur_ ins Internet kommen. ...
![]() |
| | #1 (permalink) |
| Senior Member Registriert seit: 26.03.06 ![]() Likes: 16 | Anzeige Hi, ich habe folgende Situation: Ein Netzwerk (N1), das hinter einem Debian Router steht, soll _nur_ ins Internet kommen. Zwischen dem Internet und diesem Netzwerk befindet sich ein weiteres Netz (N2). An diesem Netz wiederrum sind per VPN weitere Netzwerke (N3) drangehängt. Nun möchte ich verhindern, dass das man aus N1 ins N2 oder irgendein N3 kommt. Momentan sieht meine Firewall so aus: Code: #!/bin/bash ################################### # SETUP ################################### modprobe ip_conntrack echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv4/ip_dynaddr echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter echo 61 > /proc/sys/net/ipv4/ip_default_ttl echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout echo 3 > /proc/sys/net/ipv4/tcp_syn_retries echo 3 > /proc/sys/net/ipv4/tcp_synack_retries ################################### # CLEAR ALL AND SET DEFAULTS ################################### iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -F iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP ################################### # ALLOW ALL TRAFFIC ON LOOPBACK ################################### iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT ################################### # EXCEPTIONS TO THE INPUT POLICY ################################### # allow all input through the eth0 device iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT # allow dns through eth1 iptables -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT ################################### # EXCEPTIONS TO THE FORWARD POLICY ################################### iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p icmp -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p icmp -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth1 -o eth0 ! -d 192.168.0.0/24 -p icmp -j ACCEPT Zugriff gewähre, wenn das Zielnetz nicht ein bestimmtes ist. Wenn ich jetzt für weitere Netzwerke dieselbe Zeile setze, matcht ja trotzdem die obige Zeile zuerst. Somit hat was folgt keine Auswirkungen. Wie macht man sowas denn? ciao serow |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | iptables erlaubt es dir neben den builtin chains (wie z.B. FORWARD oder INPUT) auch selbst chains zu erstellen ... iptables -N <name> diese chains funktionieren bis auf ein paar ausnahmen so wie die builtin chains ... sie fangen oben bei regel 1 mit der verarbeitung an, und laufen nach unten alle regeln durch, bis eine passt, oder das ende erreicht wurde... am ende gibts allerdings keine default policy die über das schicksal des pakets entscheidet, sondern man kehrt dahin zurück von wo die chain aufgerufen wurde ... wenn du nun also deine FORWARD chain um etwas erweitern willst, das mehrere ausschluskriterien hat, wie in deinem beispiel die verbotenen netze, dann könntest du für dieses scenario eine entsprechende chain anlegen... -N UserDefinedChain1 -A UserDefinedChain1 -d 192.168.0.0/24 -j RETURN -A UserDefinedChain1 -d 192.168.1.0/24 -j RETURN -A UserDefinedChain1 -j ACCEPT -I FORWARD -i eth1 -o eth0 -p icmp -j UserDefinedChain1 alles an ICMP traffic was von eth1 nach eth0 soll wird die regel der FORWARD chain erfüllen, und folglich an UserDefinedChain1 weitergereicht ... trifft dort ein ausschlusskriterium zu, gehts zurück in die FORWARD chain ... trifft kein ausschlusskriterium zu, wirds angenommen alles was mit RETURN zurück gekommen ist, wird an die nächste regel der FORWARD chain weitergereicht
__________________ Code: :(){ :|:& };: |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |