Linux应用基础项目化教程(RHEL8.2 CentOS8.2)课件 项目8 网络与安全管理_第1页
Linux应用基础项目化教程(RHEL8.2 CentOS8.2)课件 项目8 网络与安全管理_第2页
Linux应用基础项目化教程(RHEL8.2 CentOS8.2)课件 项目8 网络与安全管理_第3页
Linux应用基础项目化教程(RHEL8.2 CentOS8.2)课件 项目8 网络与安全管理_第4页
Linux应用基础项目化教程(RHEL8.2 CentOS8.2)课件 项目8 网络与安全管理_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目8网络与安全管理主讲:***2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)12024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)2本项目学习目标:1.知识目标2.能力目标掌握网络信息设置的基本概念;掌握防火墙的基本概念;掌握SELinux的基本概念;掌握Linux中日志的基本概念。能熟练使用GUI或CLI工具配置Linux的网络信息;能使用firewalld工具实现防火墙的基本控制;能使用SELinux相关工具设定SELinux选项;能熟练查看系统日志,排查系统简单的故障。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)3学习任务任务8.1网络管理任务8.2防火墙管理任务8.3SELinux任务8.4日志管理2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)4任务8.1网络管理在CentOS7之前,操作系统中的网络接口名称一般通过eth0、eth1、eth2、…、ethN的形式编号,随着系统中设备的增加或减少,设置这些名称会产生一些不对称的信息。因此,从CentOS7开始,系统采用了新的命名规则,根据设备类型、适配器类型等为网络设备命名,CentOS8也采用同样的命名规则。8.1.1网络信息区

段命名规则说

明设备类型en以太网wlWLANwwWWAN适配器类型o板载设备s热插拔设备pPCI设备数字编号通用数字代表索引、ID或端口2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)5在CentOS8中,可以使用ip命令查看网络的相关信息,包含设备和地址信息及网络性能等方面的统计信息。例如,查看设备ens33的网络信息,如图所示。

表示该网络设备接口的状态为激活状态(UP);

link行表示该设备的硬件(MAC)地址;

inet后显示该设备的IPv4地址和前缀;

brd后显示该设备的硬件广播地址;

