Ek probeer 'n dd-wrt-roeteerder opstel om as 'n subnetwerk te dien vir sommige pasgemaakte arduino-toestelle.

Die idee is dat die routers LAN/WIFI oop is vir die arduino-toestelle en dat verkeer slegs die WAN-poort na die maatskappy se LAN laat verlaat as dit vir die beherende bediener is.

Ek het probeer om die volgende reëls toe te pas:

echo "allow all router connections"
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

echo "allow all ping"
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT  -p icmp -m state --state ESTABLISHED,RELATED     -j ACCEPT

echo "allow all ntp (time)"
iptables -A OUTPUT -p udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp --sport 123 -m state --state ESTABLISHED     -j ACCEPT

echo "allow dns"
iptables -A OUTPUT -p udp -d 10.80.91.2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp -s 10.80.91.2 --sport 53 -m state --state ESTABLISHED     -j ACCEPT
iptables -A OUTPUT -p tcp -d 10.80.91.2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -s 10.80.91.2 --sport 53 -m state --state ESTABLISHED     -j ACCEPT

echo "allow webserver"
iptables -A OUTPUT -p tcp -d 10.80.91.2 --dport 80  -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -s 10.80.91.2 --sport 80  -m state --state ESTABLISHED     -j ACCEPT

echo "drop everything else"
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

Ongelukkig, elke keer as ek "iptables -A INPUT -j DROP" bereik, verloor ek my telnetverbinding met die router soos al die reëls wat ek voorheen gestel het waar dit geïgnoreer word.

Dit is die eerste keer dat ek iptables gebruik en al die inligting wat ek aanlyn sien blyk te wees dat ek dit korrek doen.

Die router is 'n Linksys E2000 met DD-WRT v24-sp2 (08/12/10) std-usb-ftp (SVN hersiening 14929).

answer

Jy het nie reeds toegelaat vir gevestigde verbindings van die tipe wat jy in die verbinding gebruik nie. Dit is hoekom wanneer jy die laaste reël byvoeg, word die verbinding verbreek.

Jy wil 'n reël soos hierdie hê:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Dit sê dat die firewall verbindings moet toelaat wat reeds gemaak is en werk. (dws het al die ander reëls in die firewall geslaag.)

Met dit gesê, sal jy ook 'n reël nodig hê om toe te laat dat ssh inkom, soos:

-A INPUT -s <source> -p tcp -m state --state NEW -m tcp --dport ssh -j ACCEPT

Dit vertel die firewall om ssh-verbindings te laat begin .

Hoop dit help.

NS Ek sal moet kyk, maar die "-P" lyne (laaste drie) moet jy nie gebruik nie, want ek dink hulle spoel die tabelle. Maar ek sal dit weer moet kontroleer.