PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnisfragen IPTables



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?

FaxMax
11.03.13, 19:06
also ich kenne die Kette PREROUTING nicht...

nur INPUT OUTPUT und FORWARD

zudem kannst du dir den letzten Eintrag sparen wenn du die policy auf drop stellst.

CoolTux
13.03.13, 14:20
Du solltest erstmal die default Policys aud Drop stellen!

atomical
13.03.13, 17:25
Hallo,

Danke für die Antworten.

Ich will nur die Pakete aus diesem Netz "behindern" - wenn ich generell die Policies auf DROP stelle, müsste ich ja alles andere anschließend wieder frei schalten.

FaxMax
13.03.13, 18:19
du kannst die policy für jede chain Einstellen

L00NIX
15.03.13, 14:14
Nun meine Fragen:

Das die Regeln logisch anders herum ausgegeben und auch genau so angewendet werden ist generell bei IPTables so?


Ja, mit -A (append = anhängen = ans Ende) statt -I (insert => am Anfang bzw. mit Index an Position einfügen). Siehe dazu auch die Manpage zu iptables.



Ist mein Ansatz das im PREROUTING zu machen ok?


Nein. Die zuständige Chain bei Routing ist FORWARD. Die Chains PREROUTING und POSTROUTING sind für NAT, was die von dir verwendete Option "-t nat" ja auch besagt.

Die Chains INPUT und OUTPUT beziehen sich auf die Paketrichtung des Firewallhosts selbst. FORWARD bezieht sich auf den Verkehr hindurch (Routing). Damit geroutet wird, muss es eingeschaltet werden:


# echo 1 > /proc/sys/net/ipv4/ip_forward




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.


DROP ist ok, REJECT erzeugt nur unnötigen Traffic.



DHCP funktioniert trotzdem - weil ich nach der IP filtere und nicht nach dem Interface - richtig?


DHCP basiert auf Broadcasts und diese gehen nicht über den Router. Wenn in dem Netzsegment ein DHCP-Server steht, antwortet dieser normalerweise auch.

Gruß
L00NIX