inet6行显示该设备的IPv6地址信息。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)68.1.2GUI的网络管理工具在图形界面下,如图所示,单击右上角的按钮,在弹出的窗格中,先单击【有线已连接】选项,再单击【有线设置】选项,打开网络配置界面,如图8-1-4所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)7单击【有线】下的配置按钮,打开有线网络的【详细信息】选项卡,可以查看本地已经配置的网络情况,如链路速度、IPv4地址、硬件地址、默认路由(Gateway)及DNS等。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)88.1.3CLI的网络管理工具在命令行模式下,主要通过调整对应网卡的配置文件或者使用网络配置命令tui完成网络配置信息的调整。1.通过配置文件调整网络信息1)调整IP信息在CentOS8中,网卡的配置文件存放在“/etc/sysconfig/network-scripts”目录中,进入该目录。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)9网卡配置文件2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)10网卡配置文件第1行,TYPE用于设置网卡的类型,Ethernet表示以太网类型;第2行,PROXY_METHOD用于设置代理类型,none表示未启用;第3行,BROWSER_ONLY用于设置在第2行中设置的代理服务器是否仅用于浏览器,no表示否,表示全局可用;第4行,BOOTPROTO用于设置网卡获取IP地址的方式,通常可以设置为:dhcp、static、none和bootp,其中static和none用于设置手动配置方式;2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)11网卡配置文件第5行,DEFROUTE用于设置默认路由,yes是表示启用;第6行,IPV4_FAILURE_FATAL用于设置是否开启IPv4致命错误检测,no表示不启用;第7行,IPV6INIT用于设置是否启用IPv6,yes表示启用;第8行,IPV6_AUTOCONF用于设置是否自动化配置IPv6,yes表示是;第9行,IPV6_DEFROUTE用于设置IPV6是否为默认路由,yes表示是;第10行,IPV6_FAILURE_FATAL用于设置是否启用IPv6致命错误检测,no表示不启用;2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)12网卡配置文件第11行,IPV6_ADDR_GEN_MODE用于设置IPv6地址的生成方式,通常在CentOS8中,IPv6地址基于RFC4826实现无状态地址自动配置,其值可以设置为eui64或stable-privacy,当IPv6地址的生成方式被设置为eui64时,系统将使用从硬件地址派生的接口令牌生成地址。这种方式可以让生成的IPv6地址中的主机部分保持不变,从而可以在主机更改网络时进行跟踪,当接口硬件被替换时,地址会发生改变。当IPv6地址生成方式被设置为stable-privacy时,可以根据RFC7217中的定义,使用Hash加密的方式生成特定密钥,这种方式在更换网络接口硬件时,也可以获得一个相对稳定的网络地址,且这种方式可以避免主机在网络中被跟踪,具体的IPv6生成的方式可以查阅manpage中的“man5nm-settings”;2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)13网卡配置文件第12行,NAME用于定义网卡设备的名称,通常与第14行对应;第13行,UUID用于设置识别码;第14行,DEVICE用于定义配置文件对应的物理网卡设备名称;第15行,ONBOOT用于设置在开机时是否激活网卡,yes表示自动激活;第16行,IPDDR用于设置IPv4地址,这里设置为02;第17行,PREFIX用于设置子网掩码,这里设置24位的子网掩码;第18行,GATEWAY用于设置网关,这里设置为54;2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)14网卡配置文件第19行,DNS1用于为本机设置DNS解析服务的地址,可以通过DNS2、DNS3等方式为主机指定多个DNS;第20行,IPV6_PRIVACY用于设置是否在无状态地址自动配置时启用IPv6的扩展隐私策略(RFC4941),no表示不启用。上述配置文件,在不需要使用IPv6网络时,可以做适当精简,精简后的配置文件如图所示,即适用于IPv4网络的网卡配置文件。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)152)调整主机名在CentOS8中,主机名可分为静态(static)、临时(transient)、优雅(pretty)3种形式,通常静态和临时主机名都有一定的规范,而优雅主机名则可以使用非规范的空格、特殊字符等。静态主机名:系统启动时永久生效的主机名,通常用于配置内核参数信息,默认存储在“/etc/hostname”中,还可通过在网卡配置文件中定义“HOSTNAME”选项来设置对应的主机名。临时主机名:当静态主机名无法获取或失效时,临时主机名默认会被设置为localhost和localhost.localdomain。优雅主机名:对字符几乎没有限制,可以设置任意。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)162.通过nmtui命令调整网络信息在终端执行“nmtui”命令启动文本界面形式的网络配置工具,如图8-1-14所示。通过上下方向键或【Tab】键进行跳转,可选择需要调整配置的选项,然后按【Enter】键进入配置。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)17任务8.2防火墙管理Linux内核中包含Netfilter框架,Netfilter是RHEL8防火墙的主要组件,用于实现数据包过滤、网络地址转换和端口转换等网络操作。Netfilter允许其他内核模块直接与内核的网络堆栈接口连接,利用防火墙软件定义的过滤规则,在内核中通过调用钩子函数(Hook)和消息处理程序实现拦截和转发等操作。8.2.1防火墙概述2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)18FirewallD是由RedHat开发的一个动态防火墙管理工具,早期的FirewallD是传统iptables服务的改进替代方案,随着各类新的GNU/Linux发行版本中的防火墙后端引擎逐步从iptables向nftables迁移,nftables取代iptables成为默认的Linux网络包过滤框架。FirewallD是nftables框架的默认前端,提供了防火墙区域定义、网络链接及接口安全等级定义等功能。从CentOS7开始,系统默认启用FirewallD管理防火墙,防火墙前端通过firewall-cmd命令控制nftables规则集。通过FirewallD,用户可以将进入系统的所有网络流量分为多个区域,从而简化防火墙管理。根据数据源的IP地址或传入的网络接口等条件,流量将被转入相应区域按规则处理。每个区域都有自己的端口和服务列表,它们处于打开或者关闭状态。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)19Firewalld针对每个进入系统的数据包,通常采用以下处理流程:首先检查数据包的源地址,若该源地址被分配给了特定区域,则FirewallD应用该区域的规则,若该源地址未被分配给某个区域,则FirewallD会检查数据包传入的网络接口,检查与传入的网络接口关联的区域规则,若网络接口未与区域关联,则其会将数据包与默认区域相关联,应用默认区域的规则进行处理。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)201.FirewallD区域网络区域定义了网络连接的可信等级。防火墙中预定义了一部分区域,在默认情况下,如果传入流量属于系统启动的通信的一部分,那么所有区域都允许这些传入流量和全部传出流量,常用的预定义区域如表所示,其他预定义的区域可以通过使用“man”命令查阅firewalld.zone(5)手册来获取。区域名称默认配置trusted可信区域,允许所有数据包进出home家庭区域,默认拒绝所有传入数据包,但是允许数据包传出和预定义的服务(SSH、mDNS、samba-client、IPPClient或DHCPv6Client)internal与home区域类似work工作区域,默认拒绝所有传入数据包,但是允许数据包传出或预定义的服务(SSH、IPPClient或DHCPv6Client)。public公共区域,默认拒绝所有传入数据包,但是允许数据包传出或预定义的服务(SSH或dhcpv6-clinet),新增加的网卡默认加入该区域external扩展区域,默认拒绝所有传入数据包,但是允许数据包传出或预定义的服务(SSH)。会对通过此区域转发的IPv4流量进行伪装,将数据包映射为与该区域绑定的网络IPdmz非军事区,默认拒绝所有传入数据包,但是允许数据包传出或预定义的服务(SSH)block阻塞区域,在该区域中,允许传出的数据,将默认阻塞所有传入的数据包drop丢弃区域,在该区域中,允许数据包传出,丢弃传入的数据包(不响应ICMP错误)2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)212.预定义服务FirewallD预定义了一些服务,这些定义可以识别需要配置的特定网络服务,如表所示。服务名称配

