博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selinux
阅读量:4840 次
发布时间:2019-06-11

本文共 3693 字,大约阅读时间需要 12 分钟。

selinux总结

    DAC(自由访问控制):环境下进程是无束缚的
    MAC(强制访问控制):环境下策略的规则决定控制的严格程度

selinux的四种工作类型:

    (1)strict:centos5,每个进程都受到selinux的控制
    (2)targrtd:用来保护常见 的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程。
    (4)minimum :centos7,修改targeted,只对选择的网络服务
    注:targeted为默认类型,minimum和mls稳定性不足,未加以应用,strict已不再使用。

selinux中的五个元素:
    (1)User:指定登陆系统的用户类型,多数本地进程都属于自由(unconfined)进程
    (2)Role:定义文件,进程和用户的用途:文件:object_r,进程和用户:system_r
    (3)Type:指定数据类型规则中定义何种进程类型访问何种文件Target策略基于type实现多服务公用public_content_t
    (4)Sensitivity:限制访问的需要,由组织定义的分层安全级别,一个对象有且只有一个sensitivity
    (5)Category:对于特定组织划分不同的分类,一个对象可以有多个categroy

selinux的状态:
    enforcing:强制,每个受限的进程都必须受限
    permissive:允许,每个受限的进程违规操作不会被禁止,但是会被记录于审计日志。
    disabled:禁用
    selinux状态设置的相关命令:
    getenforce : 获取selinux当前状态
    sestatus :查看selinux状态
      setenforce 0|1
        0:设置为permissive
        1:设置为enforcing
    注:仅限制在selinux开启状态下切换,如果设置为disable改为其他两个选项则需要重启后生效。
  selinux相关配置文件:/boot/grub/grub.conf
            /etc/selinux/config
            /etc/sysconfig/selinux

 

  查看文件标签:ls -Z ps -Z

  给文件重新打标签:chcon [option]..[-u user] [-r role] [-t type] file

    例如: chcon -t httpd_sys_content_t file

      -R:递归打标签
   恢复目录或文件默认的安全上下文:restorecon [-R] /path/to/somewhere
      例如: restorecon -Rv /var/ftp/pub/

安全上下文的查询和修改:
  (1)查询:
      semanage fcontext -l 查看所有服务默认的服务可以配合|grep 使用。
  (2)添加安全上下文:semanage fcontext -a -t httpd_sys_content_t '/testdir(/.*)?'
      例如: semanage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?'
  (3)删除安全上下文:
      semanage fcontext -d -t httpd_sys_content_t '/testdir(/.*)?'
    例如:semanage fcontext -d -t public_content_rw_t '/var/ftp/pub(/.*)?'

以apach的启用为例:    (1)首先我们安装httpd 并启动服务,关闭防火墙。    (2)在touch /var/www/html/index.html 并编辑内容    (3)[root@localhost html]# cp index.html /app[root@localhost html]# ls -Z /app/index.html -rw-r--r--. root root unconfined_u:object_r:etc_runtime_t:s0 /app/index.html(4)[root@localhost html]# mv /app/index.html .mv: overwrite ‘./index.html’? y[root@localhost html]# ls -Z-rw-r--r--. root root unconfined_u:object_r:etc_runtime_t:s0 index.html此时我们会发现网页是不能访问的。(5)解决方法[root@localhost html]# restorecon -Rv /var/www/html/index.html restorecon reset /var/www/html/index.html context unconfined_u:object_r:etc_runtime_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0[root@localhost html]# ls -Z-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html如此就解决了问题。(6)如果想改变网站默认访问主目录则编辑vim /etc/httpd/conf/httpd.conf 更改其中的:DocumentRoot "/var/www/html"和
将地址改为我们想要的地址。(7)地址改完我们还是不能访问的因为这个地方的期望值是不对的,我们使用semanage fcontext -l 查出期望值然后使用semanage fcontext -a -t httpd_sys_content_t '/app/webset(/.*)?' 增加期望值,然后再使用restorecon -Rv /app/webset/index.html 即可完成对路径的更改。(8)如果想更改网站的服务端口,同样也是进入vim /etc/httpd/conf/httpd.conf 将端口改为我们想要的端口号然后使用semanage port -l |grep http查出端口,再使用:semanage port -a -t http_port_t -p tcp 9527 最后重启服务就可以正常使用了。删除要先将文件中的改回去然后semanage port -d -t http_port_t -p tcp 9527 即可删除。(9)使vsftp可以匿名上传文件1.安装vsftp软件使用远程连接后是可以下载文件,但是不能上传文件2.这时我们可以查看是否是selinux的问题3.编辑vim /etc/vsftpd/vsftpd.conf 取消其中的上传选项使其生效然后可以上传文件4.问题任然没有解决但报错发生了改变5.ls -ld /var/ftp/pub 查看权限 然后添加权限chmod 777 pub/ 6.修改/var/ftp/pub 的setsebool 值为开启先使用:getsebool -a |grep ftp 然后使用:setsebool ftp_anon_write on 开启布尔值7.设置semanage fcontxt -a -t public_content_rw_t '/var/ftp/pub(/.*)?'8. restorecon -Rv /var/ftp/pub/ 即可完成。 (10)通过网页访问用户家目录:    (1)[root@localhost conf.d]# vim /etc/httpd/conf.d/userdir.conf 更改配置    (2)systemctl restart httpd    (3)useradd liubei    (4)cd /home/liubei/ mkdir public_html
    (5) setfacl -m u:apache:x liubei 查看:getfacl liubei/    (6)getsebool -a |grep http |grep home    (7)setsebool -P httpd_enable_homedirs on到此完成。

  

  

 

转载于:https://www.cnblogs.com/sanqianfanhua01/p/8683236.html

你可能感兴趣的文章
设计模式之 面向对象的养猪厂的故事,C#演示(一)
查看>>
分页及字母筛选
查看>>
Expressions are not allowed at the top level
查看>>
非程序员的GNU Emacs使用心得......Shell Mode 第13集 把我的 kill-ring 还给我
查看>>
15.C#回顾及匿名类型(八章8.1-8.5)
查看>>
应用间共享数据方法(一)---sharepreferce
查看>>
傅盛:如何快慢“炼”金山?(转)
查看>>
模拟——作业调度方案
查看>>
node——module.exports
查看>>
爬虫简单实现
查看>>
sql查询语句如何执行
查看>>
CentOS 安装 ceph 单机版
查看>>
导航条选项卡
查看>>
bootstrap table 复选框使用
查看>>
ng -v 不是内部或外部命令
查看>>
图片模糊化处理
查看>>
iOS10 App适配权限 Push Notifications 字体Frame 遇到的坑!!!!
查看>>
一语道破项目管理知识体系五大过程组
查看>>
Mac连接远程Linux管理文件(samba)
查看>>
WPF变换详解
查看>>