一、iptables简介
iptables有四表五链,每一种功能都用一张表来实现,因此主要有四个功能
- raw表:数据跟踪处理
- mangle表:修改报文原数据
- filter表:是默认的表,它实现防火墙,也就是包过滤的功能
- nat表:实现网络地址转换功能
最常用的功能是防火墙和NAT •从RHEL7开始,默认的防火墙为firewalld,但是它的底层仍然调用iptables •使用iptables需先关闭firewalld防火墙,否则会有冲突
二、iptables工作原理
我们可以向规则链中加入很多规则,数据包进入该链时,从上向下匹配,一旦匹配就停止,开始应用规则。如果全都不匹配,则应用默认规则
三、iptables使用
防火墙filter表:
- 配置iptables时,不指定表,就是使用filter表
- 配置时不指定规则链,则配置所有链 filter的三条链
链路:
- INPUT:数据包的目标地址是自己,则进入INPUT链
- OUTPUT:数据包的源地址是自己,则进入OUTPUT链
- FORWARD:数据包穿过自己,则进入FORWARD链 常用的目标操作
执行操作
- DROP:丢弃
- REJECT:明示拒绝
- ACCEPT:接受
四、iptables指令格式
指令格式:
选项、链名和 目标操作需用大写字母,其余小写
iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作] 示例:
案例:
1.iptables -P FORWARD DROP
指令效果:默认拒绝所有数据包通过
2.iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT
指令效果:放行源地址为192.168.1.0/24,访问目标地址为192.168.2.0/24的数据包
3.iptables -A FORWARD -s 192.168.3.0/24 -d 192.168.4.0/24 -p tcp -m multiport --dport 22,80,443,100:120 -j ACCEPT
指令效果:放行源地址为192.168.3.0/24,访问目标地址为192.168.4.0/24且访问目标的22、80、443、100-120的端口范围
4.iptables -I FORWARD -m iprange --src-range 192.168.4.10-192.168.4.20 --dst-range 192.168.2.30-192.168.2.60 -j REJECT
指令效果:拒绝源地址为192.168.4.10-20,访问目标地址为192.168.2.30-60的请求
注释:iprange是多ip模块,src-range是源地址范围,dst-range目标地址范围