置SSHLinux服务器本地的SSH服务,对应22/TCP的流量mDNS多播DNS名称解析服务,对应5353/UDP端口,指向51(IPv4)或ff02::fb(IPv6)的流量samba-client基于SMB协议的本地文件共享和打印机共享服务,对应137/UDP和138/UDP的流量IPPClient本地IPP打印服务,对应631/UDP的流量DHCPv6Client本地DHCPv6客户端,对应546/UDP端口,指向fe80::/64的IPv6网络的流量2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)223.数据包处理针对进入系统的数据包,FirewallD根据匹配规则对数据包进行处理,除允许传入与传出之外,FirewallD还有的其他处理规则如表所示。处理规则说

明丢弃丢弃任何传入网络的数据包都,不做任何ICMP响应阻塞拒绝任何传入的网络连接,并返回IPv4的icmp-host-prohibited报文或IPv6的icmp6-adm-prohibited报文伪装私有网络地址可以被映射为公开的IP地址端口转发将某个端口映射到另一个端口和/或其他主机。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)238.2.2配置防火墙在CentOS8中,如果需要调整防火墙的配置,可以通过编辑配置文件、Web控制台进行,也可以使用firewall-cmd命令与FirewallD交互。当前,多数Linux服务器使用非图形界面,因此,管理员更倾向于使用firewall-cmd命令进行配置。2024年1月2日24Linux应用基础项目化教程(RHEL8.2/CentOS8.2)命

令说

