一、selinux定义
- selinux是内核级加强型火墙,通过selinux对系统中的文件和资源添加标签,从而提高安全性,增强对系统的安全保护。
- 在某种程度上,它可以看作是与标准权限系统并行的权限系统。在常规模式下,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限(控制哪些用户对那些文件具有哪些访问权);selinux的另一个不同之处在于,若要访问文件,你必须具有普通访问权限的selinux访问权限。
二、selinux功能
(1)selinux为关闭状态时:
(2)当selinux为开启状态:
总结:
- 当selinux开启会给系统中的每一个文件及每一个程序加载安全上下文
- 特定的安全上下文的程序只能访问特定安全上下文的文件
- 当selinux开启会对服务本身相对不安全的功能加载开关sebool并且设定开关为关闭状态以保证服务安全性
- 当需要此功能时需要超级用户手动调节
三、selinux状态
- 查看selinux状态:getenforce
- 临时设置selinux状态:setenforce 0|1(0表示警告模式 1表示强制模式)
- 三种状态类型:
disabled | 关闭 | 完全禁用 |
---|---|---|
enforcing | 强制 | 收到警告但不可以访问 |
permisssive | 警告 | 收到警告但操作允许可以访问 |
4. 永久更改selinux状态:vim /etc/sysconfig/selinux
四、安全上下文
- 查看安全上下文:ls -Z 文件;ls -Zd 目录
- 临时更改安全上下文
(1)chcon -t 安全上下文 文件
(2)chcon -R -t 安全上下文 目录
- 永久更改目录或文件的安全上下文
(1)生成目录:
(2)设定jia用户登录ftp服务时默认家目录为/ftpuserdir,更改配置文件:
(3)当用jia用户登录ftp时/ftpuserdir中的内容无法访问,
(4)查看内核安全上下文列表:semanage fcontext -l
(5)固定/ftpuserdir目录的安全上下文信息:semanage fcontext -a -t public_content_t /ftpuserdir’(/.*)?’
注意:
此命令只添加列表信息,当前不生效,需要刷新restorecon -RvvF,更新完成后内容可以访问
五、sebool
- sebool:selinux对服务功能添加的开关
- 查看ftp的功能开关:getsebool -a | grep ftp
- 表示开启此匿名用户写的功能:setsebool -P ftpd_anon_wirte=1|on
例如匿名用户上传文件:
六、setrouble
- 提供系统selinux排错的软件为:setroubleshoot-server
- 分析日志并提供解决方法:sealert -a /var/log/audit/audit.log