系统安全之防火墙

目录

一,安全技术和防火墙

1.1,安全技术

1.2,防火墙的分类

二,Linux防火墙的基本知识

1防火墙工具介绍

2.1 iptables

2.2 firewalld

2.3netfulter中五个勾子函数和报文流向

2.4firewall服务

2.4.1firewalled 介绍

Firewalld防火墙的配置方法

2.4.2firewalld和iptables区别

2.5.1命令行配置

 2.5.3其它规则

2.5.4管理rich规则

2.5.5netfilter(网络层防火墙)

2.5.6iptables(应用层防火墙)用来管理防火墙的工具

2.5.7iptables的表、链结构

规则链

三种报文流向

规则表

默认包括4个规则表

2.5.8数据包控制的匹配流程

规则表之间的顺序

规则链内的匹配顺序

内核中数据包的传输过程

三、SNAT原理与应用

四、DNAT原理:修改数据包的目的地址

五、防火墙规则的备份和还原:

六,总结


一,安全技术和防火墙

1.1,安全技术

入侵检测系统(监控):特点不阻断任何网络访问,量化,定位来自网络内外网络的威胁情况,主要以提供报警和事后监督责任为主,提供有针对性的指导措施

入侵防御系统:以透明模式工作,分析数据包的内容如:溢出攻击

防火墙:隔离功能,工作在网络和主机边缘

防水墙

广泛意义上的防水墙:防水墙,与防火墙相对,是一种防止内部信息泄露的安全产品,网络,外设接口,存储介质和打印机构成信息泄露的全部途径,。防火墙针对这四种泄密途径,在事前,中,后进行全面防护。与其防病毒产品,外部安全产品一起完成完整的网络安全体系。

1.2,防火墙的分类

按保护范围划分:

·主机防火墙:服务范围为当前一台主机

·网络防火墙:服务范围为防火墙一侧的局域网 按实现方式划分:

·硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为,山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(uniper2004年40亿美元收购)等

·软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows防火墙ISA -->Forefront TMG 按网络协议划分:

·网络层防火墙:OSI模型下四层,又称为包过滤防火墙

·应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层

包过滤防火墙

网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过

优点:对用户来说透明,处理速度快且易于维护缺点:无法检查应用层数据,如病毒等

缺点:无法检查应用层数据,如病毒等

应用层防火墙

应用层防火墙/代理服务型防火墙,也称为代理服务器(Proxy Server)将所有跨越防火墙的网络通信链路分为两段 内外网用户的访问都是通过代理服务器上的"链接"来实现优点:在应用层对数据进行检查,比较安全缺点:增加防火墙的负载I

提示:现实生产环境中所使用的防火墙一般都是二者结合体,即先检查网络数据,通过之后再送到应用层去检查

二,Linux防火墙的基本知识

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中 Netfilter是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作 Netfilter官网文档: https://netfilter.org/documentation/

1防火墙工具介绍

2.1 iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

2.2 firewalld

从CentOS 7版开始引入了新的前端管理工具软件包: firewalld firewalld-config管理工具: firewall-cmd命令行工具firewall-config图形工作

2.3netfulter中五个勾子函数和报文流向

Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则。 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上提示:从Linux kernel 4.2版以后,Netfilter在prerouting前加了一个ingress勾子函数。可以使用这个新的入口挂钩来过滤来自第2层的流量,这个新挂钩比预路由要早,基本上是tc命令(流量控制工具)的替代品。

2.4firewall服务

2.4.1firewalled 介绍

支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具

支持IPv4、IPv6防火墙设置以及以太网桥

支持服务或应用程序直接添加防火墙规则接口

拥有两种配置模式

运行时配置

永久配置

Firewalld防火墙的配置方法

运行时配置

●实时生效,并持续至Firewalld重新启动或重新加载配置

●不中断现有连接

●不能修改服务配置永久配置

●不立即生效,除非Firewalld重新启动或重新加载配置

●中断现有连接 可以修改服务配置

2.4.2firewalld和iptables区别

Firewalld iptables
配置文件

/usr/lib/firewalld/

/etc/firewalld/

/etc/syscongfig/iptables
对规则的修改 不需要全部刷新策略,不丢失现行连接 需要全部刷新策略,丢失连接
防火墙类型 动态防火墙 静态防火墙

2.5.1命令行配置

firewalld预定义服务配置 . firewall-cmd --get-services查看预定义服务列表

