Linux从入门到精通——selinux

##selinux##  安全增强型linux  

selinux是最最全面的的安全系统,所以会对文件和服务有一定的限制。

以ftp服务为例:
1.环境的设定
   因为之前学的是ftp,所以环境会对后面的实验有所影响,要先还原一下
   删除 /etc/vsftpd/ 下的所有文件
   再reinstall一下vsftpd
   再重新启动一下systemctl restart vsftpd
   这样环境就和以前一样了

2.selinux的开启及级别设定
   getenforce   ##查看selinux的状态
   setenforce   ##设定selinux的状态  selinux 0 (permissive) ; selinux 1 (enforcing)
        ##只能在这两种状态相互切换。当要从disabled切换到任意一个时,要编辑vim /etc/sysconfig/selinux这个文件。强制有警告且不能访问,警告有警告但是可以访问。对内核更改,修改后需要reboot

    (1)Disabled      

    cd /mnt     
    touch file             ##在mnt下建立的文件的标识是mnt_t,而在/var/ftp的文件的标识是public_content_t   在selinux关闭的状态下可以查看
    mv file /var/ftp
    
    lftp 172.25.254.110       ##匿名用户登陆
    lftp 172.25.254.110:~>ls
    drwxrwxrwx   2 0   0           6 Aug 03 07:00 pub
    -rw-r--r--   1 0   0           0 Aug 03 07:01 file
    lftp 172.25.254.110:~>quit

    ls -Z /var/ftp
    -rw-r--r-- root root ?                                file
    drwxr-xr-x root root ?                                pub

    lftp 172.25.254.110 -u student   ##指定用户登陆
        可删除可写可建立文件

    ps auxZ| grep vsftpd
    -                               root      3781  0.0  0.0 112644   956 pts/0    S+   15:36   0:00 grep --color=auto vsftpd

    注意:当这个enforce为disabled的时候,在mnt里面创建一个文件,移动到ftp下后,可以查看到移动的文件,但是文件的前面有 ? ,当显示/var/ftp的属性的时候,看到中间有一大段是空白的,缺失的
   
    (2)
    vim /etc/sysconfig/selinux
    改为enforcing
    重启系统reboot     ##这次开机就会别较慢

    touch file             ##在mnt下建立的文件的标识是mnt_t,而在/var/ftp的文件的标识是  public_content_t   在selinux开启的状态下不能查看
    mv file /var/ftp
    
    再重复上面操作的时候,?和缺失处就会出现东西
    现在touch新的文件mv以后,看不见了;然后现在用用户登录,发现上传下载不了文件。
    getenforce  -->   Enforing(强制的)
    
    ps auxZ| grep vsftpd
    system_u:unconfined_r:ftpd_t:s0:c0.c102     root      3781  0.0  0.0 112644   956 pts/0    S+   15:36   0:00 grep --color=auto vsftpd
    注意:现在上面多出来的那一行就称为selinux的安全上下文

    
    ls -Z /var/ftp
    -rw-r--r-- root root  system_u:object_r:public_content_t:s0   file
    注意:这个下面也加上了安全上下文

    注意:这个文件和程序的安全上下文要一致才能访问  ftpd_t程序这个只能访问public_content_t文件,而当selinux为enforcing后,touch的那个文件的安全上下文为mnt_t,不匹配所以lftp无法查看这个文件。使系统更加安全。开启enforcing这个以后,系统会把不安全的权限全部关掉。

    优点:程序访问文件的时候,必须安全上下文一致才能访问;把程序不安全的功能默认关闭
                          服务本身功能和服务访问文件的影响

3.修改安全上下文


    (1)目录的安全上下文和文件的安全上下文不对应,不能访问文件
    ls -Z /var/ftp/
    -rw-r--r-- root root  system_u:object_r:public_content_t:s0   file
    -rw-r--r-- root root  unconfined_u:object_r:mnt_t:s0   student  ##更改之前
 
    修改方法:
    chcon -t public_content_t /var/ftp/student   ##这种更改是临时的,reboot之后文件安全上下文会恢复
    -rw-r--r-- root root  system_u:object_r:public_content_t:s0   file
    -rw-r--r-- root root  system_u:object_r:public_content_t:s0   student  ##更改之后

    (2)修改默认目录及其下的文件
    vim /var/sysconfig/selinux
    chcon -t public_content_t /westos/ -R  ##递归修改文件的安全上下文

    注意:为什么自己更改的目录的安全上下文会在reboot之后恢复,而/var/ftp/的却不会改变?
    是因为/var/ftp/的安全上下文在内核上面有标识,叫做安全上下文列表(永久改变)

    semanage fcontext -l | grep /var/ftp/    ##查看是否有安全上下文列表,列表中有/var/ftp
    /var/ftp/bin(/.*)?                                 all files                       system_u:object_r:bin_t:s0 
    /var/ftp/etc(/.*)?                                 all files          system_u:object_r:etc_t:s0 

        semanage fcontext -l | grep /student    ##我们自己的没有安全上下文列表,因此会恢复成默认,如果想让我们自己的文件或目录的安全上下文也不变的话,就也要加到这个安全上下文列表里。

    /var/ftp/bin(/.*)?   ##后面表示目录本身和里面所有的内容的安全上下文设定为设定的

    semanager fcontext -a -t public_content_t /student(先不写后面的内容)  
    restorecon  -F(刷新)vv(显示过程)R(递归)  ##只是改了内核的安全上下文列表里面的内容,要刷新,同步到目录上去。    但是这样做目录下的文件安全上下文没有被更改,因为安全上下文列表没有设定

    semanager fcontext -a -t public_content_t /student(/.*)?  
    restorecon  -F(刷新)vv(显示过程)R(递归)  ##只是改了内核的安全上下文列表里面的内容,要刷新,同步到目录上去。    这样做目录下的文件安全上下文也就被更改了,因为安全上下文列表有设定。
        注意:要把上面的删除  semanager fcontext -d /student  以后,再重新加安全上下文列表

4.sebool
    getsebool -a | grep sebool    ##发现一些功能是关闭的
    setsebool -P(永久生效) ftp_home_dir on  ##开启某一个功能

5.selinux的排错信息
  查看报错信息    cat /var/log/audit/audit.log

   /var/log/audit/audit.log和/var/log/messages的区别是:前者只会说明错误;后者不仅会说明错误,还会提供解决方案,会有解决方案的原因是有settrouble这个插件

猜你喜欢

转载自www.cnblogs.com/wf-aiyouwei/p/9464662.html