当前位置:
文档之家› 精品课件-Linux服务器配置与管理-项目10 防火墙配置与管理
精品课件-Linux服务器配置与管理-项目10 防火墙配置与管理
--get-active-zones
列出当前正在使用的所有区域(具有关联的接口或源)及其接口和 源信息。
--add-source=<CIDR>
将来自IP地址或网络/子网掩码<CIDR>的所有流量路由到指定区域。
[--zone=<ZONE>]
如果未提供“--zone”选项,则使用默认区域。
--remove-source=<CIDR>
预备知识 认识防火墙
1.什么是防火墙
• 防火墙(Firewall),是位于两个(或多个)网络之间,实施网络之间
访问控制的一组组件集合,是目前最重要的一种网络防护设备。防火 墙这个名字是借鉴了古代真正用于防火的防火墙的喻义,是设置在被 保护网络和外部网络之间的一道屏障,实现网络的安全保护,以防止 发生不可预测的、潜在破坏性的侵入。
1.什么是防火墙
防火墙通常具有以下三个特点:
(1)位置特点:内部网络和外部网络之间的所有网络数据流都必须经过 防火墙。只有当防火墙成为内、外网络之间通信的唯一通道,才可以全 面、有效地保护企业内部网络不受侵害。
(2)功能特点:只有符合安全策略的数据流才能通过防火墙。根据企业 的安全策略(允许、拒绝、监测)控制出入网络的信息流,确保网络流 量的合法性,并在此前提下将网络流量快速地从一条链路转发到另外的 链路上。
firewall-cmd [选项]
任务分析
常见选项如下表所示。
选项
功能
--get-default-zone
查询当前默认区域。
--set-defualt-zone=<ZONE>
设置默认区域。此命令会同时更改运行时配置和永久配置。
--get-zones
列出所有可用区域。
--get-services
列出所有支持的服务。
除非与传出流量相关,否则拒绝传入流量。
除非与传出流量相关,否则拒绝传入流量。(甚至不产生包含ICMP错误的响应)
filter和Firewalld的基本概念
服务名称 ssh dhcpv6-client ipp-client Samba-client
mdns
Firewalld预定义服务
配置 本地SSH服务器。到22/TCP的流量。 本地DHCPv6客户端。到fe80::/64 IPv6网络中546/UDP的流量。 本地IPP打印。到631/UDP的流量。 本地Windows文件和打印共享客户端。到137/UDP和138/UDP的流量。
Linux服务器配置与管理 项目10 防火墙配置与管理
刘开茗
西安电子科技大学出版社
【项目描述】
• 为了保证公司服务器的安全,需要在公司服务器上安装和运行防火墙。 • 本项目中我们来完成防火墙的配置与管理任务。
【学习目标】
(1)了解防火墙的工作原理。 (2)掌握Linux防火墙的基本架构。 (3)掌握Firewalld的基本配置。
任务分析
Firewalld可以通过三种方式来管理: (1) 使用命令行工具firewall-cmd。 (2) 使用图形工具firewall-config。 (3) 使用/etc/firewalld/中的配置文件。
大部分情况下,不建议直接编辑配置文件。本任务中,我们使 用firewall-cmd命令行工具。firewall-cmd命令格式如下:
• 由于firewalld.service和iptables.service、ip6tables.service以
及ebtables.service服务彼此冲突,为了防止意外启动其中的一个 *tables.serivce服务(并擦除流程中任何正在运行的防火墙配置), 可以将*tables.serivce加以屏蔽。
多播DNS(mDNS)本地链路名称解析。到5353/UDP指向224.0.0.251(IPv4)或 ff02::fb(IPv6)多播地址的流量。
任务一 安装防火墙
任务提出
• 要想使防火墙发挥效能,首先需要确定用于运行防火墙的软件包是否
存在,以及能否正常运行。本次任务需要确认Firewalld能够正常运行。
• 基于包过滤技术的防火墙的优点是对于小型的、不太复杂的站点,比较
容易实现。但是其缺点也是很显著的。首先面对大型的、复杂站点,包 过滤的规则表很快会变得很大而且复杂,规则很难测试。随着表的增大
2.防火墙的种类
2)应用代理型防火墙
• 应用代理型防火墙,实际上就是一台小型的带有数据检测过滤功能的透
明代理服务器。但是它并不是单纯的在一个代理设备中嵌入包过滤技术, 而是一种被称为应用协议分析的新技术。应用代理型防火墙能够对各层 的数据进行主动的、实时的监测,能够有效地判断出各层中的非法侵入。 同时,这种防火墙一般还带有分布式探测器,能够检测来自网络外部的 攻击,同时对来自内部的恶意破坏也有极强的防范作用。
filter和Firewalld的基本概念
Red Hat Enterprise Linux 7中引入了一种与netfilter交互的新方法: Firewalld。Firewalld是一个可以配置和监控系统防火墙规则的系统守护 进程。该守护进程不仅涵盖IPv4和IPv6,还可以涵盖ebtables设置。 Firewalld将所有的网络流量分为多个区域(zone),从而简化防火墙管理。 根据数据包源IP地址或传入网络接口等条件,流量将转入相应区域的防火 墙规则,如下图所示。每个区域都可以有自己的要打开或关闭的端口和服 务列表。
• 应用代理型防火墙基于代理技术,通过防火墙的每个连接都必须建立在
为之创建的代理程序进程上,而代理进程自身是要消耗一定时间,于是 数据在通过代理防火墙时就不可避免的发生数据迟滞现象。应用代理型 防火墙是以牺牲速度为代价换取了比包过滤型防火墙更高的安全性能。
2.防火墙的种类
3)状态检测型防火墙
这种防火墙技术通过一种被称为“状态监视”的模块,在不影响网络安全 正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监 测,并根据各种过滤规则作出安全决策。状态监视可以对包内容进行分析, 从而摆脱了传统防火墙仅局限于几个包头部信息的检测弱点,而且这种防 火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安 全隐患。
从指定区域中删除用于路由来自IP地址或网络/子网掩码<CIDR>的
[--zone=<ZONE>]
所有流量的规则。如果未提供“--zone”选项,则使用默认区域。
filter和Firewalld的基本概念
尽管系统管理员可以编写自己的内核模块与netfilter交互,但通常大家都 不会这么做。取而代之,会使用其他程序来与netfilter交互。这些程序中, 最常见和最知名的是iptables。在Red Hat Enterprise Linux 7之前的版 本中,iptables是与netfilter交互的主要方法。 iptables命令是一个低级工具,使用该工具正确管理防火墙可能具有挑战 性。此外,它仅能调整IPv4防火墙规则。为保证更完整的防火墙覆盖率, 需要使用其他实用程序,如用于IPv6的ip6tables和用于软件桥的ebtables。
(3)性能特点:防火墙自身应具有非常强的抗攻击免疫力。防火墙处于 网络边缘,就像一个边界卫士一样,每时每刻都要面对黑客的入侵,这
2.防火墙的种类
1)包过滤型防火墙
• 包过滤是最早使用的一种防火墙技术,它的第一代模型是静态包过滤,
工作在OSI模型的网络层上,之后发展出来的动态包过滤则是工作在OSI 模型的传输层上。包过滤型防火墙通道,它把网络层和传输层作为数据监控的对象,对 每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预 先设定好的防火墙过滤规则进行核对,一旦发现某个包的某个或多个部 分与过滤规则匹配并且条件为“阻止”的时候,这个包就会被丢弃。
filter和Firewalld的基本概念
区域名称 trusted home internal
work
public
external dmz block drop
Firewalld区域默认配置
默认配置
允许所有传入流量。 除非与传出流量相关,或与ssh、mdns、ipp-client、samba-client或dhcpv6-client预定 义服务匹配,否则拒绝传入流量。 除非与传出流量相关,或与ssh、mdns、ipp-client、samba-client或dhcpv6-client预定 义服务匹配,否则拒绝传入流量(一开始与home区域相同)。 除非与传出流量相关,或与ssh、ipp-client或dhcpv6-client预定义服务匹配,否则拒绝 传入流量。 除非与传出流量相关,或与ssh或dhcpv6-client预定义服务匹配,否则拒绝传入流量。 新添加的网络接口的默认区域。 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量。通过此区域转发 的IPv4传出流量将进行伪装,以使其看起来像是来自传出网络接口的IPv4地址。 除非与传出流量相关,或与ssh预定义服务匹配,否则拒绝传入流量。
任务实施——查看系统中是否安装了Firewalld软件包
默认情况下,firewalld包应该已经安装,如果没有安装,可以参照【项 目3-任务一】使用YUM来安装该软件包。
任务实施——屏蔽其他防火墙服务
任务总结
• 本次任务主要确认了firewalld软件能够正常运行,为下一步配置防火
墙作好准备。
任务分析
• Firewalld是Red Hat Enterprise Linux 7中用于管理主机级别防火
墙的默认方法。它所需要的软件包是firewalld-filesystem-*8.el7.noarch和firewalld-*-8.el7.noarch(*代表版本号,根据 Linux系统的版本不同会有所差别)。