在dd-wrt路由器上configurationiptables

我试图设置dd-wrt路由器作为一些定制的arduino设备的子网。

这个想法是让路由器LAN / WIFI向Arduino设备开放,并且只允许交换机将WAN端口留给公司LAN(如果是控制服务器的话)。

我试图应用以下规则:

回声“允许所有路由器连接”
 iptables -A INPUT -s 127.0.0.1 -j ACCEPT
 iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

回声“允许所有ping”
 iptables -A OUTPUT -p icmp -m状态 - 状态NEW,ESTABLISHED,RELATED -j ACCEPT
 iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

回声“允许所有ntp(时间)”
 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

回声“允许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

回声“允许networking服务器”
 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

回声“放下一切”
 iptables -A INPUT -j DROP
 iptables -A OUTPUT -j DROP

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

不幸的是,每当我到达“iptables -A INPUT -j DROP”时,我就像我之前设置的所有规则一样忽略了我的telnet连接。

这是我第一次使用iptables和所有在网上看到的信息似乎表明我正确地做。

路由器是Linksys E2000,DD-WRT v24-sp2(08/12/10)std-usb-ftp(SVN版本14929)。

您已经不允许在连接中使用已build立的连接types。 这就是为什么当你添加最后一行时连接断开了。

你会想要这样一行:

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

这就是说,防火墙应该允许已经build立和正在工作的连接。 (即通过防火墙中的所有其他规则。)

这就是说,你还需要一个规则来允许ssh进入,例如:

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

这告诉防火墙允许启动 ssh连接。

希望这可以帮助。

PS我将不得不检查,但“P”线(最后三),你不应该使用,因为我认为他们冲洗桌子。 但是我不得不重新检查一下。