最近由于项目需要,需要打开防火墙功能.
公司有
arm linux 3.0
x86 linux 3.2
x86 linux 2.4
的三个嵌入式.都需要打开防火墙功能.
执行“whereis iptables”命令,如果结果不为空,则说明防火墙软件已安装
# whereis iptablesiptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gzroot@wheezy-armel:~ 9:26:57
输入iptables -L 命令查看配置
# iptables -LChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination root@wheezy-armel:~ 9:27:32 #
此处为空表示 没有配置防火墙.
此处可参考:
#知识:
# http://blog.chinaunix.net/uid-9950859-id-98279.html
# http://blog.slogra.com/post-232.html
# http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html
# http://blog.chinaunix.net/uid-26495963-id-3279216.html
保存本文件,然后把本规则加载,使之生效,注意,iptables不需要重启,加载一次规则就成了
sudo iptables-restore < /etc/iptables.test.rules
然后再查看最新的配置,应该所有的设置都生效了.
sudo iptables -L
第四步:保存生效的配置,让系统重启的时候自动加载有效配置
iptables提供了保存当前运行的规则功能
iptables-save > /etc/iptables.up.rules
结果执行时报错.
# iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7iptables: No chain/target/match by that name.
网上搜索是缺少内核模块
root@wheezy-armel:~ 9:30:27 # lsmod |grep iptablesroot@wheezy-armel:~ 9:31:04 #
是没有输出的.
root@wheezy-armel:~ 9:31:04 # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables: No chain/target/match by that name.
后面发现是 有了-m state RELATED,ESTABLISHED 之类的就报错.
就是对tcp 的连接状态:
NEW
ESTABLISHED
RELATED
INVALID
貌似都不能处理 .
iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP 当然你如果想拒绝的更彻底: iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT
如果用DROP可以成功,用REJECT会报错.
最后改成了:
常用的ACTION: DROP:悄悄丢弃 一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表 REJECT:明示拒绝 ACCEPT:接受 custom_chain:转向一个自定义的链 DNAT SNAT MASQUERADE:源地址伪装 REDIRECT:重定向:主要用于实现端口重定向 MARK:打防火墙标记的 RETURN:返回 在自定义链执行完毕后使用返回,来返回原规则链。
简单说就是只能用低级功能,不能用高级功能.
最后修改后的命令文件是
# Generated by iptables-save v1.4.14 on Tue May 6 14:54:02 2014#知识:# http://blog.chinaunix.net/uid-9950859-id-98279.html# http://blog.slogra.com/post-232.html# http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html# http://blog.chinaunix.net/uid-26495963-id-3279216.html#1.PREROUTING (路由前)#2.INPUT (数据包流入口)##3.FORWARD (转发管卡)#4.OUTPUT(数据包出口)#5.POSTROUTING(路由后)*filter:INPUT ACCEPT [1:40]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]#允许本地回环接口(即运行本机访问本机)#-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT#允许本地回环接口(即运行本机访问本机)-A INPUT -i lo -j ACCEPT#允许所有本机向外的访问-A OUTPUT -j ACCEPT# arm linux 3.0不可用...#-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable#-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT# Allows xxxx port 允许访问 xxxx的端口#xxx或xxx可能有多个端口,请在这儿添加.#这儿是tcp-A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT#这儿是udp#-A INPUT -p udp -m udp --dport 1234 -j ACCEPT# Allows Mysql port 允许访问 mysql 的端口#-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT-A INPUT -p tcp --dport 3306 -j ACCEPT# Allows SSH port #***如果不允许这个,你就先去一边哭会吧.#***如果不允许这个,你就先去一边哭会吧.-A INPUT -p tcp --dport 22 -j ACCEPT#-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT# 允许 ping 这个和禁用ping ,2选1.-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#禁用ping#-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP#记录日志功能,arm linux 3.0不可用...#-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7# arm linux 3.0不可用...#-A INPUT -j REJECT --reject-with icmp-port-unreachable# arm linux 3.0不可用...#-A FORWARD -j REJECT --reject-with icmp-port-unreachable#拒绝 未定义规则.(注意:如果22端口未加入允许规则,SSH链接会直接断开。) REJECT-A INPUT -j DROP -A FORWARD -j DROP COMMIT# Completed on Tue May 6 14:54:02 2014# Generated by iptables-save v1.4.14 on Tue May 6 14:54:09 2014
原标题:arm,iptables: No chain/target/match by that name.
关键词:ip