iptables 操作3个表,各有若干个子链。
mangle表, nat表,filter表。
防火墙使用filter表,也是最常用的一个表,有3个子链:INPUT, OUTPUT, FORWARD.
显示命令:
iptables -L -n -v --line-numbers
Chain INPUT (policy ACCEPT 3002 packets, 138K bytes) num pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 3051 packets, 1606K bytes) num pkts bytes target prot opt in out source destination
清空命令:
iptables -F
创建用户自定义链:
iptables -N
删除用户自定义的链:
iptables -X
规则, 添,改, 删:
Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain [rulenum] rule-specification [options] iptables -D chain rulenum [options]
在INPUT链中添加一个drop规则
iptables -A INPUT -s 74.125.71.103 -j DROP这个时候所有来自74.125.71.103的包都将被丢弃,
所以你从本机去ping的话,也收不到74.125.71.103的响应。
# ping 74.125.71.103
好吧,删除刚才这个拒绝规则
iptables -D INPUT 1现在可以ping通了。
如果添加的是接受规则,那么也是可ping通
iptables -A INPUT -s 74.125.71.103 -j ACCEPT
一个常用的防火墙策略, 入站关闭,转发和输出拒绝iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
-m 表示匹配状态,--state指定匹配哪些状态
禁止外部机器172.16.73.25来连接8000端口
iptables -A INPUT -p tcp -s 172.16.73.25 --dport 8000 -j DROP
禁止请求外部某个网站74.125.71.108iptables -A OUTPUT -p tcp -d 74.125.71.103 -j DROP
打开端口序列7000:7010iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
禁止特定mac地址的访问iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP
参考文献:
http://cloud.csdn.net/a/20120117/310905.html
http://os.51cto.com/art/201103/249398.htm