|NO.Z.00052|——————————|^^ 构建 ^^|——|Selinux.V2|——|2台server|
一、实验专题:更改目录的角色类型等级,开启selinux且不影响网站的正常访问
### --- 更改目录的角色类型等级,开启selinux且不影响网站的正常访问
### --- 开启selinux
[root@server11 ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
# enforcing -开启
# permissive -特权模式:若是出现错误会给我提醒,但不会拒绝。
# disabled -关闭
SELINUXTYPE=targeted
# targeted - 基础类型;把常见的进程涵盖到。若是开启的话,基础类型就够用了。
# mls - 多类型匹配强制;会有更多的类型。
### --- 重启生效;速度会非常的慢;关闭selinux表示把selinux从内核中摘除,屏蔽掉,不让其运行。开启需要重新加载到内核之中,所以速度会较慢。
[root@server11 ~]# reboot
[root@server11 ~]# getenforce
Enforcing
[root@server11 ~]# setenforce 0 // 临时关闭
[root@server11 ~]# setenforce 1 // 临时开启
### --- 验证:开启web服务器
[root@server11 ~]# service httpd start
[root@server11 ~]# chkconfig httpd on
[root@server11 ~]# echo "This is HA-server11 SElinux" >>/var/www/html/index.html
[root@server11 ~]# curl localhost
This is HA-server11 SElinux
~~~ 通过Chrome访问http://10.10.10.11/可以正常访问
[root@server11 ~]# mkdir /www
[root@server11 ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/www/"
<Directory "/www/">
[root@server11 ~]# service httpd restart
[root@server11 ~]# echo "This is HA-server11 SElinux" >>/www/index.html
[root@server11 ~]# chown 777 -R /www/
~~~ 通过Chrome访问http://10.10.10.11/反馈信息为Apache主页,Apache主页在找不到主页文件的时候会显示出来。
~~~ 在www目录下写入了访问文件,并赋予777权限,理论上是没有问题的,是selinux的限制。
[root@server11 ~]# setenforce 0 // 临时关闭selinux发现主页可以正常访问了。
### --- 查看selinux的角色类型
[root@server11 ~]# ll -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg // system_u:用户object_r:角色admin_home_t:类型s0:权重等级,不需要去管理
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log.syslog
[root@server11 ~]# ll -Z /var/www/html/ // 查看Apache默认的目录角色类型等级
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
[root@server11 ~]# ll -Z /www/ // 查看自己创建的Apache目录角色类型等级
-rw-r--r--. 777 root unconfined_u:object_r:default_t:s0 index.html // 发现它的类型是不一致,只要把类型更改为一致即可。
### --- 修改自己创建的Apache目录为Apache默认的目录角色类型等级
[root@server11 ~]# chcon -t httpd_sys_content_t -R /www/
[root@server11 ~]# ll -Z /www/ // 和Apache默认目录角色类型等级一致
-rw-r--r--. 777 root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
~~~ 通过Chrome访问http://10.10.10.11/可以正常访问写入的网站
~~~ 在生产环境中慎重使用-R递归,递归是非常消耗CPU资源的,若是有上万个子文件,递归可能导致设备直接宕机。
### --- 还原selinux之前的配置
[root@server11 ~]# restorecon -Rv /www/ // 还原之前的设置
[root@server11 ~]# ll -Z /www/
-rw-r--r--. 777 root unconfined_u:object_r:default_t:s0 index.html
### --- 通过Chrome访问http://10.10.10.11/访问被拒绝
二、selinux布尔值
### --- Managing Boole (管理SELinux布尔值)
### --- Selinux布尔值就相当于一个开关,精确控制selinux对某个服务器的某个选项的保护,比如Samba服务
~~~ getsebool -a 命令列出系统中可用的SELinux布尔值
~~~ setsebool 命令用来改变SELinux布尔值
~~~ setsebool -p Samba_enable_home_dirs=1
~~~ 开启夹目录是否能访问的控制
[root@server11 ~]# getsebool -a |grep samba
bacula_use_samba --> off
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
三、实验专题
1、selinux布尔值
### --- HA-server1:10.10.10.11:服务端
### --- HA-server2:10.10.10.12:客户端
### --- 开启selinux后可以正常访问samba服务
### --- 安装samba
[root@server11 ~]# yum install -y samba
### --- 创建2个用户:zhangsan/lisi
[root@server11 ~]# useradd zhangsan
[root@server11 ~]# passwd zhangsan
[root@server11 ~]# useradd lisi
[root@server11 ~]# passwd lisi
### --- 转换为samba用户;可以正常被samba访问
[root@server11 ~]# pdbedit -a zhangsan
[root@server11 ~]# pdbedit -a lisi
### --- 创建samba并授予777权限
[root@server11 ~]# mkdir /samba
[root@server11 ~]# chmod 777 /samba/
### --- 修给samba配置文件
[root@server11 ~]# vim /etc/samba/smb.conf
[public] // 最后开启配置文件
comment = Public share
path = /samba
public = yes
writable = yes
printable = no
write list = +staff
[root@server11 ~]# service smb start
[root@server11 ~]# chkconfig smb on
### --- 拷贝一些文件到/samba目录
[root@server11 ~]# cp -a /var/log/*.log /samba/
### --- 验证:张三用户下访问samba服务
[root@server12 ~]# yum install -y smbclient // 安装一下smbclient,默认是已经安装了
[root@server12 ~]# smbclient -U zhangsan -L 10.10.10.11 // 通过张三用户访问10.10.10.11访问samba服务,发现有两个共享目录zhangsan、public
Sharename Type Comment
--------- ---- -------
public Disk Public share
zhangsan Disk Home Directories
[root@server12 ~]# smbclient -U zhangsan //10.10.10.11/public // 连接10.10.10.11下的samba服务的张三用户下的public目录
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \* // 发现是空目录。可能是selinux规则在限制
### --- 关闭后selinux重新验证
[root@server11 ~]# setenforce 0
[root@server12 ~]# smbclient -U zhangsan //10.10.10.11/public // 关闭selinux后重新验证发现可以正常获取数据
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> ls
. D 0 Sat Jan 30 08:46:02 2021
.. DR 0 Sat Jan 30 08:41:32 2021
wpa_supplicant.log 0 Tue Jan 19 03:18:18 2021
~~~ 原因是跟当前的samba的类型不一致
### --- 修给samba共享目录的类型,开启selinux重新验证
[root@server11 ~]# chcon -t samba_share_t /samba/ // 设置/samba目录类型权限;在samba配置文件中可以查找获取共享目录角色类型权限等级
[root@server11 ~]# setenforce 1
[root@server12 ~]# smbclient -U zhangsan //10.10.10.11/public // 验证可以获取数据
smb: \> ls
. D 0 Sat Jan 30 08:46:02 2021
.. DR 0 Sat Jan 30 08:41:32 2021
wpa_supplicant.log 0 Tue Jan 19 03:18:18 2021
Xorg.0.log 38396 Tue Jan 19 03:46:36 2021
smb: \> get yum.log // 下载文件可以正常下载
### --- 需求:zhangsan和lisi两个用户在自己的家目录下只能下载文件,不能上传文件。实验方案:布尔值
[root@server11 ~]# setsebool -P samba_export_all_ro on
[root@server11 ~]# touch /home/zhangsan/yanqi
[root@server12 ~]# smbclient -U zhangsan //10.10.10.11/zhangsan
yanqi 0 Sat Jan 30 09:04:04 2021
smb: \> get yanqi // 可以正常下载
getting file \yanqi of size 0 as yanqi (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \> put install.log // 上传install.log文件,拒绝了,因为开启的是samba共享的只读权限
NT_STATUS_ACCESS_DENIED opening remote file \install.log
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv001-lbchac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」