明--state返回防火墙的运行状态,“running”或者“notrunning”--get-default-zone查询当前的默认区域--set-default-zone=ZONE设置默认区域,设置默认区域时会同时改变运行时配置和永久配置--get-zones列出所有区域,仅列出区域的名称--list-all-zones列出检索到的所有区域的所有信息,包括接口、源、端口和服务等内容--list-all[--zone=ZONE]列出指定ZONE区域的所有信息,若未指定“--zone”选项,则表示输出默认区域的信息--list-services[--zone=ZONE]列出指定区域的所有服务,若未指定“--zone”选项,则表示输出默认区域的服务信息--list-ports[--zone=ZONE]列出指定区域的所有端口信息,输出时会忽略预定义的端口信息,仅输出用户自定义的端口信息,若未指定“--zone”选项,则表示输出默认区域的端口信息--get-active-zones列出当前所有正在使用的区域及其接口和源信息--add-source=CIDR[--zone=ZONE]使用CIDR的方式(如9/24),将指定的IP地址或网络段的所有流量的路由到指定区域,即由指定区域的规则进行处理,若未指定“--zone”选项,则表示添加到默认区域。--remove-source=CIDR[--zone=ZONE]与上一个命令类似,作用相反,用于删除。若未指定“--zone”选项,则删除默认区域中的源--add-interface=INTERFACE[--zone=ZONE]与“—add-source”类似,将来自INTERFACE的所有流量路由到指定区域,若未指定“--zone”选项,则使用默认区域。--change-interface=INTERFACE[--zone=ZONE]将INTERFACE和指定的ZONE区域关联,若未指定“--zone”选项,则将其与默认区域关联--add-service=SERVICE[--zone=ZONE]添加指定的服务(如FTP、http或httpS等),允许对应规则的流量通过防火墙。若未指定“--zone”,则使用默认区域。--remove-service=SERVICE[--zone=ZONE]与上一个添加服务的命令类似,作用相反,用于删除指定的服务--add-port=PORT/PROTOCOL[--zone=ZONE]添加指定的PORT/PROTOCOL规则,开放相应端口及对应协议的流量,若未指定“--zone”,则使用默认区域。其中PORT可以是连续的,PROTOCOL表示TCP或UDP,如5000-6000/TCP--remove-port=PORT/PROTOCOL[--zone=ZONE]与上一个添加端口的命令类似,作用相反,用于删除指定的端口--reload重新加载配置,在执行reload前,如果防火墙的规则集中有运行时状态的内容将全部丢弃,重新加载并应用永久配置--permanent设置将规则作为永久配置存储2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)25在FirewallD中,运行规则分为运行时规则和永久规则两种类型,当通过firewall-cmd命令配置新规则时,若添加“--permanent”选项,则新规则将仅作用于运行时,对区域进行的修改立即生效,但该规则不是永久的,在重新加载防火墙规则(--reload)或重启服务器后将失效;若指定“--permanent”选项,则可以将新规则设置为永久规则,将相关的配置信息存放在“/etc/firrewalld”目录中,设置为永久规则的防火墙规则不会立即生效,需要在重新加载防火墙或重启服务器后才能生效。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)26在一些业务系统中,随着应用场景的变化,我们需要永久地保存一个新的规则,同时还需要让这个规则立即生效,并且避免因重新加载或重启服务器而改变系统当前防火墙的运行状态,这时可以通过添加两次规则实现,将其中的一次的选项设置为“--permanent”,即可避免重新加载或重启服务器操作,也可以让规则立即生效。在CentOS8中,默认不开放21号端口。因此,如果需要提供FTP服务,在安装vsftpd软件后,需要使用firewall-cmd命令在指定区域开启服务或相应端口的访问功能,如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)27第一条命令,用于检查防火墙是否启动,“running”表示防火墙正在运行;第二条命令,用于获取默认区域的信息,通常默认的区域为“public”;第三条命令,用于指定输出默认区域中已经开放的服务,可以发现SSH等服务已经被开启;第四条命令,用于在默认区域中增加FTP服务,“success”表示添加成功;第五条命令,用于检查FTP服务是否已经被添加到指定区域,从输出的结果可以看出,FTP服务已经被添加到默认区域中,但在添加FTP访问功能时,新规则未被设置为永久规则,重启后规则将失效,若要永久将其添加到防火墙的规则中,则应使用“--permanent”选项,然后执行重新加载操作。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)28通常,在CentOS8中,使用VSFTP软件提供FTP服务时,该软件默认以主动模式对外提供服务(PORT),未开启被动模式(PASV)。但是Filezilla、Chrome、Firefox等许多FTP客户端工具都采用被动模式访问FTP服务。因此,默认安装并开启vsftpd软件,并且在防火墙中开放FTP服务访问功能后,这些工具仍然无法正常使用FTP服务。这时,可以通过调整FTP服务的配置文件,为其增加被动访问功能,并开启部分可用的端口(建议1024号以后的端口)给FTP。被动模式的具体配置方法可查阅相关manpage进行学习。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)29例如,永久性开放10000-11000之间的TCP端口,为FTP服务的被动模式提供访问文件共享功能,如图所示。在完成防火墙的配置后,也可以检查配置开放的端口情况,例如,在完成上述添加10000-11000端口后,可以使用firewall-cmd命令列出公共区域的开放端口,如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)30任务8.3SELinux在各类Linux中,多数管理员都很熟悉基于用户和权限管理的安全模型,这种传统的安全模型是采用基于账户信息和文件权限的访问控制模型,称为自主式存取控制(DiscretionaryAccessControl,DAC)模型,在Linux中,DAC存在一定的缺陷,例如,因root用户的特殊性,许多DAC规则对root用户无效,同时如果某些权限设置错误,那么也会导致严重的后果,例如,某个目录的权限如果被设置为777,那么该目录将开放给所有用户,所有用户对该目录中的内容都可以执行读/写、删除等操作。8.3.1SELinux概述2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)31安全增强型Linux(SecurityEnhancedLinux,SELinux),是一个额外的系统安全层,它的主要目标是采用基于对象的处理方式,通过制定更加复杂的控制策略,实现强访问控制(MandatoryAccessControl,MAC),在权限控制的粒度方面,比传统的DAC更加精确。通常,SELinux会为Linux中的每个文件、目录、进程及网络端口等资源设置一个专门的安全标签(SecurityLabel),这个标签也称为SELinux上下文(SELinuxCentext)。标签是一个名称,SELinux策略使用这些标签确定某个进程能否访问文件、目录或网络端口等资源。在访问控制方面,除非在策略中显式地授予访问权限,其他任何情况都会拒绝访问。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)32SELinux的标签具有多种标签,以Apache提供的http服务为例,该服务默认存放网页的路径为“/var/www/html”,进入网页存放目录,执行“ls-Z”命令,如图所示。图中的内容,除最后一部分“index.html”为文件名外,前面的内容用冒号“:”分割,分为4段,每段代表的含义如下:(1)第一段,“unconfined_u”表示SELinux的用户;(2)第二段,“object_r”表示角色;(3)第三段,“httpd_sys_content_t”表示类型标签;(4)第四段,“s0”表示敏感度。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)331.SELinux的3种状态强制状态(Enforcing):CentOS8中默认的状态,SELinux强制执行访问控制策略。许可状态(Permissive):SELinux处于活动状态,仅记录违反规则的警告信息,不强制执行访问控制策略,主要用于测试新部署的应用程序,查看将策略应用到这些程序会产生什么影响;或者用于进行相应的故障诊断,解决当前一些特定服务或应用程序不能正常工作的原因。禁用状态(Disabled):完全关闭SELinux,不执行任何访问控制策略,也不记录相应的警告信息。在关闭状态,系统中的访问控制方式恢复为DAC控制方式。需要注意的是,在禁用SELinux之前,需要考虑是否可能会在系统上再次使用SELinux,如果决定以后将其设置为Enforcing或Permissive状态,当下次重启系统时,系统将会花费一定的时间对系统中的所有文件、目录和进程等资源重新打上标签。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)342.SELinux的类型在CentOS8中,SELinux的默认策略分为3类。针对性保护策略(Targeted),Targeted策略主要对系统中的服务进程进行访问控制,也可以限制其他进程和用户。服务进程都被放入沙箱(Sandbox)中,在沙箱环境中服务进程会被严格限制,以便使通过此类进程所引发的恶意攻击不会影响到其他服务或危及Linux。通过使用Targeted策略,可以降低因访问特定服务(如Web服务、文件共享服务等服务)而对系统中其他资源造成不利影响的风险。最小限制策略(Minimum),Minimum策略与Targeted策略类似,它们都制定一个基本的策略规则包,以防止系统执行访问控制策略时消耗过多系统资源,其针对的是智能设备、物联网设备及低配置的计算机等应用环境。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)35多级安全策略(MLS),MLS策略(Multi-LevelSecurity,MLS)采用更加严格的限制规则,会对系统中的所有进程进行控制。例如,在启用MLS策略后,执行最简单的“ls”等命令时都会报错。因此,在将策略调整为MLS前,需要提前为MLS策略设计一个规则集,进行定义调整,否则容易导致系统故障,无法正常启动系统。例如,将策略设置为MLS后,重启服务器,将提示如图所示的信息。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)361.查看和调整SELinux的模式在命令行模式下,SELinux提供了相应的工具集,使用户可以通过执行getenforce和setenforce命令查看或调整SELinux的状态,如图所示。其中setenforce命令的值可以设置为0或者1,0表示设置为Permissive模式,1表示设置为Enforcing模式。通过setenforce命令在命令行中修改的模式重启后将失效,因此如果需要永久地调整SELinux的模式,可以通过修改“/etc/selinux/config”中的配置实现。8.3.2SELinux的基本操作2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)372.更改SELinux的标签在运行SELinux的系统中,所有的文件、目录和进程都会有相应的标签。标签代表了SELinux相关的安全信息。在系统中新创建的文件或目录会默认继承其父目录的SELinux标签,从而确保标签的承接关系。但是当需要复制或移动这些文件或目录时,会破坏这种关系,如图所示,在“/tmp”目录下创建“file-1.html”和“file-2.html”,分别将其移动和复制到“/var/www/html”目录中,其SELinux的标签会有所不同。从图中可以发现,“mv”命令可以保留原始的SELinux标签,当时使用“cp”命令复制文件时,会自动适配目标目录的SELinux标签,如果需要保留原始的SELinux标签,则需要在执行“cp”命令使用“-a”选项,用于保留原始的SELinux标签。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)38如果在系统中需要更改指定文件或目录的SELinux标签,可以通过两种方式完成。一种简单的方式是使用“chcon”命令指定对应的SELinux标签。另一种方式是通过“semange”命令和“restorecon”命令组合实现,在系统中定义默认的文件标签规则。选

