使用强制拜访操控办理网络服务51CTO博客 - 牛牛娱乐

使用强制拜访操控办理网络服务51CTO博客

2019年04月04日08时25分41秒 | 作者: 晨涛 | 标签: 拜访,操控,办理 | 浏览: 3002

 

运用强制拜访操控办理网络效劳     与传统的自主拜访操控不同,强制拜访操控具有更高的安全性。SELinux是强制拜访操控机制的一个代表,本文将介绍怎么运用该机制来办理网络效劳的文件体系拜访权限,并以Fedora 16下的SELinux为例进行实例介绍。   一、强制拜访操控机制简介 在传统的拜访操控机制中,自主拜访操控模型占主导地位。运用自主拜访操控(discretionary access control,DAC)的体系能够让资源的具有者指定哪些主体能够拜访该资源。这种模型称为“自主型”是因为对拜访的操控是由资源具有者自主决议的。在DAC模型中,拜访依据颁发用户的权限来进行约束,这意味着客体的具有者有权指定对这些客体的拜访类型。假如一个安排采用了DAC模型,那么网络办理员能够让资源的具有者操控哪些人能够拜访他们的文件。DAC模型中最常见的完成方法是拜访操控列表(access control list,ACL),这个列表由用户指定,由操作体系施行。咱们运用的大多数操作体系都是依据自主型拜访操控模型的,比方Windows、Macintosh和干流的Unix体系。 而在强制型拜访(mandatory access control,MAC)模型中,数据的一切者没有决议谁能拜访这些文件的权利,但这是由操作体系最终做出的决议,而且或许会掩盖数据一切者的设置。这种模型更为结构化并愈加严厉,一般依据安全标签体系来完成。用户被赋予一个安全等级(隐秘、秘要、绝密等),而且数据被分成了多个类别。这种分类存储在资源的安全标签里边。分类标签指明晰用户拜访一个文件时必备的可信等级。当体系接到一个客体拜访恳求时,它依据主体的安全等级和客体的安全类别来作出决议计划。主体怎么拜访数据的规矩由办理层拟定,由办理员装备和办理,由操作体系来进行施行,由安全技术支撑。安全标签和各个客体附在一同,所以每一个文件、目录和设备都有其自己的安全标签以及分类信息。一个用户或许具有隐秘(Secret)的拜访等级,他要拜访的数据具有绝密(Top Secret)的安全标签。这种状况下用户会被回绝拜访,因为他的安全等级不等于或低于客体的安全类别。现在,最常见的MAC体系是由美国国家安全局(NSA)和安全核算(Secure Computing)公司开发的 SE Linux。而在较高版别的Linux发行套件中,如Red Hat Enterprise Linux(RHEL) 5、RHEL6、Fedora 1至Fedora 16等版别中,都包含对SELinux的支撑。 二、怎么发动和封闭SELinux 运用SELinux的条件是对其进行发动。发动和禁用SELinux的过程首要包含:1)修正其装备文件;2)履行重启。 首要需求介绍一下SELinux的主装备文件。主装备文件/etc/selinux/config操控体系下一次发动过程中载入哪个战略,以及体系运转在哪个形式下,能够运用sestatus指令确认当时SELinux的状况,下面显现了一个config文件的比方:   # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled – No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: #       targeted - Targeted processes are protected. #       mls – Multi Level Security protection. SELINUXTYPE=targeted   SELinux形式(由上述比方中第6行的SELINUX选项确认):能够被设置为enforcing,permissive或disabled三种: 1)        在enforcing形式下,战略被完好履行,这是SELinux的首要形式,应该在一切要求增强Linux安全性的操作体系上运用。 2)        在permissive形式下,战略规矩不被强制履行,而仅仅进行审阅。除此之外,SELinux不会影响体系的安全性,这个形式在调试和测验一个战略时十分有用。 3)        在disabled形式下,SELinux内核机制是彻底封闭的,只要体系发动时战略载入前体系才会处于disabled形式,这个形式和permissive形式有所不同。permissive形式不会回绝任何拜访,仅仅进行审阅;而在disabled形式下,SELinux将不会有任何动作。这儿需求特别留意的是:在enforcing和permissive形式或disabled形式之间切换时要当心,当回来enforcing形式时,一般会导致文件符号不一致。SELinux装备文件中的形式设置由init运用,在它载入初始战略前装备SELinux运用。   以下是发动SELinux的具体过程暗示: (1)修正装备文件 依据上面的介绍,修正确认SELinux的运转形式和活动战略(见下面装备文件中的黑体部分)即可:   # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled – No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: #       targeted - Targeted processes are protected. #       mls – Multi Level Security protection. SELINUXTYPE=targeted   (2)运用getenforce指令和sestatus指令检查SELinux的运转形式和具体上下文信息: #/usr/sbin/getenforce   #/usr/sbin/sestatus   (3)运用root用户身份重启体系即可: #reboot   同理,禁用SELinux的具体过程如下: (1)       修正装备文件 依据上面的介绍,修正确认SELinux的运转形式和活动战略(见下面装备文件中的黑体部分)即可 # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled – No SELinux policy is loaded. SELINUX=diabled # SELINUXTYPE= can take one of these two values: #       targeted - Targeted processes are protected. #       mls – Multi Level Security protection. SELINUXTYPE=targeted   (2)       运用getenforce指令和sestatus指令检查SELinux的运转形式和具体上下文信息: #/usr/sbin/getenforce   #/usr/sbin/sestatus   (3)       运用root用户身份重启体系即可 #reboot 三、运用SELinux战略目录 如上述的比方中,SELinux装备文件中的SELINUXTYPE选项通知init在体系发动过程中载入哪个战略,这儿设置的字符串有必要匹配用来存储二进制战略版别的目录名,例如,用户运用MLS(Multi-Level Security,多级安全)战略作为比方,因而用户设置SELINUXTYPE=MLS,保证用户想要内核运用的战略在/etc/selinux/config文件中。在上述比方中,活动战略默以为方针战略(targeted),由第10行给出所示。 SELinux体系上装置的每个战略在/etc/selinux/目录下都它们自己的目录,子目录的姓名对应于战略的姓名(如,strict,targeted,refpolicy等),在SELinux装备文件中就要运用这些子目录姓名,通知内核在发动时载入哪个战略,在本章中说到的一切途径都是相对域战略目录途径/etc/selinux/[policy]/的,图1是在最新的Fedora 16体系上/etc/selinux/目录的简略列表输出: 图1 /etc/selinux/目录的简略列表输出 如上面所看到的,在体系上装置了一个战略目录:targeted。留意目录和战略子目录都用selinux_config_t类型进行符号的。 semodule和semanage指令办理战略的许多方面,semodule指令办理可载入战略模块的装置、更新和移除,它对可载入战略包起效果,它包含一个可载入战略模块和文件上下文音讯,semanage东西办理增加、修正和移除用户、人物、文件上下文、多层安全(MLS)/多领域安全(MCS)转化、端口符号和接口符号,关于这些东西的更多信息在它们的协助手册中。 每个战略子目录包含的文件和文件怎么符号有必要恪守一个标准,这个标准被许多体系实用程序运用,协助办理战略,一般,任何规划优秀的战略源树都将正确装置战略文件,下面是targeted战略目录的列表输出,它便是一个典型,如图2所示: 图2 targeted战略目录的列表输出 如上所示:一个正在运转的体系不需求src/目录,它包含了装置的战略源树,要么是示例战略,要么是运用战略源树,实际上单片二进制战略文件存储在.policy/目录中的policy.[ver]文件中,这儿的[ver]便是战略二进制文件的版别号,如policy.19,这便是体系发动时载入内核的文件。 四、办理网络效劳的文件体系拜访权限 在SELinux中,有一个十分重要的概念称为布尔变量,它一般用来在运转时改动SELinux的部分战略,而不需求从头界说和改写战略文件。而且,这些布尔变量在很大程度上也与许多网络效劳的拜访权限相关,比方对网络文件体系(NFS)的拜访,对FTP的拜访等等。 1.布尔变量的罗列和装备 经过列出体系中的布尔变量,能够知道与布尔变量相关的战略的开关状况(on或许是off状况),然后知道相关网络效劳的拜访权限状况。能够运用如图3指令进行罗列: 图3 检查体系布尔变量 上述成果中的SELinux boolean列列出了体系中的布尔变量称号,Description列则给出了该布尔变量的开关状况。比方,如下的布尔变量标明的意思是阻挠ftp用户拜访用户目录:   ftp_home_dir  -> 关   Allow ftp to read and write files in the user home directories   如下指令能够仅仅给出布尔变量的开关状况,而不给出他们的具体描绘信息,如图4所示:   #/usr/sbin/getsebool –a 图4 显现布尔变量的开关状况 而且,经过该指令能够检查具体的布尔变量(一个或许多个)的开关状况信息,如下所示: #/usr/sbin/getsebool allow_console_login   #/usr/sbin/getsebool allow_console_login allow_cvs_read_shadow   运用setsebool指令能够设置布尔变量(改动其开关状况)。下面给出具体的比方来对其进行具体介绍,该比方标明怎么来对httpd_can_network_connect_db布尔变量来进行状况设置,该布尔变量操控httpd效劳器进程能否衔接后台数据库体系: (1)运用getsebool指令检查该布尔变量的缺省状况,标明该变量的缺省状况是off,即不答应httpd进程拜访后端数据库效劳器:   # /usr/sbin/getsebool httpd_can_network_connect_db httpd_can_network_connect_db > off   (2)运用setsebool指令改动该布尔变量的状况,然后使得httpd进程能够拜访数据库效劳器: #/usr/sbin/setsebool httpd_can_network_connect_db on 改动成功后,能够持续运用getsebool指令进行检查: #/usr/sbin/getsebool httpd_can_network_connect_db (3)上述状况改动仅仅暂时性的,一旦体系重启,该变量状况将改动回初始状况,因而,能够运用如下指令永久性改动状况: #/usr/sbin/setsebool -P httpd_can_network_connect_db on 2.网络效劳关于文件体系的拜访权限办理 关于大多数网络效劳来说,各种网络效劳缺省状况下都能运用具有各自的效劳类型的文件,比方nfs效劳能够运用nfs_t类型的文件,samba效劳能够运用cifs_t类型的文件。但是,因为NFS和CIFS这两个同享文件体系的特殊性,HTTP效劳和FTP效劳都不能运用符号这两个文件体系类型的文件,因而,在实际运用过程中,用户需求对操控他们的布尔变量进行显式的状况修正,如下所示: (1)关于Apache HTTP效劳器 答应拜访NFS文件体系,需求运转如下指令,修正布尔变量: #/usr/sbin/setsebool –P httpd_use_nfs on   答应拜访Samba文件体系,需求运转如下指令,修正布尔变量: #/usr/sbin/setsebool –P httpd_use_cifs on   (2)关于Samba效劳 答应同享NFS文件体系的文件,需求运转如下指令,修正布尔变量: #/usr/sbin/setsebool –P samb_share_nfs on   (3)关于FTP效劳器 答应拜访NFS文件体系,需求运转如下指令,修正布尔变量: #/usr/sbin/setsebool –P allow_ftpd_use_nfs on   答应拜访Samba文件体系,需求运转如下指令,修正布尔变量: #/usr/sbin/setsebool –P llow_ftpd_use_cifs on   (4)关于其他效劳 能够运用如下指令来查找相关的布尔变量并依据上述的比方进行相同修正即可: 查找与NFS相关的布尔变量: #/usr/sbin/semanage boolean –l | grep nfs   查找与Samba相关的布尔变量: #/usr/sbin/semanage bool
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章