防火墙是位于内外网之间的一组软硬件部件的组合,主要目的是保护内外网的数据流通的安全,当外网访问内网的时候发送的数据包必须经过内网的防火墙检验是否符合规则。
能够指定火墙策略的两个工具包
iptables和firewalld
Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙或称作网络层防火墙(iptables)
Firewalld:只用于管理Linux防火墙的命令程序,属于“用户态”(User Space。又称为用户空间)的防火墙管理体系。支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
一、iptables
1、iptables与Netfilter
iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作
Netfilter模块:
它是主要的工作模块,位于内核中,在网络中的五个位置(也就是防火墙四表五链)注册了一些函数,用来抓取数据包;把数据包的信息拿来匹配各个各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT、DROP等等。
2、四表五链
四表五链:
一个表----->多个链链
一个链------->多个规则
链共有五个:进路由(PREROUTING)、进系统(INPUT)、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING)
进出路由做数据转换时用到,一般用不到
**表就是存储的规则:**数据包到了该链接,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。
1)具体的四表
filter表——涉及FORWARD、INPUT、OUTPUT三条链,多用于本地和转发过程中数据过滤 Nat表——涉及PREROUTING、OUTPUT、POSTROUT三条链,多用于源地址/端口转换和目标地址/端口的转换 Mangle表——涉及整条链,可实现拆解报文、修改报文、重新封装,可常见于IPVS的PPC下多端口会话保持 Raw表——涉及PREROUTING和OUTPUT链,决定数据包是否被状态跟踪机制处理,需关闭nat表上的连接追踪机制
2)具体的五链
INPUT——进来的数据包应用此规则链中的策略 OUTPUT——外出的数据包应用此规则链中的策略 FORWARD——转发数据包时应用此规则链路中的策略 PREROUTING——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理) POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)
3、iptables语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型 ]
-P | 设置默认策略 iptable |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I | num 在规则链的头部加入新规则 |
-D | num 删除某一条规则 |
-s | 匹配来源地址 IP/MASK,加叹号“ !”表示除这个IP外 |
-d | 匹配目标地址 |
-i | 网卡名称 匹配从这块网卡流入的数据 入站口 |
-o | 网卡名称 匹配从这块网卡流出的数据 出站口 |
-p | 匹配协议,如tcp,udp,icmp |
–dport num | 匹配目标端口号 |
–sport num | 匹配来源端口号 |