SELinux上课内容

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

/etc/security/limits.conf         #定义对用户的各种限制

1
2
3
#<domain>        <type>  <item>  <value>     #具体文件中有定义
user4 hard nofile 10              #限制user4最多打开10个文件
user5 hard as 10240            #限制user5只能使用10M内存





MAC:强制访问控制。添加了对应用程序的控制。

/etc/selinux/config    #配置文件

1
2
3
4
5
6
7
8
9
10
11
12
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values: #3种工作模式
#     enforcing - SELinux security policy is enforced.#强制模式
#     permissive - SELinux prints warnings instead of enforcing.#警告模式
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected, #不限制本地用户和服务,只限制网络用户
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection. #最高的保护级别。
#如果要使用此级别需要安装一个包。selinux-policy-mls。
SELINUXTYPE=targeted

在强制模式下面,selinux策略生效

在警告模式下面,selinux不会禁用策略,但是会记录下警告信息。

从enforcing切换到permissive,相互切换不需要重启,其它都需要重启才行。切换到permissive多用于排错。

1
2
3
4
5
[root@localhost ~] # getenforce       #查看目前处于什么模式下
Enforcing
[root@localhost ~] # setenforce 0     #切换到permissive模式
0:permissive模式
1:enforcing模式



所有的文件和进程都有一个security context,

1
2
3
4
5
6
7
8
9
[root@localhost ~] # ls -lZ              #查看文件的context值
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
system_u:用户
object_r:角色
admin_home_t:类型
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Desktop
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Documents
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 Downloads
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg

如何查看程序的context值:

1
2
3
4
[root@localhost ~] # ps -Z
LABEL                              PID TTY          TIME CMD
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 2077 pts /0  00:00:00  bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 61994 pts /0  00:00:00  ps

手动创建的文件的context值会继承上一级目录

系统中有一个数据库记录了文件的context值,如下命令查看所有目录的context值:

1
2
3
4
[root@localhost ~] # semanage fcontext -l
/var/run/kismet_server \.pid     regular  file        system_u:object_r:kismet_var_run_t:s0 
/var/run/klogd \.pid             regular  file        system_u:object_r:klogd_var_run_t:s0 
/var/run/krb5kdc (/.*)?          all files          system_u:object_r:krb5kdc_var_run_t:s0

如何修改文件的context值:

1
[root@localhost ~] # chcon -t xen_image_t /var/www   #-R代表递归

依据数据库恢复文件的context值:

1
[root@localhost ~] # restorecon -vvFR /var/www/   #-R代表递归,恢复www目录以及目录下的所有

如何把文件的context值写进数据库:

1
[root@localhost ~] # semanage fcontext -a -t xen_image_t '/xen(/.*)?'

表示把xen目录下的所有文件的context值都定义为xen_image_t,加入数据库。




Booleans:限定进程的动作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~] # getsebool -a          #查看bool值
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
1
[root@localhost ~] # setsebool ftpd_full_access on

 #修改bool值,立即生效,开机无效。选项-P,下次开机任然有效。




限制端口

查看se允许服务使用的端口

1
2
3
4
5
[root@localhost ~] # semanage port -l   
zarafa_port_t                  tcp      236, 237
zebra_port_t                   tcp      2600-2604, 2606, 2608-2609
zebra_port_t                   udp      2600-2604, 2606, 2608-2609
zented_port_t                  tcp      1229

添加端口到数据库

1
[root@localhost ~] # semanage port -a -t zebra_port_t -p tcp 8899



SELinux排错

troubleshoot:排错图形化工具

selinux日志记录在审计日志里面,查看审计日志

1
[root@localhost ~] # sealert -a /var/log/audit/audit.log

/var/log/messages  中也有selinux日志



本文转自 chomperwu 51CTO博客,原文链接:http://blog.51cto.com/chomper/1694199,如需转载请自行联系原作者
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
6月前
|
监控 安全 Linux
AlmaLinux 9.6 正式版发布 - RHEL 二进制兼容免费发行版
AlmaLinux 9.6 正式版发布 - RHEL 二进制兼容免费发行版
384 0
AlmaLinux 9.6 正式版发布 - RHEL 二进制兼容免费发行版
|
机器学习/深度学习 测试技术 信息无障碍
VLM集体失明?视力测试惨败,GPT-4o、Claude 3.5全都不及格
【8月更文挑战第2天】新研究表明,顶尖视觉语言模型(VLMs)如GPT-4o和Claude 3.5,在看似简单的视觉任务上表现堪忧,诸如判断圆圈是否重叠或线条是否交叉等。此发现揭示了即便是在图像理解方面表现出色的VLMs也存在基本视觉认知的局限性,提示模型融合视觉信息的方式有待改进。论文详细探讨了可能的原因及未来提升方向。[@arxiv:2407.06581]
292 6
|
9月前
|
传感器 物联网 大数据
物联网与大数据:揭秘万物互联的新纪元
物联网与大数据:揭秘万物互联的新纪元
367 7
|
8月前
|
编解码 小程序 iOS开发
在无影上畅玩《黑神话:悟空》,这十件事你需要知道!
在无影上畅玩《黑神话:悟空》,这十件事你需要知道!
|
缓存 网络协议 网络安全
Dos常用命令及解释大全
前言 DOS是"磁盘操作系统"(Disk Operating System)的缩写。它是一种早期的操作系统,最初在20世纪80年代广泛用于个人计算机。DOS主要用于控制计算机硬件和管理文件系统,提供一组命令行界面(CLI)用于用户与操作系统进行交互。DOS的一个著名版本是微软的MS-DOS,它是IBM PC和兼容机中使用的主要操作系统。随着图形用户界面的兴起,DOS逐渐被更先进的操作系统如Windows所取代。
1488 0
|
机器学习/深度学习 人工智能 自动驾驶
人工智能的伦理困境:机器的自主性与人类的责任
【8月更文挑战第8天】在人工智能技术飞速发展的今天,一个日益凸显的问题是关于AI的伦理困境。随着机器学习和深度学习技术的进步,AI系统展现出越来越高的自主性,这引发了关于人类责任和控制的哲学讨论。本文将探讨AI自主性的提升如何影响人类的伦理责任,以及我们应如何平衡技术进步与道德考量。
|
API C++ 微服务
微服务新体验之Aspire初体验
该文指导安装Aspire项目。首先,需检查VS版本,若低于17.9.7则须更新。通过“帮助”菜单选择“检查更新”并安装。接着创建Aspire项目,然后在AspireApp1.AppHost的launchSettings.json中添加&quot;ASPIRE_ALLOW_UNSECURED_TRANSPORT&quot;: &quot;true&quot;。运行AspireApp1.AppHost项目,最后访问AspireApp1.Web以查看结果。文中代码展示了如何在AspireApp1.Web中注入并调用apiservice的API。作者为吴晓阳。
326 3
微服务新体验之Aspire初体验
|
机器学习/深度学习 人工智能 自然语言处理
人工智能在网络安全中的威胁情报分析与响应的应用
人工智能在网络安全中的威胁情报分析与响应的应用
|
人工智能 文字识别 自然语言处理
深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘
|
Ubuntu
ubuntu安装wps出现的系统字体缺失问题
进入WPS官网下载deb包: http://linux.wps.cn/ 安装,打开终端: cd 下载sudo dpkg -i wps-office_10.
4002 0