SELinux:(Security-Enhanced Linux,内核型的加强型防火墙)是一种访问控制体系,它是Linux的一个内核模块,也是Linux的一个安全子系统。
SELinux开启时,会给系统中每一个文件和程序加载安全上下文,特定安全上下文的程序只能访问与之对应的文件。
SELinux会对服务本身相对不安全的功能开启sebool,并且设定开关为关闭状态,以保证服务的安全性。若要开启某个功能,需root用户手动调节。
SELinux的状态
SElinux共有三种状态:enforcing
、permissive
和disabled
。
查看SELinux状态的命令:getenforce
临时修改SELinux的状态
- 命令:
setenforce 0|1
永久修改SELinux的状态
- 修改配置文件
/etc/sysconfig/selinux
修改语句:SELINUX=disabled|enforcing|permissive
注意:将SELinux的状态由disabled转变为enforcing或permissive时,需重启系统,反过来也成立。
SELinux对文件的影响
SELinux对文件有影响,下面通过比较SELinux关闭和开启时ftp服务器上的可访问目录来进行对比。
SELinux处于关闭状态时
在配置文件/etc/sysconfig/selinux
中,令SELINUX=disabled
注意:修改完selinux的状态后,要令其生效,需要重启系统。
重启系统后,查看SELinux的状态:
在服务器的/mnt目录中建立文件file,file的安全上下文为空。
[root@RHTL8_clone ~]# touch /mnt/file ##建立文件file
[root@RHTL8_clone ~]# ls /mnt/
file pts
[root@RHTL8_clone ~]# ls -Z /mnt/file ##查看file文件的安全上下文
ftp程序的安全上下文为空。
将file移动到ftp默认发布目录中可被客户访问到,用户可以上传文件。
[root@RHTL8_clone ~]# mv /mnt/file /var/ftp
在用户端匿名访问RHTL8_clone的ftp目录,可正常访问
普通用户可上传文件
SELinux处于开启状态时
在配置文件/etc/sysconfig/selinux
中,令SELINUX=enforcing
重启系统后,查看SELinux的状态:
在服务器的/mnt目录中建立文件file2,查看file2的安全上下文,其类型为:mnt_t
[root@RHTL8_clone ~]# touch /mnt/file2 ##建立文件file2
[root@RHTL8_clone ~]# ls -Z /mnt/file2 ##查看file2的安全上下文
查看ftp程序的安全上下文,其类型为
将file2移动到ftp默认发布目录中,查看ftp默认发布目录中文件的安全上下文,发现file2的类型与其余吻文件不同。
[root@RHTL8_clone ~]# mv /mnt/file2 /var/ftp ##移动file2
[root@RHTL8_clone ~]# ls -Z /var/ftp ##查看安全上下文
在用户端匿名访问RHTL8_clone的ftp目录,目录中并没有file2文件。
普通用户可上传文件
安全上下文
临时更改安全上下文
命令:
chcon -t 安全上下文 文件
chcon -R -t 安全上下文 目录
查看ftp目录,未显示file2
[root@linux7_clone ~]# lftp 192.168.1.220 ##未修改前
lftp 192.168.1.220:~> ls
-rw-r--r-- 1 0 0 0 Feb 24 11:14 file
drwxr-xr-x 2 0 0 6 Aug 12 2018 pub
lftp 192.168.1.220:/> quit
在ftp服务器中修改file2的安全上下文
[root@RHTL8_clone ~]# chcon -R -t public_content_t /var/ftp/file2
查看ftp目录,显示file2
[root@linux7_clone ~]# lftp 192.168.1.220 ##修改后
lftp 192.168.1.220:~> ls
-rw-r--r-- 1 0 0 0 Feb 24 11:14 file
-rw-r--r-- 1 0 0 0 Feb 24 13:25 file2
drwxr-xr-x 2 0 0 6 Aug 12 2018 pub
lftp 192.168.1.220:/> quit