iptables简单应用


可以修改/etc/rc.d/boot.local让规则重启后也能生效,如:
/sbin/iptables -F
/sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -j DROP
/sbin/iptables -A INPUT -i eth0 -p udp -j DROP


iptables是一个链的方式从前往后判断,如果前面的规则成立就不会往后继续,所以要注意顺序,一般每行对应一条规则。
-A是Append意思,也就是追加
-I是Insert意思,也就是插入


-F表示清除(即删除)掉已有规则,也就是清空。
查看已有的规则,执行命令:iptables -L -n
如(参数-L为list意思,-n表示以数字方式显示IP和端口,不指定-n则显示为名称,如:http即80端口):
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
DROP       udp  --  0.0.0.0/0            0.0.0.0/0           


Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         


Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 


从可以看到:iptables有三种规则链(Chain),即INPUT、OUTPUT和FORWARD。
INPUT 用于指定输入规则,比如外部是可以访问本机的80端口
OUTPUT 用于指定输出规则,比如本机是否可以访问外部的80端口
FORWARD 用于指定端口转发规则,比如将8080端口的数据转到到80端口


-I和-A需要指定链(Chain)名,其中-I的链名后还需要指定第几条(行)规则。
可通过-D参数删除规则,有两种删除方式,一是匹配模式,二是指定第几条(行)。
也可以通过-R参数修改已有规则,另外-L参数后也可以跟链(Chain)名,表示只列出指定链的所有规则。
-j参数后跟的是动作,即满足规则时执行的操作,可以为ACCEPT、DROP、REJECT和REDIRECT等。


在iptables的INPUT链的第一行插入一条规则(可访问其它机器的80端口):
iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


在iptables的INPUT链尾追加一条规则(可访问其它机器的80端口):
iptables -A INPUT -p tcp --sport 80 -j ACCEPT


如果要让其它机器可以访问本机的80端口,则为:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT


插入前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
DROP       udp  --  0.0.0.0/0            0.0.0.0/0  


插入:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


插入后:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
DROP       udp  --  0.0.0.0/0            0.0.0.0/0  


追加前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
DROP       udp  --  0.0.0.0/0            0.0.0.0/0 


追加:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT


追加后(ACCEPT将不能生效):
# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           
DROP       udp  --  0.0.0.0/0            0.0.0.0/0 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp spt:80

示例1:允许指定 IP 访问指定端口(IP 白名单

# 允许 IP 访问本地的端口 PORT

iptables -A INPUT -s IP -p tcp --dport PORT -j ACCEPT

示例2:禁止所有对端口 PORT 的访问(如同示例1一块使用,则需在示例1之后)

# 禁止外部访问本地的端口 PORT

iptables -A INPUT -s  0.0.0.0/0 -p tcp --dport PORT -j DROP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值