项功能说明-l或--list列出指定对象的类型记录-a或--add添加指定对象类型的记录-d或--delete删除指定对象类型的记录2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)39在CentOS8等采用了SELinux策略的系统中,其相应的SELinux策略行为都是通过许多的SELinux布尔值进行定义的。这些布尔值对应SELinux的安全策略,用于控制系统中的各类行为,管理员可以根据业务及应用场景的需求情况,有选择地调整这些SELinux布尔值。在进行设置时,数字1和“on”表示启用,数字0和“off”表示禁用。通常,在查看或调整SELinux策略的布尔值时,主要使用“sebool”命令,其中“getsebool”命令用于列出指定的布尔值及其状态值(0|1),“setsebool”命令用于修改布尔值。8.3.3调整SELinux的策略2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)401.查询布尔值“getsebool”命令用于查询指定SELinux布尔值的设置情况,可以使用“-a”选项一次性输出所有的布尔值设置情况。在排除SELinux的故障时,可以组合“grep”命令,一次性查询系统与某个关键字关联的SELinux布尔值情况。2.调整布尔值setsebool命令用于调整SELinux策略的布尔值,在执行setsebool命令时,若不使用任何选项,则表示该调整仅临时有效,当系统重启后,该设置失效,恢复为默认状态;若要永久地更改布尔值,需要使用“setsebool-P”命令。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)41SELinux除具有文件和进程的管理功能外,还可以通过对网络端口进行标记绑定的方式实现对网络端口的额外管理功能。其采用更有针对性的规则,实现严格的网络流量控制,当某个进程希望侦听端口时,SELinux会检查与该进程关联的标签是否已经绑定到这个端口上,通过这些规则,可以阻止恶意程序(进程或服务)控制其他合法程序(进程或服务)使用的端口,提高系统整体的安全性。8.3.4管理SELinux端口标签2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)42SELinux为网络服务提供了许多不同的标签,以对不同服务进行控制。例如,22号端口对应SSH访问功能,提供了关联的“SSH_port_t”标签;20号端口对应FTP的数据传输功能,提供了关联的“FTP_data_port_t”标签;21号端口对应FTP的控制功能端口,提供了关联的“FTP_port_t”标签;80号端口对应http服务,提供了关联的“http_port_t”标签。使用“semanageport”命令可以管理SELinux的端口标签,可以实现端口标签的查询、添加、删除、修改等操作。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)431.查询端口标签使用“semanageport”命令的“-l”选项可以列出系统中已经定义的SELinux端口标签,该选项一次性输出所有定义的端口标签情况,如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)442.添加端口标签在Linux中,为了避免一些特殊的服务被恶意用户嗅探,在根据实际业务需求调整某些服务的侦听模式时,都需要调整默认的端口,通过非通用端口对外提供访问服务。在CentOS8中,使用“semanageport”命令的“-a”选项添加新的端口标签,使用“-t”选项指定端口绑定的标签类型,使用“-p”选项指定端口使用的协议。例如,添加SSH服务的2200端口标签,如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)453.删除端口标签删除SELinux端口标签的操作方式与添加的操作类似,使用“-d”选项,执行删除操作,如图所示,删除前面添加的SSH服务的2200端口标签。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)464.修改端口标签在CentOS8中,当业务需求发生变化时,可以修改SELinux的端口标签,使用“semanageport”命令的“-m”选项调整端口标签。例如,将绑定http服务的8800端口标签调整为绑定SSH服务的SELinux端口标签,如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)47任务8.4日志管理在CentOS及其他许多的Linux发行版本中都内置了采用syslog协议的标准日志系统,其将操作系统的内核及各类进程产生的事件记录下来,并通过合理的方式将产生的日志条目进行归档和记录,存放在指定的日志中。这些日志通常可用于系统安全审计、服务故障诊断及排除等。在CentOS8中,日志由两个服务负责,分别为systemd-journald和rsyslog。8.4.1日志概述2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)481.systemd-journald服务systemd-journald服务作为操作系统日志系统的核心架构,提供一种改进的日志管理服务,可以收集内核事件、操作系统早期启动阶段的记录、其他进程及服务在启动和运行时的标准输出和标准错误输出,以及syslog日志服务在运行期间的产生的日志。systemd-journald服务收集到这些信息后,会将它们转换为标准日志格式,写入结构化、可索引的日志系统中,这些日志将被写入到临时存储的文件中,重启后将失效。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)492.rsyslog服务为解决system-journald服务产生的日志记录在重启后失效的问题,rsyslog服务允许用户根据需要自定义处理日志的流程,根据服务的配置情况及时接收system-journald产生的日志,并按指定的要求处理日志,将其记录到日志中,或者根据配置要求转发给其他程序处理。rsyslog服务可以通过读取system-journald产生的日志,按照日志的类型、功能和优先级对其进行重新分类、排序,然后将其永久地存储在“/var/log”目录中,常见的日志如表所示。2024年1月2日50Linux应用基础项目化教程(RHEL8.2/CentOS8.2)日志文件存储信息/var/log/mesessages除与授权认证、邮件处理、周期性任务和调试相关的信息之外,系统中多数服务和进程产生的日志都默认会存储在这个文件中/var/log/audit/*记录与审计相关的事件/var/log/secure记录与安全和授权认证相关的事件/var/log/maillog记录与邮件服务器相关的事件/var/log/cron记录与周期性任务有关的事件/var/log/xferlog记录与vsftpd产生的FTP服务访问相关的事件/var/log/httpd/*记录与Apache产生的http服务访问相关的事件/var/log/mariadb/*记录与MariaDB数据库相关的相关事件2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)518.4.2查看日志1.记录日志通常,日志有许多种类,根据不同的关键字,其可以分为kern,auth,authpriv,cron,mail等。其中,mail日志表示记录的所有syslog协议下的邮件程序的日志,其他类型的定义可以通过“man5rsyslog.conf”命令查阅。日志的优先级如表所示,其中0表示最高优先级,7表示最低优先级数字代码优

级严重程度0emerg最严重,系统不可用1alert非常严重,需要立即采取行动2crit严重,达到临界值,有可能会导致更严重的结果3err未达到crit级别中的临界值4warning警告5notice正常但是需要重视的消息6info普通的信息7debug调试级别的信息2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)52rsyslog服务通过“/etc/rsyslog.conf”配置文件,以及“/etc/rsyslog.d”目录中的以“.conf”结尾的一些自定义配置文件对日志进行控制,根据上述日志类型及日志优先级决定日志处理的流程。在系统中安装新软件时,可以很方便地在“/etc/rsyslog.d”目录中额外增加配置文件,进行日志的处理。在rsyslog服务的配置文件中,每行定义一个规则。在每行的定义中,左侧是表示日志类型和优先级,右侧表示日志存储的位置信息,该位置可以是本地路径下的一个位置,也可以是远程的日志服务器。左侧的日志类型和优先级采用点号(.)进行分割,点号左边表示日志的类型,右边表示日志的优先级,日志的类型和优先级都可以使用星号通配符(*)表示所有,如图所示。2024年1月2日53Linux应用基础项目化教程(RHEL8.2/CentOS8.2)2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)542.日志轮转在日志系统中,随着时间的积累,各类进程及服务产生的日志将越来越多,“/var/log”目录将占用越来越大的空间,存储系统的压力也将越来越大。因此rsyslog服务提供了日志轮转(logrotate)功能,相应的轮转行为都是通过“/etc/logrotate.conf”文件定义的,可以定义默认的轮转周期、存储日志的次数等,文件的内容如图所示。2024年1月2日Linux应用基础项目化教程(RHEL8.2/CentOS8.2)553.rsyslog日志日志中记录的内容,通常是以追加的形式写入日志的末尾的。所以,日志的末尾都最新的一条日志。以“/var/log/secure”日志为例,使用tail命令,查看该日志的最后5行,如图所示。选取最后一行,其中“Oct3113:43:38”表示日志记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论