版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux操作系统与应用项目化教程06项目六
Linux服务器的安全性设置目录01任务6.1配置Linux防火墙02任务6.2配置SELinuxiptables防火墙介绍iptables主机防火墙配置iptables网络防火墙iptables防火墙的NAT配置任务6.1配置Linux防火墙知识点概述:一、iptables防火墙介绍随着Internet规模的迅速扩大,安全问题也越来越重要,而构建防火墙是保护系统免受侵害的最基本的一种手段。虽然防火墙并不能保证系统绝对的安全,但由于它简单易行、工作可靠、适应性强,还是得到了广泛的应用。netfilter/iptables是Linux系统提供的一个非常优秀的防火墙工具,它完全免费、功能强大、使用灵活、占用系统资源少,可以对经过的数据进行非常细致的控制。1.netfilter框架Linux内核包含了一个强大的网络子系统,名为netfilter,它可以为iptables内核防火墙模块提供有状态或无状态的包过滤服务,如NAT、IP伪装等,也可以因高级路由或连接状态管理的需要而修改IP头信息。netfilter位于Linux网络层和防火墙内核模块之间。一、iptables防火墙介绍虽然防火墙模块构建在Linux内核,并且要对流经IP层的数据包进行处理,但它并没有改变IP协议栈的代码,而是通过netfilter模块将防火墙的功能引入IP层,从而实现防火墙代码和IP协议栈代码的完全分离。对IPv4协议来说,netfilter在IP数据包处理流程的5个关键位置定义了5个钩子(hook)函数。当数据包流经这些关键位置时,相应的钩子函数就被调用。从图7-2中可以看到,数据包从左边进入IP协议栈,进行IP校验以后,数据包被第一个钩子函数PRE_ROUTING处理,然后就进入路由模块,由其决定该数据包是转发出去还是送给本机。若该数据包是送给本机的,则要经过钩子函数LOCAL_IN处理后传递给本机的上层协议;若该数据包应该被转发,则它将被钩子函数FORWARD处理,然后还要经钩子函数POST_ROUTING处理后才能传输到网络。本机进程产生的数据包要先经过钩子函数LOCAL_OUT处理后,再进行路由选择处理,然后经过钩子函数POST_ROUTING处理后再发送到网络。一、iptables防火墙介绍2.iptables防火墙内核模块netfilter框架为内核模块参与IP层数据包处理提供了很大的方便,内核的防火墙模块正是通过把自己的函数注册到netfilter的钩子函数这种方式介入了对数据包的处理。这些函数的功能非常强大,按照功能来分的话主要有4种,包括连接跟踪、数据包过滤、网络地址转换(NAT)和对数据包进行修改。其中,NAT还分为SNAT和DNAT,分别表示源网络地址转换和目的网络地址转换。此外,Linux系统还提供了iptables防火墙的用户接口,它可以在上述各张表所包含的链中添加规则,或者修改、删除规则,从而可以根据需要构建自己的防火墙。具体来说,用户是通过输入iptables命令来实现上述功能的。一、iptables防火墙介绍3.iptables命令格式在CentOS8中,iptables命令由iptables-1.8.2-16.el6.x86_64软件包提供,默认时,系统已经安装了该软件包,因此,用户可以直接输入iptables命令对防火墙中的规则进行管理。iptables命令相当复杂,具体格式如下所示。iptables[-t表名]<命令>[链名][规则号][规则][-j目标]-t选项用于指定所使用的表,iptables防火墙默认有filter、nat、mangle和raw4张表,也可以是用户自定义的表。表中包含了分布在各个位置的链,iptables命令所管理的规则就是存在于各种链中的。该选项不是必需的,如果未指定一个具体的表,则默认使用的是filter表。二、iptables主机防火墙1.安装iptables防火墙CentOS8默认安装时,已经在系统中安装了iptables软件包,可以用以下命令查看:[root@localhost~]#rpm-qa|grepiptablesiptables-1.8.2-16.el8.x86_64iptables-libs-1.8.2-16.el8.x86_64iptables-ebtables-1.8.2-16.el8.x86_64需要特别说明的是,CentOS8虽然自带iptables防火墙,但是它缺少一个iptables-service软件包,没有这个包就无法正常启动iptables防火墙,所以还需要将它进行安装。二、iptables主机防火墙具体步骤如下:(1)创建挂载目录:
#mkdir/media/cdrom(2)把安装光盘挂载到/media/cdrom目录下面:#mount/dev/cdrom/media/cdrom(3)进入iptables-service软件包所在的目录。
#cd/media/cdrom/BaseOS/Packages(4)安装iptables-service软件包。
#rpm-ivh
iptables-service-1.8.2-16.el8.x86_64.rpm若没有出现出错提示,则安装过程将顺利完成。二、iptables主机防火墙2.iptables防火墙的运行与管理在CentOS8中,系统运行的防火墙默认是firewalld,若要启用iptables则需要将firewalld关闭。iptables和firewalld不可以同时启用。与其他一些服务不同,iptables的功能是管理内核中的防火墙规则,不需要常驻内存的进程。二、iptables主机防火墙3.CentOS8开机时默认的防火墙规则在Linux系统中,可以通过使用iptables命令构建各种类型的防火墙。CentOS8操作系统默认安装时,iptables防火墙已经安装,并且开机后会自动添加一些规则,这些规则实际上是由/etc/sysconfig目录中的iptables文件决定的。可以通过“iptables-L”命令查看这些默认添加的规则。#iptables-L规则列规则解释补充解释二、iptables主机防火墙4.管理管理主机防火墙规则有很多功能种类的防火墙,有些是安装在某一台主机上,主要用于保护主机本身的安全;有些是安装在网络中的某一节点,专门用于保护网络中其他计算机的安全;也有一些可以为内网的客户机提供NAT服务,使内网的客户机共用一个公网IP,以便节省IP地址资源。下面首先介绍一下主机防火墙的应用示例。当一台服务器为外界提供比较重要的服务,或者一台客户机在不安全的网络环境中使用时,都需要在计算机上安装防火墙,以最大限度地防止主机受到外界的攻击。小节介绍的开机时默认的防火墙设置非常典型,用户可以根据自己主机的功能关闭已经开放的端口,或者开放更多的端口,以便允许符合更多规则的数据包通过。二、iptables主机防火墙5.常用的主机防火墙规则当设置主机防火墙时,一般采取先放行,最后全部禁止的方法。也就是说,根据主机的特点,规划出允许进入主机的外界数据包,然后设计规则放行这些数据包。如果某一数据包与放行数据包的规则都不匹配,则与最后一条禁止访问的规则匹配,被拒绝进入主机。三、配置iptables网络防火墙1.保护服务器子网的防火墙规则与主机防火墙不一样,保护网络的防火墙一般有多个网络接口,而且绝大部分的规则应该添加在filter表的FORWARD链中,其配置要比主机防火墙复杂得多。为了使iptables承担网络防火墙的角色,首先要确保Linux能够在各个网络接口之间转发数据包,其方法是输入以下命令,使ip_forward文件的内容为1。#echo"1">/proc/sys/net/ipv4/ip_forward上述命令的结果在系统重启后会失效。为了使系统在每次开机后能自动激活IP数据包转发功能,需要编辑配置文件/etc/sysctl.conf,它是RHEL6的内核参数配置文件,其中包含了ip_forward参数的配置。具体方法是确保在/etc/sysctl.conf文件中有以下一行:net.ipv4.ip_forward=1三、配置iptables网络防火墙即原来的值如果是0的,现把它改为1。然后执行以下命令使之生效:#sysctl-p上述命令的功能是实时修改内核运行时的参数。IP数据包转发功能激活后,就可以设置网络防火墙规则了。三、配置iptables网络防火墙2.保护内部客户机的防火墙规则前文介绍的是针对服务器子网的防火墙配置,侧重点是如何对其进行保护。因此,规则排列的特点是先放行指定的数据包,再拒绝所有的数据包。但对于个别的子网来说,配置的原则应该是不一样的,为了给用户提供尽量多的上网功能,应该放行所有的数据包,但事先要对部分有问题的数据包进行拒绝。要限制的数据包分为两类,一类是限制用户对Internet上某些内容的访问,还有一类是不允许Internet上的某些内容进入该子网。三、配置iptables网络防火墙3.mangle表应用举例前面介绍的防火墙规则其所在的规则链都位于filter表,下面再看一个有关mangle表的使用例子。mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。如图1所示的是一种典型的网络结构,内网的客户机通过Linux主机连入Internet,而Linux主机与Internet连接时有两条线路,它们的网关如图所示。现要求对内网进行策略路由,所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去,而所有访问UDP协议53号端口的数据包都从Cernet线路出去。图1.利用mangle表进行策略路由的例子网络结构三、配置iptables网络防火墙这是一个策略路由的问题,为了达到目的,在对数据包进行路由前,要先根据数据包的协议和目的端口给数据包做上一种标志,然后再指定相应规则,根据数据包的标志进行策略路由。为了给特定的数据包做上标志,需要使用mangle表,mangle表共有5条链,由于需要在路由选择前做标志,因此应该使用PREROUTING链。四、iptables防火墙的NAT配置1.NAT简介NAT并不是一种网络协议,而是一种过程,它将一组IP地址映射到另一组IP地址,而且对用户来说是透明的。NAT通常用于将内部私有的IP地址翻译成合法的公网IP地址,从而可以使内网中的计算机共享公网IP,节省了IP地址资源。可以这样说,正是由于NAT技术的出现,才使得IPv4的地址至今还足够使用。因此,在IPv6广泛使用前,NAT技术仍然还会广泛地应用。2.NAT的工作原理NAT服务器改变出去的数据包的源IP地址,在内部保存的NAT地址映射表中登记相应的条目,以便回复的数据包能返回给正确的内网计算机。通过NAT转换还可以保护内网中的计算机不受到来自Internet的攻击。四、iptables防火墙的NAT配置3.动态NAT有一种NAT改变的是数据包的目的IP地址,通常也称为动态NAT。4.端口NAT还有一种NAT称为端口NAT,它可以使用公网IP的某一端口与内网IP的某一端口建立映射关系。当来自Internet的数据包访问的是这个公网IP的指定端口时,NAT服务器不仅会把数据包的目的公网IP地址转换为对应的内网IP,而且会把数据包的目的端口号也根据映射关系进行转换。SELinux简介SELinux相关概念SELinux的配置文档应用SELinux任务6.2配置SELinux知识点概述:一、SELinux简介SELinux全称是SecurityEnhancedLinux,是由美国国家安全部领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,相当于B1级的军事安全性能。SELinux起源于自1980开始的微内核和操作系统安全的研究,这两条研究线路最后形成了一个叫做分布式信任计算机(DistributeTrustedMach(DTMach))的项目,它融合了早期研究项目的成果。美国国家安全局的研究组织参加了DTMach项目,付出了巨大努力,并且继续参与了大量的后续安全微内核项目。最终,这些工作和努力导致了一个新的项目产生,那就是Flask,它支持更丰富的动态类型的强制机制。一、SELinux简介由于不同平台对这这项技术没有广泛使用,NAS认为需要在大量的社团中展示这个技术,以说明它的持久生命力,并收集广泛的使用支持意见。在1999年夏天,NSA开始在Linux内核中实现Flask安全架构,在2000年十二月,NSA发布了这项研究的第一个公共版本,叫做安全增强的Linux。因为是在主流的操作系统中实现的,所以SELinux开始受到Linux社区的注意,SELinux最迟是在2.2.x内核中以一套内核补丁的形式发布的。随着2001年Linux内核高级会议在加拿大渥太华顺利召开,Linux安全模型(LSM[7])项目开始为Linux内核创建灵活的框架,允许不同的安全扩展添加到Linux中。NSA和SELinux社区是SELinux的主要贡献者,SELinux帮助LSM实现了大量的需求,为了与LSM一起工作,NSA开始修改SELinux使用LSM框架。2002年八月LSM核心特性被集成到Linux内核主线,同时被合并到Linux2.6内核。2003年八月,NSA在开源社区的帮助下,完成了SELinux到LSM框架的迁移,至此,SELinux进入Linux2.6内核主线,SELinux已经成为一种全功能的LSM模块,包括在核心Linux代码集中。二、SELinux相关概念DAC(自主存取控制)依据程序运行时的身份决定权限,是大部分操作系统的权限存取控制方式。也就是依据文件的own,group,other/r,w,x权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。MAC(强制存取控制)依据条件决定是否有存取权限。可以规范个别细致的项目进行存取控制,提供完整的彻底化规范限制。可以对文件,目录,网络,套接字等进行规范,所有动作必须先得到DAC授权,然后得到MAC授权才可以存取。二、SELinux相关概念TE(类型强制)所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。安全上下文安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),“域”和“域类型”意思都是一个。二、SELinux相关概念类型(TYPE)安全上下文中的用户和角色标识符除了对强制有一点约束之外对类型强制访问控制策略没什么影响。对于进程,用户和角色标识符有意义,因为它们用于控制类型和用户标识符的联合体,这样就会与Linux用户账号关联起来;然而,对于客体,用户和角色标识符几乎很少使用,为了规范管理,客体的角色常常是object_r,客体的用户常常是创建客体的进程的用户标识符,它们在访问控制上没什么作用。RBAC(基于角色的访问控制)SELinux提供了一种依赖于类型强制(TE)的基于角色的访问控制(RBAC),角色用于组域类型和限制域类型与用户之间的关系,SELinux中的用户关联一个或多个角色,使用角色和用户,RBAC特性允许有效地定义和管理最终授予给Linux用户的特权。注意:组域类型指的是将多个域类型关联到一个角色。二、SELinux相关概念SELinux中的角色和用户构成了它的RBAC特性的基础,SELinux中的访问权不是直接授予用户或角色的,角色扮演的是类型强制的一个支持特性,它和用户一起为Linux用户及其允许的程序提供了一种基于类型的访问控制,SELinux中的RBAC通过定义域类型和用户之间的关系对类型强制做了更多限制,以控制Linux用户的特权和访问许可,RBAC没有允许访问权,在SELinux中,所有的允许访问权都是由类型强制提供的。三、SELinux的配置文档1.SELinux配置文件(/etc/selinux/config)SELinux配置文件/etc/selinux/config控制系统下一次启动过程中载入哪个策略,以及系统运行在哪个模式下。2.策略目录SELinux系统上安装的每个策略在/etc/selinux/目录下都有它们自己的目录,子目录的名字对应于策略的名字(如,targeted,mls等),在SELinux配置文件中就要使用这些子目录名字,告诉内核在启动时载入哪个策略,在本章中提到的所有路径都是相对域策略目录路径/etc/selinux/[policy]/的。三、SELinux的配置文档3.SELinux的基本命令和操作sestatus命令查询系统的selinux目前的状态例如:#sestatusSELinuxstatus:enabledSELinuxfsmount:/selinuxCurrentmode:permissiveModefromconfigfile:permissivePolicyversion:24Policyfromconfigfile:targeted三、SELinux的配置文档setenforce命令功能:设定切换selinux的运行状态(0或者1),前提是开启了selinux,同时这种切换只对当前有效,如果重新启动的话,就没有效了(注意:如果关闭了selinux,那么就必须配置/etc/selinux/config文件)语法:setenforce[Enforcing|Permissive|1|0]说明如下:enforcing或者1,表示开启强制模式permissive或者0,表示开启警告但是无限制模式三、SELinux的配置文档restorecon命令说明:恢复档案目录预设的安全上下文恢复来源:/etc/selinux/targeted/contexts/files/目录内的file_contexts文件。常用参数如下:-r|-R:包含子目录与其下档案目录-F:恢?使用预设的項目(就算是檔案符合存取规范)-v:显示执行过程使用方式:restorecon[FRrv][-eexcludedir]pathname…]三、SELinux的配置文档fixfiles命令说明:修正档案目录的预设的安全上下文,依据/etc/selinux/targeted/contexts/files/内相关档案修正。使用方式:fixfiles{check|restore|[-F]relabel}[[dir]…]fixfiles-Rrpmpackage[,rpmpackage...]{check|restore}参数:-R:使用指定的rpm套件所提供的档案清单三、SELinux的配置文档semanage命令说明:selinux策略维护工具使用方式:semanage{login|user|port|interface|fcontext|translation}-l[-n]secon命令说明:检视程式、档案与使用者等相关的SELinux语境。使用方式:secon[-hVurtscmPRfLp][CONTEXT]secon[--file]FILE|[--link]FILE|[--pid]PID三、SELinux的配置文档参数:-u,-–user:showtheuserofthesecuritycontext-r,-–role:showtheroleofthesecuritycontext-t,-–type:showthetypeofthesecuritycontext-f,-–fileFILE:getsthecontextfromthespecifiedfileFILE-p,-–pidPID:getsthecontextfromthespecifiedprocessPID三、SELinux的配置文档checkmodule命令它是selinux策略模块的编译器,最常用的用法是:#checkmodule-M-m
local.te-olocal.mod
其中,-M是激活对MLS/MCS范围的支持并且将locate.te定义的策略编译成策略模块;-m编译成非基本模块;-o编译输出文件,即中间策略模块。三、SELinux的配置文档semodule_package命令它根据checkmodule命令编译生成二进制策略模块,进一步可以生成selinux可以使用的二进制策略模块。常见的用法是:#semodule_package-olocal.pp-mlocal.mod
其中,-m是用来指定策略模块;-o是用来指定目标策略模块。semodule_package还有常用的选项是-s、-u和-f,分别用于指定seuser文件、user_extra文件和文件上下文添加到目标策略模块中。三、SELinux的配置文档semodule命令用来管理selinux的策略模块。包括:重编、重载、列举、删除、激活、禁用策略模块。常见用法如下:安装或者替换策略模块:#semodule-ipolicy_module_name删除策略模块:#semodule-rpolicy_module_name激活策略模块:#semodule-epolicy_module_name禁用策略模块:#semodule-dpolicy_module_name三、SELinux的配置文档检查安全上下文i).检查帐号的安全上下文[root@localhost~]#id-Zroot:system_r:unconfined_t:SystemLow-SystemHighii).检查进程的安全上下文[root@localhost~]#ps-ZLABELPIDTTYTIMECMDroot:system_r:unconfined_t:SystemLow-SystemHigh2383pts/000:00:00bashroot:system_r:unconfined_t:SystemLow-SystemHigh2536pts/000:00:00ps三、SELinux的配置文档iii).检查文件的安全上下文[root@localhost~]#ls-Z-rw——-.rootrootsystem_u:object_r:admin_home_t:s0anaconda-ks.cfg四、应用SELinuxSELlinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。SELinux与Sambai).Samba共享的文件必须用正确的SELinux安全上下文标记。#chcon-R-tsamba_share_t/tmp/abc如果共享/home/abc,需要设置整个主目录的安全上下文。#chcon-R-rsamba_share_t/home四、应用SELinuxii).修改策略(只对主目录的策略的修改)#setsebool-Psamba_enable_home_dirs=1#setsebool-Pallow_smbd_anon_write=1#getsebool//查看SElinux布尔值samba_enable_home_dirs–>on//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年陕西省汉中市勉县七年级(下)期末地理试卷(含答案)
- 暑假巩固-第八单元自测练习卷(试卷)2025-2026学年四年级语文下册部编版(含答案)
- 2026口腔研究员面试题及答案
- 2026洛阳外贸面试题及答案
- 2026企业领导面试题目及答案
- 2026社区面试题答题思路及答案
- 瓶装牛奶生产线厂房扩建项目可行性研究报告模板申批拿地用
- 制药加工泵:全球制药加工泵市场新机遇:规模增长、竞争格局与区域机会
- 2026年护理窒息的试卷及答案
- 2026年护理三基三严考核试题(附答案)
- 2026夏季防汛安全知识培训
- 2026肉牛养殖环境承载力评估与生态平衡维护报告
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
- 急危重症护理学脑卒中
- 2025年上半年武汉东湖高新区卫生系统事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 玉米产业链规划方案
- 3.3.2 物质组成的定量表示 同步练习
- 私人借款保证书模板
- 化工和危险化学品重大事故隐患考试试题(后附答案)
- vda5测量过程能力的手册
- 底压电工安全作业操作证考试题库(含答案)
评论
0/150
提交评论