基于linux下的selinux强制访问控制 |
您所在的位置:网站首页 › 强制访问控制mac策略的特点是什么 › 基于linux下的selinux强制访问控制 |
1、什么是selinux?
selinux是强制访问控制系统的实现,且位于Linux Kernel中。它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,如,它可以指明某一个进程访问哪些资源。 强制访问控制系统的用途在于增强系统抵御攻击的能力。 2、selinux状态 enforcing //强制,如果违反了策略,则无法继续操作 disabled //关闭,安全级别最低 permissive //警告,selinux有效,即使是违法策略,依旧可以继续操作,但是会有警告,查看警告信息:cat /var/log/audit/audit.log
命令查询当前selinux状态: getenforce 设置当前selinux状态 A. 文件编辑:vim /etc/sysconfig/selinux 注:文件编辑方式完成之后,需要reboot,修改才能生效; B. 命令修改:setenforce 0 | 1 setenforce 0 设置selinux为警告模式 setenforce 1 设置selinux为强制模式注:命令修改是临时的,重启之后selinux将会恢复修改之前的状态; 例1:通过文件编辑方式改变selinux的状态( 编辑完文件之后,一定要reboot 才会生效) selinux:1)影响程序的访问文件,通过安全上下文来控制的; 2)影响程序的服务程序功能,通过sebool值来控制的; selinux开启后会关闭系统认为所有认为不安全的操作, 在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。 系统上的文件和其他资源都设置了权限标签 ,控制哪些用户对哪些文件具有哪些访问权;一般来说,只有同时具有欧通系统访问权限和selinux访问权限,才能访问文件; 4、 selinux安全上下文在seLinux中,访问控制属性叫做安全上下文。 当安全上下文匹配时,才会被访问允许;若不匹配时则不被允许。 (1)临时修改安全上下文 [root@localhost ftp]# touch /mnt/westos //建立文件 [root@localhost ftp]# cd /mnt [root@localhost mnt]# ls -Z //查看安全上下文 -rw-r--r--. root root unconfined_u:object_r:mnt_t:s0 westos [root@localhost mnt]# chcon -t public_content_t westos //临时安全上下文为public_content_t [root@localhost mnt]# ls -Z //查看安全上下文 -rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 westos [root@localhost mnt]# getenforce //查看当前selinux的状态 Enforcing [root@localhost mnt]# vim /etc/sysconfig/selinux //重启selinux,reboot2次,先修改selinux为disabled,后修改为enforcing [root@localhost mnt]# reboot [root@localhost mnt]# vim /etc/sysconfig/selinux [root@localhost mnt]# reboot [root@localhost ~]# cd /mnt [root@localhost mnt]# ls -Z //重启后查看安全上下文,会发现之前的改动并未生效 -rw-r--r--. root root unconfined_u:object_r:default_t:s0 westos
semanage fcontext -l //内核指定的所有文件的安全上下文的列表 ; man semanage fontext 查询semanage用法 //永久改动 [root@localhost ~]# mkdir /westos [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf anon_root=/westos //修改ftp服务的默认目录,添加这一行 [root@localhost ~]# systemctl restart vsftpd //重启vsftpd服务 [root@localhost ~]# ls -Zd /westos //查看目录的安全上下文,为default_t [root@localhost ~]# semanage fcontext -a -t public_content_t '/westos(/.*)?' //永久修改selinux; 其中,-a 添加 ; -t 指定类型 ;(/.*)目录的所有文件 [root@localhost ~]# semanage fcontext -l | grep /westos //查看westos的安全上下文是不是public_content_t /westos(/.*)? all files system_u:object_r:public_content_t:s0 [root@localhost ~]# restorecon -FvvR /westos //刷新 restorecon reset /westos context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0 restorecon reset /westos/westosfile context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0 [root@localhost ~]# touch /.autorelabel //建立文件,相当与selinux 自动初始化 //测试 [root@localhost ~]# ls -Zd /westos //查看目录i的安全上下文
selinux布尔值是更改selinux的开关;有时候,selinux的访问权限可选可通过selinux布尔值触发,可以提高系统安全性。 // 安装lftp软件 [root@localhost ~]# lftp 172.25.254.247 -u student //登陆本地用户 Password: lftp [email protected]:~> ls -rw-r--r-- 1 1000 1000 2410 May 12 03:45 passwd lftp [email protected]:~> put /etc/passwd //上传文件失败 put: Access failed: 553 Could not create file. (passwd) lftp [email protected]:~> quit [root@localhost ~]# setsebool -P ftpd_anon_write on //修改布尔值(把匿名用户写权限开启);其中 -P 永久修改 [root@localhost ~]# getsebool -a | grep ftp //用于显示布尔值,查看进程的开启或关闭情况 ftp_home_dir --> on [root@localhost ~]# lftp 172.25.254.247 -u student // Password: lftp [email protected]:~> ls lftp [email protected]:~> put /etc/passwd 2005 bytes transferred lftp [email protected]:~> ls -rw-r--r-- 1 1000 1000 2005 May 15 17:07 passwd lftp [email protected]:~> quit
查询浏览器,输入 ftp:172.25.254.247 //可以看到westos文件 这里我们需要注意的是: 提供解决方案的不是系统而是一个软件程序,但此工具不安全,只是解决当前不能访问的问题;如果删除此工具,在日志/var/log/messages下是不会看到解决方案;
当 重新安装软件后,清空日志,再次在浏览器输入ftp://172.25.254.247,查询,日志/var/log/messages中可以看到解决方案。 7、tcp和udp协议 ##TCP协议:必须要经过三次”对话”才能建立起来,即交互式连接;三次”对话”的目的是使数据包的发送和接收同步,经过三次”对话”之后,主机A才向主机B正式发送数据。 TCP协议能为应用程序提供可靠的通信连接,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。 UDP协议:在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。 cat /etc/services //查询每一个服务对应端口 cat /etc/services | grep -E "\"//查询http服务对应端口端口 首先,设置selinux为enforcing [root@localhost ftp]# yum install httpd //安装httpd ; http默认端口80 [root@localhost ftp]# vim /etc/httpd/conf/httpd.conf //在文件第42行,修改httpd服务端口为6161,即Listen=6161
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |