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:
Ihr seht, dass ich z.B. in
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
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
Ihr seht, dass ich z.B. in
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