iptables命令及封IP
命令:
iptables [ -t 表名] 命令选项 [链名] [条件匹配] [-j 处理动作或跳转]
ACCEPT: 允许数据包通过。
DROP : 直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。
REJECT: 拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
SNAT : 源地址转换,解决内网用户用同一个公网地址上网的问题。
MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。
DNAT : 目标地址转换。
REDIRECT:在本机做端口映射。
LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配
一般不使用REJECT(拒绝)行为.REJECT会带来安全隐患
规则表:
1. filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
1. nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
1. Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
1. Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
(这个是REHL4没有的,不过不用怕,用的不多)
规则链:
1. INPUT——进来的数据包应用此规则链中的策略
1. OUTPUT——外出的数据包应用此规则链中的策略
1. FORWARD——转发数据包时应用此规则链中的策略
1. PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
1. POSTROUTING——对数据包作路由选择后应用此链中的规则
(所有的数据包出来的时侯都先由这个链处理)
一、封单个IP
1、封锁单个ip: iptables -I INPUT -s IP -j DROP #-I 指插入表第一列 [root@node1 ~]# iptables -I INPUT -s 192.168.1.11 -j DROP [root@node1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 192.168.1.11 anywhere
2、解封单个ip:iptables -D INPUT -s IP -d IP -j ACCEPT
[root@node1 ~]# iptables -D INPUT -s 192.168.1.11 -j DROP # 解封IP: 192.168.1.11 #-D 删除 [root@node1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination
二、封IP段
1、封IP段: 从123.0.0.1到123.255.255.254的命令 [root@node1 ~]# iptables -I INPUT -s 123.0.0.0/8 -j DROP [root@node1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 123.0.0.0/8 anywhere 2、封IP段: 从123.45.0.1到123.45.255.254的命令 [root@node1 ~]# iptables -I INPUT -s 123.45.0.0/16 -j DROP [root@node1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 123.45.0.0/16 anywhere DROP all -- 123.0.0.0/8 anywhere 3、封IP段:从123.45.6.1到123.45.6.254的命令是 [root@node1 ~]# iptables -I INPUT -s 123.45.6.0/24 -j DROP [root@node1 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 123.45.6.0/24 anywhere DROP all -- 123.45.0.0/16 anywhere DROP all -- 123.0.0.0/8 anywhere
三、全部清理
[root@node1 ~]# iptables -F
四、查询
[root@node1 ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target prot opt source destination