iptables

97 阅读2分钟

iptables

Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件netfilteriptables组成。主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。

1.四表五链

表中有链,链中有规则

  • 表的作用:规定了具体的功能,如何处理数据包
  • 链的作用:链是规则的集合,容纳管理存放各种防火墙规则。 规则就是判断是否可以通过,分为通过 和 不通过
  • 规则作用:对数据包进行过滤和处理。 规则是立即生效。

1.1四表

表名作用
raw确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT、PREROUTING
mangle修改数据包内容,用来做流量整形,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING
nat负责网络地址转换,用来修改数据包中的源、目标IP地址或端口(通信五元素)。包含三个规则链,OUTPUT、 PREROUTING、 POSTROUTING
filter负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、 FORWARD、 OUTPUT

1.2五链

链名作用
INPUT处理入站数据包,匹配目标IP为本机的数据包。
OUTPUT处理出站数据包,一般不在此链上做配置。
FORWARD处理转发数据包,匹配流经本机的数据包。
PREROUTING在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。
POSTROUTING在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。

2.iptables命令及格式

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

-t nat filter 如果不指定 默认是filter

2.1 管理选项

选项含义
-v显示更详细的信息
-n以数字形式显示
-L防火墙里的规则列表,L必须在最后
-A追加,后面跟链名,一般是INPUT链或者FORWARD链
-I插入,-I后面加链名 和 编号
-D删除,后面也是加链名 和 编号
-R替换
-F清空

2.2匹配条件

选项含义
-p指定协议匹配
-s指定源地址匹配
-d指定目标地址匹配
-i指定入站网卡(静态网卡)
-o指定出站网卡(数据网卡
- - sport指定源端口
- -dport指定目标端口
-j ACCEPT允许 数据包通过
-j DROP直接丢弃,已读不回
-j REJECT拒绝