SElinux
目录
1. SElinux基本安全概念
- SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制
- 在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 ,并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权 SELINUX 的另一个不同之处在于 , 若要访问文件 , 你必须具有普通访问权限和 SELINUX 访问权限。因此 , 即使以超级用户身份 root 运行进程 , 根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源限 ) 标签。
2. selinux功能
- selinux:内核级加强型防火墙
- 当selinux开启会给系统的每一个文件及程序加载安全上下文,特定安全上下文的程序只能访问特定安全上下文的文件
- 当selinux 开启会对服务本身相对不安全功能加载开关sebool,并且设定开关为关闭状态以保证服务安全性;当需要此功能时需要超级用户手动调节
在selinux关闭状态下:
1.创建/mnt/testfile文件,文件的安全上下文为空文件
2.将/mnt/testfile文件移动到ftp默认发布目录中,可以被客户机访问,并且客户可以上传文件
3.ftp程序安全上下文为空
在selinux开启状态下:
1.编写/etc/sysconfig/selinux配置文件,开启selinux,重启系统
2.创建/mnt/linuxfile,查看文件安全上下文,将文件移动到ftp默认发布目录,查看默认发布目录安全上下文,与/mnt/linuxfile安全上下文不一致
3.在客户端访问ftp,无法访问到linuxfile文件,同时不能上传文件
3. selinux状态
- 查看selinux状态:getenforce
- 状态类型:
状态 | 解释 |
---|---|
Disabled | 关闭 |
enforcing | 强制模式 |
permissive | 警告模式 |
setenforce 0/1 | 临时设定selinux状态;0表示警告模式,1表示强制模式 |
- 永久设定selinux状态:编写/etc/sysconfig/selinux文件,修改配置文件后要重启系统
4. 安全上下文
4.1 安全上下文的临时更改
- chon -t <安全上下文> 文件
- chon -R -t <安全上下文> 目录
示例:
查看/var/ftp目录下的安全上下文,linuxfile的安全上下文为mnt_t,修改安全上下文为public_content_t,再次查看安全上下文,修改成功
4.2 永久更改安全上下文
1.查看/ftpuserdir目录和/var/ftp目录的安全上下文分别为:default_tpublic_content_t
2.查看内核安全上下文列表,/ftpuserdir目录无信息,/var/ftp目录有列表信息
3.给/ftpuserdir目录添加列表信息,指定安全上下文:public_content_t ,再次查看列表信息,添加成功。(/.*)?表示目录中的文件也随之改变
4.查看安全上下文,当下不生效,刷新文件,再次查看,/ftpuserdir目录的安全上下文为public_content_t
5. sebool
- sebool是selinux对服务功能可以添加的开关
- getsebool -a | grep ftp #查看ftp功能的开关
- setsebool -P <功能>=[1|0|on|off] ##1和 on 表示开启,0和off表示关闭; -P表示永久生效
6. setrouble
1.在主机中安装setroubleshoot软件,用来selinux的排错;默认已安装,不确定可搜索软件包,再次安装
2.分析日志并提供解决方案