防火墙管理工具:iptables之一

概述

  • iptables,即:netfilter/iptables,IP信息包过滤系统。由netfilter(内核空间)和iptables(用户空间)两部分组成。
  • iptables组件是一种工具,它使插入、修改和移除信息包过滤表中的规则变得容易。
  • iptables,是基于内核的防火墙,功能非常强大。所有规则,严格控制大小写,即:所有表都是小写,所有链都是大写。配置后立即生效,不需要重启服务。

“三表五链”。

iptables常用部分如下:
三表

  1. filter表,负责过滤数据包,包括的规则链有,input,output和 forward;
  2. nat表,涉及到网络地址转换(私网-公网)-路有层次,包括的规则链有,prerouting,postrouting和output、input;
  3. mangle表,主要应用在修改数据包内容上,用来做流量整形的,给数据包打个标识,默认的规则链有:INPUT,OUTPUT、 forward,POSTROUTING,PREROUTING;

五链:

  1. INPUT匹配目标IP是本机的数据包,入口流量;
  2. OUTPUT匹配出口数据包,一般不在此链上做配置;
  3. FORWARD匹配流经本机的数据包;
  4. PREROUTING用来修改目的地址,用来做DNAT(目的NAT – 所以,修改目的IP–服务接受-内部集群分发处理) 如:把内网中的80端口映射到路由器外网端口上;
  5. POSTROUTIING用来修改源地址用来做SNAT(源NAT–修改的源IP–家用共享上网SNAT)。
    如:内网通过路由器NAT转换功能实现,内网PC机通过一个公网IP地址上网。
表名 PREROUTING INPUT OUTPUT FORWARD POSTROUTING
raw
mangle
nat
filter

iptables过滤封包过程:

-->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->
	mangle			|	   mangle		 ^mangle
	nat				|	   filter		 |nat
					V					 |
				  INPUT				   OUTPUT	
					|mangle				 ^mangle
					|filter				 |nat
					V------->local------>|filter

数据包分为两类:
	1. 直接发给防火墙的数据包;
	2. 经过防火墙的数据包

数据包流转过程:
1. 数据包进入网卡时,首先进入PREROUTING链,内核判断是否转发,判断依据是:数据包的目的IP;
2. 如果目的IP是本机,则数据包到达INPUT链,此时任何进程都会收到该数据包;
3. 本机程序发送的数据包,首先进入OUTPUT链,再经过POSTROUTING链后输出到网络中。
4. 如果目的IP不是本机,需要本机转发的,且内核允许转发,则数据包经过FORWARD链,到达POSTROUTING链,最后输出到网络中。

[表]的优先匹配顺序为:raw > mangle > nat > filter
[链]的优先匹配顺序为:
	入站数据:PREROUTING,INPUT;
	出站数据:OUTPUT,POSTROUTING;
	转发数据:PREROUTING,FORWARD,POSTROUTING
[链]内匹配顺序:
	- 从上向下一次匹配,找到匹配的规则,立即停止匹配;所以,配置时应该:严格策略在上,宽松策略在下;
	- 找不到匹配的规则,则按照默认规则执行;(一般默认是“允许”)
发布了13 篇原创文章 · 获赞 0 · 访问量 228

猜你喜欢

转载自blog.csdn.net/sinat_28296423/article/details/103898249
今日推荐