Iptables: filtrera egen trafik
Jo, jag bor på ett studentboende och delar internet med mina grannar, som iofs. inte är så haj på datorer egentligen, men säkra upp lite iaf.
Men jag har valt att separera mitt lokala nät 192.168.3.0/24 och ha ett trådlöst 192.168.9.0/24. Detta sker genom en Linksys WRT54G som är o-bryggad (så eth1 är trådlösa delen, där jag har 192.168.9.1/24)
Jag har aldrig kommit överrens med Iptables. Jag behärskar PF och Cisco ACL's, men Iptables/IPchains får jag aldrig kläm på. Har försökt experimentera ett tag nu, men det slutar bara med att alla kommer åt allt, eller ingen kommer åt någonting (och internet fungerar ej)
Vilket håll går iptables på, alltså ordningen? har det betydelse vilket interface man sätter det på? är INPUT bara för paket mot maskinen och FORWARD det som routas vidare, eller krävs både och?
Skulle iaf. vilja att min dator (med en viss IP/MAC) endast kommer åt mitt 192.168.3.0/24 nät. Samt att mina grannar är tvugna att använda min cachande DNS (dnsmasq på linksysen)
Så här ser det ut nu iaf, men fungerar inte.
#!/bin/sh
IF="eth1"
# defaults
iptables -F INPUT
iptables -F FORWARD
# only allow local DNS
iptables -A FORWARD -i $IF -s 192.168.9.0/24 -p udp -d 192.168.9.1/32 --dport 53 -j ACCEPT
# accept specific host traffic
iptables -A INPUT -i $IF -s 192.168.9.20/32 -d 192.168.3.0/24 -j ACCEPT
iptables -A FORWARD -i $IF -s 192.168.9.20/32 -d 192.168.3.0/24 -j ACCEPT
# block private network
iptables -A INPUT -i $IF -d 192.168.3.0/24 -j DROP
iptables -A FORWARD -i $IF -d 192.168.3.0/24 -j DROP
# accept traffic going to our gateway(s)
iptables -A INPUT -i $IF -s 192.168.9.0/24 -j ACCEPT
iptables -A FORWARD -i $IF -s 192.168.9.0/24 -j ACCEPT
# drop everything else
iptables -A INPUT -i $IF -j DROP
iptables -A FORWARD -i $IF -j DROP
Är helt fel på det men.. ja..