iptable表链关系
1、在生产中selinux 是关闭的。iptables 根据环境,内网关闭,外网开启。如果是大并发的情况,不开启iptables.
2、/var/log/messages 出现kernel:nf_conntrack:table full,dropping packet 是因为业务访问慢造成的
优化:
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
#表池调大
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
#超时时间调小
3、Netfilter /iptables 是基于包过滤的防火墙。安全性比老一辈的ipfwadm、ipchains 强大很多,主
要工作在二、三、四层。如果重新编译内核,也可以支持七层控制。
4、容器:包含或者说属于的关系
Netfilter /iptables 是表的容器。(filter、NAT、mangle、raw)
iptanles tables是chains的容器
(INPUT(进入)、OUTPUT(出)、FORWARD(转发)、PREROUTING(预路由)、POSTROUTING(出路由))
chins:是policy(规则)的容器。
5、FILTER 表(默认): 真正负责主机防火墙的(过滤主机流入主机的数据包)
INPUT :负责过滤所有目标地址是本机地址的数据包
OUTPUT:处理所有源地址是本机地址的数据包
FORWARD :负责转发流经主机的数据包; lvs NAT模式 (net.ipv4.ip_forward=0)
6、NAT 表:负责网络地址转换,即来源与目的ip地址和port的转换。,一般用于局域共享上网或者特殊端口转换。
OUTPUT :改变主机发出数据包的目的地址。
PREROUTING:在数据包到达防火墙是进行路由判断之前执行规则,作用改变数据包的目的地址、目前端口
POSTROUTING: 在数据包在离开防火墙时进行路由判断之前执行规则 改变数据包的源地址,源端口。
7、防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行匹配的。
如果匹配上规则,即明确表名是阻止还是通过,数据包就不在向下匹配新规则了
如果所有规则中没有明确表明是阻止还是通过,也就是没有匹配规则,向下进行匹配 ,直到匹配默认
规则得到明确的阻止还是通过。
防火墙默认规则是所有的规则执行完才会执行。
8、iptables的工作流程图。
FILTER ============> MANGLE
INPUT 内核 OUTPUT
∧ ∨
∧ NAT
MANGLE OUTPUT
INPUT ∨
∧ FILTER OUTPUT
∧ ∨
MANGLE ======> NAT ======== ==== >MANGLE =======>FILTER============>MANGLE========---->NAT
PREROUTING PREROUTING FORWORD FORWARD FORWARD POSTROUTING POSTROUTING