NETFILTER/ IPTABLES IP数据包过滤系统
IPTABLES简介
- IPTABLES是与Linux内核集成的IP信息包过滤系统。
- IPTABLES系统有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。
- 防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则储存在专用的数据包过滤表中,而这些表集中在Linux内核中。
- 在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。
iptables构建
iptables
iptables其实不是真正的防火墙,可以把它理解成一个客户端代理,通过这个代理,将用户的安全设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,这个框架的名字叫做netfilter。
netfilter才是真正的安全框(frameword),netfilter位于内核空间。iptables其实就是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
netfilter\iptables组成linux平台下的包过滤防火墙,与大多数linux软件一样,这个防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换等功能。
iptables中的五张表
filter表:iptables中使用最广泛的表,作用是进行过滤,也是由filter表来决定一个数据包是否继续发往目的地址或者被拒绝。
filter表有三个链组成:INPUT–FORWARD–OUTPUT,INPUT(负责过滤进入主机的数据包),FORWARD(负责过滤转发的数据包),OUTPUT(负责过滤出站的数据包)
nat表:用于望楼地址转换,可以改变数据包的源地址或者目标地址。
nat表由三个链组成:OUTPUT–PREROUTING–POSTROUTING,OUTPUT(负责过滤出站的数据包),PREROUTING(一般指的是发往公网的数据包),POSTROUTING(一般指来自公网的数据包)
mangle表:用于修改IP的头部信息,如修改TTL。
mangle表由五个链组成:INPUT–FORWARD–OUTPUT–PREROUTING–POSTROUTING
raw表:为iptables提供了一种不经过状态追踪的机制,在大流量对外业务的服务器上使用这个表,可以避免状态追踪带来的性能问题。security表:提供在数据包中加入SELinux特性的功能。在实际应用中,security一般不常用。
CentOS默认的防火墙不是iptables,而是firewalle。
可以通过下面的命令检查是否安装了iptables
#查看iptables服务的状态
service iptables status
firewalle的开启、停止与禁用命令
#停止firewalld
systemctl stop firewalld
#开启firewalld
systemctl start firewalld
#禁用firewalld
systemctl mask firewalld
firewalld.service前面绿点表示服务正在运行,白点表示服务停止,红点表示服务