atomical
10.03.13, 21:58
Hallo,
ich möchte aus einem Subnetz (192.168.5.0/24) beispielhaft nur HTTP und HTTPS ins Internet erlauben sowie DNS auf den lokalen Rechner, außerdem soll jeglicher Datenverkehr in das zweite Subnetz (192.168.100.0/24) unterbunden werden
folgende Anweisungen führen zum Ziel:
# alles verbieten was nicht explizit erlaubt ist
iptables -I PREROUTING -t mangle -s 192.168.5.0/24 -d 0.0.0.0/0 -j DROP
# Portalseite Chilli-Spot
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 192.168.5.1 --dport 3990 -j ACCEPT
# DNS
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 192.168.5.1 --dport 53 -j ACCEPT
iptables -I PREROUTING -t mangle -p udp -s 192.168.5.0/24 -d 192.168.5.1 --dport 53 -j ACCEPT
# erlaubte Dienste
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 0.0.0.0/0 --dport 80 -j ACCEPT
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 0.0.0.0/0 --dport 443 -j ACCEPT
# nachfolgendes privates Subnetz sperren - REJECT nicht in mangle anwendbar
iptables -I PREROUTING -t mangle -s 192.168.5.0/24 -d 192.168.100.0/24 -j DROP
Wenn ich mir das Ergebnis anschaue, sehe ich folgendes:
iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DROP all -- 192.168.5.0/24 192.168.100.0/24
ACCEPT tcp -- 192.168.5.0/24 anywhere tcp dpt:https
ACCEPT tcp -- 192.168.5.0/24 anywhere tcp dpt:http
ACCEPT udp -- 192.168.5.0/24 hotspot.example.org udp dpt:domain
ACCEPT tcp -- 192.168.5.0/24 hotspot.example.org tcp dpt:domain
ACCEPT tcp -- 192.168.5.0/24 hotspot.example.org tcp dpt:3990
DROP all -- 192.168.5.0/24 anywhere
Nun meine Fragen:
Das die Regeln logisch anders herum ausgegeben und auch genau so angewendet werden ist generell bei IPTables so?
Ist mein Ansatz das im PREROUTING zu machen ok?
In den anderen Chains ist die Hotspot-Software aktiv - und das zugehörige Skript wollte ich nur ungern verändern. Das DROP nicht besonders "nett" ist habe ich gelesen, REJECT funktioniert hier aber leider nicht.
DHCP funktioniert trotzdem - weil ich nach der IP filtere und nicht nach dem Interface - richtig?
Gibt es weitere konstruktive Kritik oder Hinweise?
ich möchte aus einem Subnetz (192.168.5.0/24) beispielhaft nur HTTP und HTTPS ins Internet erlauben sowie DNS auf den lokalen Rechner, außerdem soll jeglicher Datenverkehr in das zweite Subnetz (192.168.100.0/24) unterbunden werden
folgende Anweisungen führen zum Ziel:
# alles verbieten was nicht explizit erlaubt ist
iptables -I PREROUTING -t mangle -s 192.168.5.0/24 -d 0.0.0.0/0 -j DROP
# Portalseite Chilli-Spot
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 192.168.5.1 --dport 3990 -j ACCEPT
# DNS
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 192.168.5.1 --dport 53 -j ACCEPT
iptables -I PREROUTING -t mangle -p udp -s 192.168.5.0/24 -d 192.168.5.1 --dport 53 -j ACCEPT
# erlaubte Dienste
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 0.0.0.0/0 --dport 80 -j ACCEPT
iptables -I PREROUTING -t mangle -p tcp -s 192.168.5.0/24 -d 0.0.0.0/0 --dport 443 -j ACCEPT
# nachfolgendes privates Subnetz sperren - REJECT nicht in mangle anwendbar
iptables -I PREROUTING -t mangle -s 192.168.5.0/24 -d 192.168.100.0/24 -j DROP
Wenn ich mir das Ergebnis anschaue, sehe ich folgendes:
iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DROP all -- 192.168.5.0/24 192.168.100.0/24
ACCEPT tcp -- 192.168.5.0/24 anywhere tcp dpt:https
ACCEPT tcp -- 192.168.5.0/24 anywhere tcp dpt:http
ACCEPT udp -- 192.168.5.0/24 hotspot.example.org udp dpt:domain
ACCEPT tcp -- 192.168.5.0/24 hotspot.example.org tcp dpt:domain
ACCEPT tcp -- 192.168.5.0/24 hotspot.example.org tcp dpt:3990
DROP all -- 192.168.5.0/24 anywhere
Nun meine Fragen:
Das die Regeln logisch anders herum ausgegeben und auch genau so angewendet werden ist generell bei IPTables so?
Ist mein Ansatz das im PREROUTING zu machen ok?
In den anderen Chains ist die Hotspot-Software aktiv - und das zugehörige Skript wollte ich nur ungern verändern. Das DROP nicht besonders "nett" ist habe ich gelesen, REJECT funktioniert hier aber leider nicht.
DHCP funktioniert trotzdem - weil ich nach der IP filtere und nicht nach dem Interface - richtig?
Gibt es weitere konstruktive Kritik oder Hinweise?