目录
一.Selinux的功能
1.
观察现象
当
Selinux
未开启时
![](https://img-blog.csdnimg.cn/4bf918abb7b245ee9d2979aea09371fe.png)
在
/
mnt
中建立文件被移动到
/
var
/
ftp
下可以被
vsftpd
服务访问
![](https://img-blog.csdnimg.cn/bf5d7ce7b3454003993ace213b18304c.png)
匿名用户可以通过设置后上传文件
![](https://img-blog.csdnimg.cn/6176a48da65544269f9701b45a6415d6.png)
当使用
ls -Z /var/ftp
查看文件时显示
"?"
![](https://img-blog.csdnimg.cn/031571e65d744fdcbcdab4e2d16fdf60.png)
ps auxZ |
grep vsftpd
时显示
:
- root 8546 0.0 0.0 26952 408 ? Ss 10 : 35 0 : 00 / usr / sbin / vsftpd / etc / vsftpd / vsftpd.conf
![](https://img-blog.csdnimg.cn/ca727d75726248b9afb5d1b9d30d550d.png)
可以任意更改服务使用的端口
![](https://img-blog.csdnimg.cn/340ffa25585a409587b5bf7c7d3a633b.png)
![](https://img-blog.csdnimg.cn/e7b9d02e83cb4573adf1a07dc78139a5.png)
当
selinux
开启
:
![](https://img-blog.csdnimg.cn/06ad699d23de43b3a43e1e2844b2c47e.png)
![](https://img-blog.csdnimg.cn/c10edb95b63f4f958139b113df8de9d1.png)
在
/
mnt
中建立文件被移动到
/
var
/
ftp
下不可以被
vsftpd
服务访问
![](https://img-blog.csdnimg.cn/241ae54d08d64bfbaa440d2652c33d82.png)
匿名用户可以通过设置后仍然不能上传文件(当selinux开启,匿名用户无法上传文件了,selinux会给服务添加功能开关,并把开关设定为默认关闭,在selinux中我们把此开关叫做sebool)
![](https://img-blog.csdnimg.cn/38d0e729b95a4001a19dc9a67454a103.png)
当使用
ls -Z /var/ftp
查看文件时显示信息(当selinux开启,selinux会在每个文件上添加secontext文件标签,并且会在每个程序上添加secontext特定标签的程序只能访问特定标签的文件)
![](https://img-blog.csdnimg.cn/74d04d0c5da94efead6e8e7916586c1a.png)
ps auxZ | grep vsftpd
时显示
:
system_u : system_r : ftpd_t : s0 - s0 : c0.c1023 root 6577 0.0 0.0 26952 412 ? Ss 10 : 500 : 00 / usr / sbin / vsftpd / etc / vsftpd / vsftpd.conf
![](https://img-blog.csdnimg.cn/6cc5e5dbdffb46ef84e14645ae73dc40.png)
会限定程序随意使用端口
![](https://img-blog.csdnimg.cn/90a150223db2425784610b9ae2051a98.png)
selinux
:
对于文件的影响
:
当
selinux
开启时
,
内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文
(
context
)
对于程序功能的影响
:
当
selinux
开启会对程序的功能加载开关
,
并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此开关叫做
sebool
二.Selinux的状态及管理
1.
selinux
的开启
vim / etc / selinux / config7 SELINUX = disabled #selinux关闭7 SELINUX = enforcing #selinux开机设定为强制状态此状态为 selinux 开启7 SELINUX = permissive #selinux开机设定为警告状态此状态为 selinux 开启
"selinux
开启或关闭需要重启系统
"
enforcing :不符合条件一定不能被允许 , 并会收到警告信息permissive :不符合条件被允许 , 并会收到警告信息
selinux
状态的查看
:
getenforce
selinux
开启后强制和警告级别的转换
setenforce 0 ##警告setenforce 1 ##强制
selinux
日志位置
:
/ var / log / audit / audit. log
三.Selinux的安全上下文
1.
查看
ls - Z ##查看文件的安全上下文
![](https://img-blog.csdnimg.cn/63a2a56d384e46d8b9e28be5adc0b329.png)
![](https://img-blog.csdnimg.cn/7e5feb3974fc4800bbba7729c0ce7941.png)
ls - Zd ##查看目录的安全上下文
![](https://img-blog.csdnimg.cn/04e1e0f3b1f44524960cea5bab122632.png)
ps axZ ##查看进程的安全上下文
![](https://img-blog.csdnimg.cn/2b0ccfc63618430196338708404919e0.png)
2.
修改安全上下文
#
临时修改
#
此方式更改的安全上下文在
selinux
重启后会还原
chcon - t 标签 文件 | 目录chcon - t public_content_t / var / ftp / westosfile1chcon - Rt public_content_t / westosdir #修改目录及目录中的所有子文件的安全上下文
#
永久修改安全上下文
#
如果需要特殊指定安全上下文需要修改内核安全上下文列表
semanage fcontext - l ##查看内核安全上下文列表
![](https://img-blog.csdnimg.cn/75ea3cd6add54ae190d721c69de72007.png)
semanage fcontext - a - t public_content_t '/westosdir(/.*)?'
![](https://img-blog.csdnimg.cn/555f89d78b174fc899fc34ba862bb19f.png)
restorecon - RvvF / westosdir / 重启selinux文件
![](https://img-blog.csdnimg.cn/4b16db33d2064e41b5ab810aa8210982.png)
touch / .autorelabel ##重启系统时 selinux 初始化文件标签开关文件
![](https://img-blog.csdnimg.cn/377e0619126f4ef38b5b4e40398e5de7.png)
![](https://img-blog.csdnimg.cn/865ee95883fe46f1a403e12f96c7cd50.png)
![](https://img-blog.csdnimg.cn/96ae2ea1937b4e97ade325cda07cdae1.png)
四.SEBOOL
getsebool - a 查看sebool
![](https://img-blog.csdnimg.cn/a6fc886ccaf4465d9a908f00aa845f08.png)
##
现实服务的
bool
值
setsebool - P ftpd_anon_write on #更改
![](https://img-blog.csdnimg.cn/8b28042f1bd94cfda41830d4069706d4.png)
五.SEPORT
semanage port - l | grep sshsemanage port - a - t ssh_port_t - p tcp 2222 允许在 TCP 端口 2222 上运行 SSH 服务
![](https://img-blog.csdnimg.cn/4d4e62877e9e48f58aac7c47bc319579.png)
semanage port - d - t ssh_port_t - p tcp 2222 删除指定的端口
![](https://img-blog.csdnimg.cn/56d0b3c0914e4bf8b72bfcd06b214eec.png)
六.setrouble
/ var / log / audit / audit. log
![](https://img-blog.csdnimg.cn/285f1704931346c2bc7ee36b86e2316c.png)
##selinux
警告信息
# / var / log / messages ##selinux问题解决方案
![](https://img-blog.csdnimg.cn/f14aeb40786b4fcd9c547a52143b443b.png)
setroubleshoot - server 此软件功能是采集警告信息并分析得到解决方案存放到message 中semanage port - d - t ssh_port_t - p tcp 1111> / var / log / audit / audit. log 清空 audit. log> / var / log / messagessystemctl restart sshdsystemctl stop sshd