`

selinux管理与应用

阅读更多
1.1 SElinux概述
SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控 制的实现,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。大部分使用 SELinux 的人使用的都是SELinux就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian 或 Gentoo。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
1.1.1 SElinux特点
1.MAC
对访问的控制彻底化,对所有的文件、目录、端口的访问都是基于策略设定的,可由管理员时行设定。
2.RBAC
对于用户只赋予最小权限。用户被划分成了一些role(角色),即使是root用户,如果不具有sysadm_r角色的话,也不是执行相关的管理。哪里role可以执行哪些domain,也是可以修改的。
3.安全上下文
当启动selinux的时候,所有文件与对象都有安全上下文。进程的安全上下文是域,安全上下文由用户:角色:类型表示。
(1)系统根据pam子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文
(2)rpm包安装会根据rpm包内记录来生成安全上下文,
(3)如果是手工他建的,会根据policy中规定来设置安全上下文,
(4)如果是cp,会重新生成安全上下文。
(5)如果是mv,安全上下文不变。
1.1.2 安全上下文格式
安全上下文由user:role:type三部分组成,下面分别说明其作用:
1.user identity:类似linux系统中的UID,提供身份识别,安全上下文中的一部分。
三种常见的user:
user_u-:   普通用户登录系统后预设;
system_u-:开机过程中系统进程的预设;
root-:    root登录后预设;
在targeted policy中users不是很重要;
在strict policy中比较重要,的有预设的selinux users都以 "_u"结尾,root除外。
2.role
文件与目录的role,通常是object_r;
程序的role,通常是system_r;
用户的role,targeted policy为system_r;
strict policy为sysadm_r,staff_r,user_r
用户的role,类似于系统中的GID,不同的角色具备不同的权限;用户可以具备多个role;但是同一时间内只能使用一role;
role是RBAC的基础;
3.type
type:用来将主体与客体划分为不同的组,组每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境。
当一个类型与执行的进程关联时,该type也称为domain,也叫安全上下文。
域或安全上下文是一个进程允许操作的列表,决字一个进程可以对哪种类型进行操作。
1.1.3 SElinux配置文件
vi /etc/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 - SELinux is fully disabled.
SELINUX=enforcing
#SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
#SELINUX有「disabled」「permissive」,「enforcing」3种选择。
1.模式的设置
enforcing:强制模式,只要selinux不允许,就无法执行
permissive:警告模式,将该事件记录下来,依然允许执行
disabled:关闭selinux;停用,启用需要重启计算机。

2.策略的设置
targeted:保护常见的网络服务,是selinux的默认值;
stric:提供RBAC的policy,具备完整的保护功能,保护网络服务,一般指令及应用程序。
策略改变后,需要重新启动计算机。
也可以通过命令来修改相关的具体的策略值,也就是修改安全上下文,来提高策略的灵活性。

3.策略的位置
/etc/selinux/<策略名>/policy/

1.2 SElinux命令介绍
1.2.1 查询SElinux状态命令
1.查询selinux状态
[root@redhat ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

2.查询selinux激活状态
[root@redhat ~]# selinuxenabled
[root@redhat ~]# echo $?
0
如果为-256为非激活状态。
1.2.2 切换SElinux类型
1.切换成警告模式
[root@redhat ~]# setenforce 0或setenforce permissive
[root@redhat ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted

[root@redhat ~]# getenforce
Permissive

2.切换成强制模式
[root@redhat ~]# setenforce 1
[root@redhat ~]# getenforce
Enforcing
注:使用setenforce切换enforcing与permissive模式不需要重启计算机。
1.2.3 检查安全上下文
1.检查帐号的安全上下文
[root@redhat ~]# id -Z
root:system_r:unconfined_t:SystemLow-SystemHigh

2.检查进程的安全上下文
[root@redhat home]# ps -Z
LABEL                             PID TTY          TIME CMD
root:system_r:unconfined_t:SystemLow-SystemHigh 2383 pts/0 00:00:00 bash
root:system_r:unconfined_t:SystemLow-SystemHigh 2536 pts/0 00:00:00 ps

3.检查文件与目录的安全上下文
[root@redhat home]# ls -Z
drwx------  tom  tom  system_u:object_r:user_home_dir_t tom
1.2.4 修改文件/目录安全上下文与策略
1.chcon命令
chcon -u [user]  对象
      -r [role]
      -t [type]
      -R 递归
示例:
chcon -R -t samba_share_t /tmp/abc
注:安全上下文的简单理解说明,受到selinux保护的进程只能访问标识为自己只够访问的安全上下文的文件与目录。
例如:上面解释为使用smb进程能够访问/tmp/abc目录而设定的安全上下文。

2.getsebool命令
获取本机selinux策略值,也称为bool值。
getsebool -a  命令同sestatus -b
[root@redhat files]# getsebool -a
NetworkManager_disable_trans --> off
allow_cvs_read_shadow --> off
allow_daemons_dump_core --> on
allow_daemons_use_tty --> off
allow_execheap --> off
allow_execmem --> on
allow_execmod --> off
allow_execstack --> on
allow_ftpd_anon_write --> off   /*是否允许ftp匿名访问*/
allow_ftpd_full_access --> off
...
httpd_disable_trans --> off    /*只要有disable_trans关闭保护*/

说明:selinux的设置一般通过两个部分完成的,一个是安全上下文,另一个是策略,策略值是对安全上下文的补充。

3.setsebool命令
setsebool -P allow_ftpd_anon_write=1
-P 是永久性设置,否则重启之后又恢复预设值。
示例:
[root@redhat files]# setsebool -P allow_ftpd_anon_write=1
[root@redhat files]# getsebool allow_ftpd_anon_write
allow_ftpd_anon_write --> on
说明:如果仅仅是安全上下文中设置了vsftpd进程对某一个目录的访问,配置文件中也允许可写,但是selinux中策略中不允许可写,仍然不可写。所以基于selinux保护的服务中,安全性要高于很多。

1.3 SElinux应用
selinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。
1.3.1 SElinux与samba
1.samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
2.修改策略(只对主目录的策略的修改)
setsebool -P samba_enable_home_dirs=1
setsebool -P allow_smbd_anon_write=1
getsebool 查看
samba_enable_home_dirs -->on
allow_smbd_anon_write --> on /*允许匿名访问并且可写*/

1.3.2 SElinux与nfs
selinux对nfs的限制好像不是很严格,默认状态下,不对nfs的安全上下文进行标记,而且在默认状态的策略下,nfs的目标策略允许nfs_export_all_ro
nfs_export_all_ro
nfs_export_all_rw值为0
所以说默认是允许访问的。
但是如果共享的是/home/abc的话,需要打开相关策略对home的访问。
setsebool -P use_nfs_home_dirs boolean 1
getsebool use_nfs_home_dirs

1.3.3 SElinux与ftp
1.如果ftp为匿名用户共享目录的话,应修改安全上下文。
chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming

2.策略的设置
setsebool -P allow_ftpd_anon_write =1
getsebool allow_ftpd_anon_write
allow_ftpd_anon_write--> on

1.3.4 SElinux与http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。
1.修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。
2.修改策略:
setsebool -P allow_ftpd_anon_write = 1
setsebool -P allow_httpd_anon_write = 1
setsebool -P allow_<协议名>_anon_write = 1
关闭selinux对httpd的保护
httpd_disable_trans=0

1.3.5 SElinux与公共目录共享
如果ftp,samba,web都访问共享目录的话,该文件的安全上下文应为:
public_content_t
public_content_rw_t
其它各服务的策略的bool值,应根据具体情况做相应的修改。

1.3.6 SElinux配置总结
以上内容的selinux的配置实验还需要进行相关验证,以便在实际环境中能够直接应用,相关的内容还需要继续补充。
对于多于牛毛的策略,可以用过滤还查看一个服务相当开启哪些策略。

分享到:
评论

相关推荐

    SElinux管理及应用

    ChinaUNIX沙龙 SELinux管理及应用 Redhat Enterprise Linux 5

    SELinux管理及应用

    selinux的管理及应用课件^_^,主题大纲:1 、 SELinux 简介 | 2 、 SELinux 特点 | 3 、 SELinux 配置文件小解 | 4 、 Security context 安全上下文 | 5 、 SELinux 运行机制 | 6 、 SELinux 的一些命令 | 7 ...

    SELinux详解

    本书主要是为那些需要使用安全增强的Linux(SELinux)的人准备的,他们主要对理解、编写、修改和/或管理SELinux策略感兴趣。如果你想使用SELinux增强你的应用程序、系统和网络的安全,那么你就是本书的合适读者了。 ...

    selinux-notebook:SELinux笔记本

    SELinux笔记本 介绍 本笔记本应有助于说明: SELinux及其生活目的。 LSM / SELinux体系结构,其支持服务以及如何在GNU / Linux中实现... 希望它将显示所有SELinux组件如何链接在一起以及如何实现SELinux感知的应用程

    SELinux by Example

    1.内核策略语言部分旨在作为内核策略语言语句和规则的参考,并附有来自参考策略源的...2. **策略构建与管理**:详细阐述如何创建、安装、更新和调试SELinux策略模块,使用工具如`semodule`、`checkpolicy`、`audit2all

    selinux详解

    本书主要是为那些需要使用安全增强的Linux(SELinux)的人准备的,他们主要对理解、编写、修改和/或管理SELinux策略感兴趣。如果你想使用SELinux增强你的应用程序、系统和网络的安全,那么你就是本书的合适读者了。

    SELinux 特权用户管理的设计与应用 (2011年)

    分析SELinux 体系在当前Linux 类操作系统中的应用,基于角色的访问控制模型与可信计算,提出新的特权用户标识定义,利用该定义给出一种安全Linux 操作系统特权用户管理方案。通过UID 与角色的二维标识方法解决特权...

    (预览版1-5页)2023网络建设与运维/网络搭建与应用/网搭Linux部分题解方法-Part4

    2023网络建设与运维/网络搭建与应用/网搭Linux部分题解方法 原创"极简"与"效率"做题技巧,拒绝硬背死背命令 该链接为Part4!共13页 目录: 模块五:Samba服务 1-1."极简"做法:用户与用户组管理 1-2."效率"做法:...

    服务器配置与管理论文.docx

    [1]杨云等.Linux网络服务器配置管理项目实训教程[M]北京:中国水利水电出版社2010.07 [2]么丽颖.Linux系统管理和应用[M]北京:中国铁道出版社2011.08 [3]谢树新.Linux网络服务器配置与管理项目教程[M]北京:科学出版...

    k8s 本地一键安装教程

    K8s 是一个高效的、灵活的开源平台,用于自动化容器化应用的部署、缩放和运绩管理 操作系统要求: SSH 可以访问所有节点。 所有节点的时间同步。 sudo/curl/openssl 应在所有节点使用。 Red Hat 在其 Linux 发行版本...

    《Linux系统管理》课程标准.doc

    (2)课程衔接 在课程设置上,前导课程有《计算机网络基础》,《网络互联技术》,《交换机路由器的 配置与管理》,后续课程有《嵌入式系统与应用》、《Linux嵌入式编》等。 二、学习目标 通过本课程学习,使学生...

    Linux服务器配置与管理:linux权限基础.pptx

    第11个字符:用来表示是否有一个可替换的访问控制措施应用在该文件上。当为一个空格时,表示系统没有可替换的访问控制措施;当为“.”字符时,代表该文件使用了SElinux安全上下文,且未使用其他的访问控制措施;当为“+”...

    Linux服务器安全策略详解 pdf[part2]

    第四部分是Linux下开源数据库安全以及Linux下新闻组服务器构建、网络钓鱼的防范、Linux无线网络构建及其安全策略、使用Linux安全审计以及使用SeLinux保护Linux服务器的方法;第五部分是1个附录,介绍Linux服务器应急...

    Linux服务器安全策略详解 pdf[part1;分6部分下载]

    第四部分是Linux下开源数据库安全以及Linux下新闻组服务器构建、网络钓鱼的防范、Linux无线网络构建及其安全策略、使用Linux安全审计以及使用SeLinux保护Linux服务器的方法;第五部分是1个附录,介绍Linux服务器应急...

    Linux 服务器安全策略详解 pdf[part3]

    第四部分是Linux下开源数据库安全以及Linux下新闻组服务器构建、网络钓鱼的防范、Linux无线网络构建及其安全策略、使用Linux安全审计以及使用SeLinux保护Linux服务器的方法;第五部分是1个附录,介绍Linux服务器应急...

    Fedora 7系统学习教程

    用于 SELinux 的新的图形化管理工具 system-config-selinux 默认被安装。system-config-securitylevel 中的 SELinux 开关设置被移除并移动到了这个工具中。 &lt;br&gt; 本次发布的内核中包含了新的火线(FireWire)协议...

    docker.tar.gz

    可以在断网情况下CentOS7版本安装docker,tar -zxvf 解压后,全装上启动即可 Docker特点 标准:Docker创建了容器的...Control Groups资源管理(cpu,内存等) Selinux安全 Namespace,进程隔离(把某些进程隔离起来,让它独立)

    RedHat Enterprise Linux 5 Update 2 x64-XiSO[bit torrent]

    - 更新的管理工具、应用程序和对笔记本的支持 - 改进的 ACPI 支持,包括 Suspend to Disk - 智能卡登录,包括 PKI/Kerberos 认证 - 集成的多媒体支持 - 增强的即插即用支持 - Network Manager 提供自动的有线和无线...

    RH-280OpenShift企业管理视频.zip

    9.简单使用客户端创建应用 10.组件及其关系介绍 11.手动安装前的准备工作 12.安装配置broker基础消息服务-安装mongodb服务 13.安装配置broker-安装ActiveMQ服务 14.安装配置broker基础消息服务 15.安装broker主机 16...

Global site tag (gtag.js) - Google Analytics