SELinux当前运行状态:getenforce
设置运行状态: sudo setenforce [Enforcing | Permissive | 1 | 0]
SELinux的工作模式一共有三种 enforcing、permissive和disabled
①enforcing 强制模式:只要是违反策略的行动都会被禁止,并作为内核信息记录 ②permissive 允许模式:违反策略的行动不会被禁止,但是会提示警告信息
③disabled 禁用模式:禁用SELinux,与不带SELinux系统是一样的,通常情况下我们在不怎么了解SELinux时,将模式设置成disabled,这样在访问一些网络应用时就不会出问题了
查看拒绝信息:getsebool [-a]、getsebool allow_execheap
查看允许的服务:/var/log/messages、/usr/bin/audit2allow
查看用户安全上下文:id 1. 检查帐号的安全上下文
root:system_r:unconfined_t:SystemLow-SystemHigh
可以查看selinux错误日志:sealert -a /var/log/audit/audit.log 3、修改SELinux设置,理解设置影响哪方面的安全? 修改安全上下文:chcon –R chcon -R -tsamba_share_t /tmp/abc
注:安全上下文的简单理解说明,受到selinux保护的进程只能访问标识为自己只够访问的安全上下文的文件与目录。
例如:上面解释为使用smb进程能够访问/tmp/abc目录而设定的安全上下文。 修改策略:setsebool –P setsebool命令
setsebool –P allow_ftpd_anon_write=1
-P 是永久性设置,否则重启之后又恢复预设值。
示例:
[root@redhatfiles]# setsebool -P allow_ftpd_anon_write=1
[root@redhatfiles]# getsebool allow_ftpd_anon_write
allow_ftpd_anon_write--> on
说明:如果仅仅是安全上下文中设置了vsftpd进程对某一个目录的访问,配置文件中也允许可写,但是selinux中策略中不允许可写,仍然不可写。所以基于selinux保护的服务中,安全性要高于很多。其他修改设置方面,如http、ftp、nfs等。。。。 nfs
selinux对nfs的限制好像不是很严格,默认状态下,不对nfs的安全上下文进行标记,而且在默认状态的策略下,nfs的目标策略允许nfs_export_all_ro nfs_export_all_ro
nfs_export_all_rw值为0
所以说默认是允许访问的。但是如果共享的是/home/abc的话,需要打开相关策略对home的访问。
setsebool -Puse_nfs_home_dirs boolean 1 getsebooluse_nfs_home_dirs ftp
如果ftp为匿名用户共享目录的话,应修改安全上下文。 chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming 策略的设置
setsebool -P allow_ftpd_anon_write =1 getsebool allow_ftpd_anon_write allow_ftpd_anon_write--> on http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。 修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。 修改策略:
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 5、查看源代码。
6、C:\\Windows\\WinSxS\\amd64_microsoft-windows-s..ytools-ex.resources_31bf3856ad364e35_6.2.9200.16384_zh-cn_be045691f7e110cb 7、%SystemRoot%\\System32\\Wbem 8、/etc/selinux下的target目录的作用:
/etc/selinux/是存放所有策略文件和主要配置文件的目录。其中策略文件分为两种,一种是严格(strict)策略,一种就是target目标策略,它定义了只有目标进程受到SELinux限制,非目标进程就不会受到SELinux限制,有限策略模式下,9个(可能更多)系统服务受SELinux监控,几乎所有的网络服务都受控。配置
文件是/etc/selinux/config,一般测试过程中使用“permissive”模式,这样仅会在违反SELinux规则时发出警告,然后修改规则,最后由用户觉得是否执行严格“enforcing”的策略,禁止违反规则策略的行为。
9、请谈谈你对Selinux架构和Flask体系结构的认识。
Selinux在Linux内核实现了灵活的和细粒度的非自主存取控制,并能够灵活的支持多种安全策略。他的最初实现形式是作为一个特殊的核心补丁。
Selinux的安全体系结构称之为Flask,在Flask体系结构中,安全策略和通用接口被封装在了安全服务器中,他是一个内核子系统。
Flask由两部分组成,即策略和实施,策略封装在安全服务器中,实施由对象管理器具体执行。
系统内核的对象管理器执行系统的具体操作,当需要对安全性进行判断时,向安全服务器提出请求。对象管理器只关心SID,请求到达服务器后,实现与安全上下文的映射并进行计算,然后将决定的结果返回给对象管理器。
系统中的安全请求和决定由三种情况,分别是:标签决定,存取决定和多实例化决定。安全服务器是内核的子系统,用于实现对策略的封装并提供通用接口。Selinux的安全服务器实现了一种混合的安全策略,包括类型实施,基于角色的访问控制和可选的多级别安全性。
Flask结构还提供了一个访问控制向量缓存(AVC)模块,允许对象管理器缓存访问向量,减小整体性能的损耗。