iptables基本原理和规则配置

iptables原理图

iptables基本原理和规则配置_第1张图片

 

1.表的作用

Mangle:打个标记,更改ttl值,更改查看tos

Nat:做DNAT、SNAT和端口映射

Filter:通过五元组控制数据包

Conntrack:跳过连接跟踪以及加速数据包到达本地或出去

路由判决:查路由看是转发还是找自己的

优先级顺序:raw > mangle > nat > fiter


2.Iptables查看表

格式:iptables [-t 表名] -A 链名 匹配条件 -j 动作

Iptables -t raw -nvL        查看raw表

Iptables -t mangle -nvL     查看mangle表

Iptables -t nat -nvL        查看nat表

Iptables -t filtes -nvL      查看filtes表


3.表的定义

-t table :4个表(nat filtes raw mangle)

Command: 定义如何对规则进行管理,如添加、更改、删除、插入

Chain: 指定接下来的规则,到底是哪一个链上操作

CRETIRIA: 指定匹配条件


4.链

-p:设置默认策略(设置开或关)

-F:清空链中的规则

   (默认清空filtes表,iptables -t nat -F 清空nat表的所有链)

-Z:清空链及链中默认规则的计算器

-A:追加(后面跟链)

-I:插入

-R:替换

-D:删除


5.通用匹配

-s :源IP

-d :目的IP

-i eth0 :指定入接口

-o teh0 :指定出接口

-p tcp :tcp协议扩展

– -dport 80 :指定目标端口

– -m multiport :多个端口设定


6.常用的动作

-j 后面跟动作

DROP:悄悄丢弃

REJECT:明示拒绝

ACCEPT:允许

DNAT:目的IP转换

SNAT:源IP转换

MASQUERADE:源地址伪装


7.举例

例一:

在filter表的input链上添加一条阻断源IP是10.10.10.10 目的IP是23.23.23.23 协议是tcp 目的端口是80 的数据包。

$iptables -t filter -A INPUT -s 10.10.10.10 -d 23.23.23.23 -p tcp --dport 80 -j DROP

-t filter -A INPUT 在filter表的input链里添加一条规则

-s 10.10.10.10 源IP是10.10.10.10

-d 23.23.23.23 目的IP是23.23.23.23

-p tcp 协议是tcp

— dport 80 目的端口是80

-j DROP 丢弃数据包,不给发包的终端回应

添加策略之后使用一下命令查看

$iptables -t filter -nvL

下面我们来删除刚才添加的规则

指定删除某条规则的时候,要把规则的匹配条件全部输上去。如下:

$iptables -t filter -D INPUT -s 10.10.10.10 -d 23.23.23.23 -p tcp --dport 80 -j DROP

 

例二:

在nat表的postrouting链上添加一条源IP是10.10.10.10的做SNAT:

$iptables -t nat -A POSTROUTING -s 10.10.10.10 -j SNAT --to 11.11.11.11

-t nat -A POSTROUTING 在nat表的postrouting链上天机一条规则

-s 源IP是10.10.10.10

-j SNAT 动作是做SNAT

–to 11.11.11.11 SNAT转换的地址是11.11.11.11

 

例三:

清空所有表的规则:

$iptables -F

这个命令默认是清空filter的所有规则,其他表的规则并没有清空

清空其他表的规则需要加参数,比如清空nat表的规则:

$iptables -t nat -F

清空raw的规则:

$iptables -t raw -F

清空mangle表的规则:

$iptables -t raw -F

 

 

 

你可能感兴趣的:(linux)