架构-防火墙iptables

image

互联网架构

image

防火墙

一、什么是防火墙

防火墙是一个由计算机硬件和软件组成的系统,部署于网络边界,是内部网络和外部网络之间的连接桥梁,同时对进出网络边界的数据进行保护,防止恶意入侵、恶意代码的传播等,保障内部网络数据的安全。

二、防火墙种类

1、硬件防火墙

硬件防火墙,把“软件防火墙”嵌入在硬件中,把“防火墙程序”加入到芯片里面,由硬件执行这些功能,从而减少计算机或服务器的CPU负担。一般的“软件安全厂商”所提供的“硬件防火墙”,就是在“硬件服务器厂商”定制硬件,然后再把“Linux系统”与自己的软件系统结合嵌入。

2、软件防火墙

软件防火墙,一般基于某个操作系统平台开发,直接在计算机上进行软件的安装和配置。由于客户之间操作系统的多样性,软件防火墙需要支持多种操作系统,如“Unix、Linux、SCO-Unix、Windows”等。比如iptables,firewalld,安全组。

iptables

基本介绍

用户 --> 调用iptables --> ip——tables内核模块 --> Netfilter(系统安全框架)--> 过滤请求

包过滤防火墙

1、什么是包
在数据传输过程,并不是一次性传输完成的,而是将数据分成若干个数据包,一点一点地传输
2、什么是包过滤防火墙
过滤数据包的防火墙

包过滤防火墙如何实现

通过系统安全框架,过滤数据包

四表五链

表(table):存放链的容器
链(chain):存放规则的容器
规则(policy):准许或者拒绝规则
把Netfilter比作一栋楼,表就是楼里的房间,链就是房子里的柜子,而规则就是柜子里的衣服。

四表

fliter:主要和主机自身相关,真正负责主机防火墙功能的(过滤流入主机的数据包)fliter表是iptables默认使用的表,这个表定义了三个链,企业工作场景:主机防火墙
	三个链:
		1、INPUT:负责过滤所有目标地址是本机地址的数据包,通俗来说过滤进入主机的数据包 
		2、FORWARD:负责转发流经主机的数据包,起转发的作用 
		3、处理所有源地址是本机地址的数据包,通俗地讲,就是处理从主机发出去的数据包 
NAT:负责网络地址转换的,即来源和目的ip和port的转换。应用:和主机本身无关,一般用于局域网共享上网或者特殊端的端口转换服务相关 主要用于企业路由(zebra)和网关(iptables),共享上网和内部外部ip地址的映射,硬件防火墙映射IP到内部服务器,ftp服务(PREROUTING),耽搁端口的映射。
	 三个链: 
	 	1、OUTPUT:和主机放出去的数据包有关,改变主机发出数据包的目的地址。 
		2、PREROUTING:在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口等。 
		3、POSTROUTING:在数据包离开防火墙进行路由器判断之前执行的规则,作用改变数据包的源地址,源端口等,就是写好发件人的地址,要让家人回信时有地址可回。
mangle:负责修改数据包内容
	五个链:
		1、PREROUTING
		2、INPUT
		3、FORWARD
		4、OUTPUT
		5、POSTROUTING
raw:负责数据包跟踪
	两个链:
		1、PREROUTING
		2、OUTPUT

五链

PREROUTING:主机外报文进入位置,允许的表是mangle,NAt(目标地址转换,把本机地址转换成真正的目标机地址,通常指响应报文)
INPUT:报文进入本机用户空间位置,允许的表fliter,mangle
OUTPUT:报文从本机用户空间发出去的位置,允许fliter,mangle,NAT
FORWAD:报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去,允许filter, mangle
POSTROUTING:报文经过路由被转发出去,允许mangle,NAT(源地址转换,把原地址转换成转发主机出口的网卡地址)

流入本机:PREROUTING  -->  INPUT  --> PROCESS(进程)
经过本机:PREROUTING  --> FORWARD --> POSTROUTING
从本机流出:PROCESS(进程) -->  OUTPUT --> POSTROUTING

image

posted @ 2021-12-24 19:14  JudyJU  阅读(181)  评论(0)    收藏  举报