一、安装iptables
centos7默认防火墙是firewalle,要想使用iptables,需要安装。

               ````yum install -y iptables iptables.services
                    启动:service iptables start
                    状态:service iptables status
                    关闭:service iptables stop
                    重启:service iptables restart
                    保存新建规则:service iptables save
                    配置文件:vim /etc/sysconfig/iptables
                    ````

二、iptables工作原理
1、介绍
iptables又可以称作为netfilter,是Linux/Unix自带的一款优秀的且开放源代码的完全自由的基于包过滤的防火墙工具,他的功能十分的强大,使用非常的灵活,可以对流入和流出的数据包进行很精细的控制。特别它可以在一台硬件很低的机器上跑的很好,提供近400人的上网读取,好不逊色企业级专业路由器防火墙。iptables主要工作在OSI七层的二三层和四层(数据链路层,网络层,传输层),如果重新编译内核iptables也可以支持7层控制。
2、工作流程

防火墙是一层层过滤的,实际是按照配置规则自上而下进行的,从前到后进行过滤的。

如果匹配上规则,即明确表示是阻止还是通过,此时的数据包就不在进行下面的匹配了。
如果所有规则中没有明确是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到到匹配到默认规则(默认规则会明确表明是通过还是阻止)。
防火墙的默认规则是对应链的所有的规则 执行完才会执行的。

三、iptables表和链

iptables有4表5链。


filter: 顾名思义,用于过滤的时候
nat: 顾名思义,用于做 NAT 的时候,NAT:Network Address Translator
mangle:不常用,路由包的改写
raw:不常用


INPUT: 位于 filter 表,匹配目的 IP 是本机的数据包
FORWARD: 位于 filter 表,匹配穿过本机的数据包,
PREROUTING: 位于 nat 表,用于修改目的地址(DNAT)
POSTROUTING:位于 nat 表,用于修改源地址 (SNAT)
OUTPUT:处理所有源地址就是本机地址的数据包,通俗的讲,就是处理从主机发出去的数据包,存在所有表中

1、filter表介绍
主要和主机自身有关,真正负责主机防火墙功能(过滤流入,流出,流经主机的数据包)。filter是主机默认使用的表。这表定义了三个链。生产场景单台,服务器的防火墙功能全靠这张表
INPUT:负责过滤进入主机的数据包
FORWARD:负责转发流进主机的数据包,起转发的作用,和NAT关系很大,后面会详细介绍,LVS NAT模式。路过 net.ipv4.ip_forward=0 内核模块
OUTPUT : 处理所有源地址就是本机地址的数据包,通俗的讲,就是处理从主机发出去的数据包
对filter表的控制是我们实现主机防火强的重要功能,特别是对INPUT链的控制。
2、nat表介绍
负责网络地址转换,即来源与目的ip地址和port的转换。

应用:和主机本身无关,防火墙一般不用nat,一般用于局域网共享上网或者特殊的端口和ip的转换服务相关