zoukankan      html  css  js  c++  java
  • SELinux

    SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。

    查看一个文件的上下文

    查看进程

    # ps axZ | grep httpd

    查看目录的上下文

    # ls -ldZ /var/www/html/

    创建一个目录

    # mkdir /www

    把www重定向到目录www下的index.html的文件里面

    # echo www > /www/index.html

    查看

    # ls /www/

    创建软连接

    # ln -s /www www

    关闭防火墙

    访问主机名IP

    给/www添加权限

    重启服务

     # systemctl restart httpd

    访问/www找不到

     查看进程

    # ps axZ | grep httpd

    查看两个文件的上下文

    # ls -ldZ /var/www/html/

    # ls -ldZ /www

    修改/www的上下文

    # chcon -R -t httpd_sys_content_t /www/

    # chcon -R --reference=/var/www/html /www 

    再次访问,可以访问了。

    以上都是临时修改

    重置上下文

    # restorecon -R /www/

     

    查看系统里的所有上下文

    # semanage fcontext -l

    查看具体的某个用grep

    # semanage fcontext -l | grep '/var/www/html/'

    添加上下文-a

     # semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'

    删除上下文-d

    # semanage fcontext -d -t httpd_sys_content_t '/www(/.*)?'

    通用的上下文

    # chcon -R -t public_content_t /www/

    添加Apache的端口

    # vi /etc/httpd/conf/httpd.conf 

    添加Apache的端口808

    重启失败

    查看所有端口的上下文

    #semanage port -l

    查看80端口的上下文

    # semanage port -l | grep '<80>'

    添加端口

    # semanage port -a -t http_port_t -p tcp 808

    重启httpd服务无报错

    删除端口

    # semanage port -d -t http_port_t -p tcp 808

    setenforce临时生效

    查看selinux模式

    # getenforce 

    修改配置文件临时生效

    # vi /etc/sysconfig/selinux 

     

     两个配置文件,修改哪一个都可以

    如果搭建了一个服务,然后在客户端上往里面写东西,写不进去,
    应该从以下三个方面检查:
    1、配置文件里面是否允许写
    2、文件系统是否允许写
    3、从selinux进行检查(上下文|布尔值)

    安装服务

    #yum install vsftpd ftp -y

    重启服务

    #systemctl restart vsftpd

    在普通用户下创建几个文件

    $ touch aa bb cc dd ee ff

    匿名用户登录ftp

    上传文件,没有成功

    修改配置文件

    # vi /etc/vsftpd/vsftpd.conf 

    允许匿名用户上传,写入

     

    重启服务

    #systemctl restart vsftpd

     修改配置文件之后还是不能上传

    修改权限

    查看权限

    # ls /var/ftp/ -ld

     创建一个目录,赋予权限、

    # chown ftp.ftp xx/

     

     再次上传,还是失败

    关闭selinux

     # setenforce 0

    上传成功

     

    布尔值

    查看系统中所有的布尔值

     # getsebool -a

    查看ftp的布尔值

    # getsebool -a | grep ^ftp

     

    开启布尔值

    # setsebool ftpd_anon_write 1 or on

    查看

    # getsebool -a | grep ftpd_anon_write 

     

    关闭布尔值

    # setsebool ftpd_anon_write 0 or off

    设置成永久生效

     # setsebool -P ftpd_anon_write on

     

    图形化界面设置selinux

    查看需要安装的图形化包

    # yum whatprovides */system-config-selinux

    安装

    # yum install policycoreutils-gui-2.2.5-11.el7.x86_64 -y

    开启selinux图形化界面

    # system-config-selinux &

  • 相关阅读:
    【技能】Ext.Viewport 实现左三右一排列方式。
    Android之——短信的备份与还原
    草根做项目的经验分享一
    【转】每天一个linux命令目录
    【转】每天一个linux命令(61):wget命令
    【转】每天一个linux命令(60):scp命令
    【转】每天一个linux命令(59):rcp命令
    【转】每天一个linux命令(58):telnet命令
    【转】每天一个linux命令(57):ss命令
    【转】每天一个linux命令(56):netstat命令
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/9735099.html
Copyright © 2011-2022 走看看