/usrllib/firewalld/services/*.xml预定义服务的配置

firewalld三种配置方法

firewall-config图形工具:需安装firewall-config包

firewall-cmd命令行工具: firewalld包,默认安装 ./etc/firewalld/配置文件,一般不建议,如:/etc/firewalld/zones/public.xml

可以打开Xmanager - Passive

小操作:禁止ping:

系统安全之防火墙_第1张图片

 2.5.3其它规则

●区域如同进入主机的安全门,每个区域都具有不同限制程度的规则

●可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口

●默认情况下,public区域是默认区域,包含所有接口 (网卡)

2.5.4管理rich规则

rich规则比基本的firewalld语法实现更强的功能,不仅实现允许/拒绝,还可以实现日志syslog和

auditd,也可以实现端口转发,伪装和限制速率

规则实施顺序:

该区域的端口转发,伪装规则

该区域的日志规则

该区域的允许规则

该区域的拒绝规则

每个匹配的规则生效,所有规则都不匹配,该区域默认规则生效

2.5.5netfilter(网络层防火墙)

位于Linux内核中的包过滤功能体系称

为Linux防火墙的“内核态”

2.5.6iptables(应用层防火墙)用来管理防火墙的工具

位于/sbin/iptables,用来管理防火墙规则的工具

称为Linux防火墙的“用户态”

——上述2种称呼都可以表示Linux防火墙

包过滤的工作层次 主要是网络层,针对IP数据包 体现在对包内的IP地址、端口等信息的处理上

2.5.7iptables的表、链结构

规则链

规则的作用:对数据包进行过滤或处理链的作用:容纳各种防火墙规则 链的分类依据:处理数据包的不同时机

默认包括5种规则链

INPUT:处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

POSTROUTING链:在进行路由选择后处理数据包

PREROUTING链:在进行路由选择前处理数据包

三种报文流向

流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)

流出本机:用户空间进程-->OUTPUT--> POSTROUTING(穿过我)

转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)

链chain:

内置链:每个内置链对应于一个钩子函数

自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook钩子调用自定义链时,才生效。

规则表

表的作用:容纳各种规则链

表的划分依据:防火墙规则的作用相似

默认包括4个规则表

raw表:确定是否对该数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源、目标lP地址或端口

filter表:确定是否放行该数据包(过滤)

2.5.8数据包控制的匹配流程

数据包过滤的匹配流程

规则表之间的顺序

raw→mangle→nat→>filter规则链之间的顺序 入站:PREROUTING→INPUT

出站: OUTPUT>POSTROUTING

转发: PREROUTING>FORWARD→>POSTROUTING

规则链内的匹配顺序

按顺序依次检查,匹配即停止(LOG策略例外)

若找不到相匹配的规则,则按该链的默认策略处理

内核中数据包的传输过程

1.当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去 2.如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达 3.如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出

三、SNAT原理与应用

SNAT应用环境:局域网主机共享单个公网IP地址接入Internet (私有1P不能在Internet中正常路由)SNAT原理:修改数据包的源地址。SNAT转换前提条件:

1、局域网各主机已正确设置 IP 地址、子网掩码、默认网关地址 2、Linux网关开启IP路由转发

临时打开

echo 1> /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1

永久打开

vim /etc/sysctl.conf
net.ipv4.ip_forward =1      #将此行写入配置文件

sysctl -p                   #读取修改后的配置

SNAT转换1:固定的公网IP地址:

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
                                    内网IP       出站 外网网卡                      外网IP或地址池

四、DNAT原理:修改数据包的目的地址

DNAT转换前提条件:

1、局域网的服务器能够访问Internet

2、网关的外网地址有正确的DNS解析记录

3、Linux关开启IP路由转发

vim /etc/sysctl.conf
net.ipv4.ip_forward =1

sysctl –p

DNAT转换1:发布内网的Web服务

#把从ens33进来的要访问web服务的数据包目的地址转换为192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33-d 12.0.0.1 -p tcp --dport 80 -j DNAT--to-destination 192.168.80.11
	                         入站 外网网卡  外网IP                                              内网服务器IP

iptables -t nat -A PREROUTING -i ens33 -p tcp--dport 80 -j DNAT --to 192.168.80.11-192.168.80.20	                         

五、防火墙规则的备份和还原:

导出(备份)所有表的规则

iptables-save > /opt/ipt.txt

导入(还原)规则

iptables-restore < /opt/ipt.txt

将iptables规则文件保存在/etc/sysconfig/iptables中,iptables服务启动时会自动还原规则

iptables-save > /etc/sysconfig/iptables
systemctl stop iptables   #停止iptables服务会清空掉所有表的规则
systemctl start iptables  #启动iptables服务会自动还原/etc/sysconfig/iptables中的规则

六,总结

学习了防火墙的基础知识,可以进入图形界面完成操作,需要熟练掌如何通过配置,禁止主机ping服务器,允许所有主机访问ssh服务(该地方需要勾选SSH服务)。

你可能感兴趣的:(系统安全,网络,安全)