使用semanage管理SELinux安全策略

简介: Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。

Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。
简介
Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。

实验环境
Centos7.7操作系统

Selinux已经开启
开启方式:

[root@localhost ~]# sed -i '/^SELINUX/s/disabled/enforcing/g' /etc/selinux/config

然后重启一下操作系统

[root@localhost ~]# reboot

重启完成之后检查一下是否是enforcing模式

[root@localhost ~]# getenforce
Enforcing
常用参数
port: 管理定义的网络端口类型
fcontext: 管理定义的文件上下文
-l: 列出所有记录
-a: 添加记录
-m: 修改记录
-d: 删除记录
-t: 添加的类型
-p: 指定添加的端口是tcp或udp协议的,port子命令下使用
-e: 目标路径参考原路径的上下文类型,fcontext子命令下使用
列出所有定义的端口
使用semanage port命令列出所有端口

[root@localhost ~]# semanage port -l
SELinux Port Type Proto Port Number

afs3_callback_port_t tcp 7001
afs3_callback_port_t udp 7001
afs_bos_port_t udp 7007
afs_fs_port_t tcp 2040
afs_fs_port_t udp 7000, 7005
afs_ka_port_t udp 7004
afs_pt_port_t tcp 7002
afs_pt_port_t udp 7002
afs_vl_port_t udp 7003
agentx_port_t tcp 705
agentx_port_t udp 705
amanda_port_t tcp 10080-10083
amanda_port_t udp 10080-10082


如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略
列出指定的端口类型的端口

[root@localhost ~]# semanage port -l|grep -w http_port_t
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略
通过查询端口号来列出端口类型

[root@localhost ~]# semanage port -l|grep -w 53
dns_port_t tcp 53
dns_port_t udp 53
[root@localhost ~]# semanage port -l|grep -w 20
ftp_data_port_t tcp 20
[root@localhost ~]# semanage port -l|grep -w 21
ftp_port_t tcp 21, 989, 990
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略

创建、添加、修改端口
通过下面的命令为http添加新端口

[root@localhost ~]#
[root@localhost ~]# semanage port -a -t http_port_t -p tcp 8888
[root@localhost ~]#

查看新添加的端口

[root@localhost ~]# semanage port -l|grep -w 8888
http_port_t tcp 8888, 80, 81, 443, 488, 8008, 8009, 8443, 9000

也可以使用-C参数查看自定义的端口号

[root@localhost ~]# semanage port -lC
SELinux Port Type Proto Port Number

http_port_t tcp 8888
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略
添加一个范围的端口

[root@localhost ~]# semanage port -a -t http_port_t -p tcp 11180-11188
[root@localhost ~]#
[root@localhost ~]# semanage port -lC
SELinux Port Type Proto Port Number

http_port_t tcp 8888, 11180-11188
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略

删除端口
[root@localhost ~]# semanage port -d -t http_port_t -p tcp 8888
[root@localhost ~]#
[root@localhost ~]# semanage port -d -t http_port_t -p tcp 11180-11188
[root@localhost ~]#

查看一下,已经没有自定义的端口了

[root@localhost ~]# semanage port -lC
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略

修改安全上下文
为samba共享目录添加安全上下文

没添加安全上下文之前是default_t

[root@localhost ~]# ll -dZ /share/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /share/
[root@localhost ~]# semanage fcontext -a -t samba_share_t '/share(/.*)?'

恢复文件默认的安全上下文

[root@localhost ~]# restorecon -Rv /share
restorecon reset /share context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:samba_share_t:s0

查看一下文件夹已经变成samba_share_t了

[root@localhost ~]# ll -dZ /share
drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /share
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略
为nfs共享目录添加读写

[root@localhost ~]# ll -dZ /nfsshare/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /nfsshare/
[root@localhost ~]#
[root@localhost ~]# semanage fcontext -a -t public_content_rw_t '/nfsshare(/.*)?'
[root@localhost ~]# restorecon -Rv /nfsshare
[root@localhost ~]# ll -dZ /nfsshare/
drwxr-xr-x. root root unconfined_u:object_r:public_content_rw_t:s0 /nfsshare/
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略

总结
本文讲述了添加、修改和删除端口,修改安全上下文。如果你的系统有安装桌面,可以安装图形化管理软件 policycoreutils-gui来进行管理。

[root@localhost ~]# yum -y install policycoreutils-gui

system-config-selinux执行该命令打开图形化管理界面

[root@localhost ~]# system-config-selinux
如何使用semanage管理SELinux安全策略如何使用semanage管理SELinux安全策略

相关文章
|
安全 Linux 网络安全
【超详细】Linux系统修改SSH端口教程
在linux中,默认的SSH端口号为22,由于这是咱们都知道的端口号,一旦有入侵者进行端口扫描的时候扫描出22端口,就立马知道这是进行SSH登录的端口号,因而咱们需要修改默认的端口号。
13854 2
【超详细】Linux系统修改SSH端口教程
|
负载均衡 Ubuntu 应用服务中间件
安装Xftp7时出现致命错误:-1603的解决方法
安装Xftp7时出现致命错误:-1603的解决方法
1735 0
安装Xftp7时出现致命错误:-1603的解决方法
|
9月前
|
缓存 前端开发 JavaScript
如何配置Vite以确保最佳的Tree Shaking效果?
如何配置Vite以确保最佳的Tree Shaking效果?
1230 57
|
文字识别 计算机视觉 开发者
基于QT的OCR和opencv融合框架FastOCRLearn实战
本文介绍了在Qt环境下结合OpenCV库构建OCR识别系统的实战方法,通过FastOCRLearn项目,读者可以学习Tesseract OCR的编译配置和在Windows平台下的实践步骤,文章提供了技术资源链接,帮助开发者理解并实现OCR技术。
887 9
基于QT的OCR和opencv融合框架FastOCRLearn实战
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
掌握这5大要素,开启AI项目落地的成功之门
在AI浪潮下,大模型成为企业转型的关键动力。本文三桥君探讨了AI项目落地的挑战与潜力,并提出五大成功要素:业务热情、认清AI能力、编程能力、小处着手与老板耐心。通过合理选择应用场景,企业可有效推动AI技术融入业务,实现效率提升与决策优化,助力持续发展。
511 3
|
10月前
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
人工智能 搜索推荐 程序员
AI神器Deepseek:3分钟搞定一篇爆款文案!
大家好,我是小米,一个31岁、热爱分享技术的自媒体人。本文将介绍如何使用Deepseek写文案。Deepseek是一款基于AI的文案生成工具,能快速生成高质量文案,支持多种语言风格,帮助提高写作效率。文中通过具体案例——为咖啡店新品“焦糖玛奇朵”撰写推广文案,详细讲解了从明确目标到发布文案的全过程,并提供了优化和应用技巧。如果你还在为写文案发愁,不妨试试Deepseek,它将成为你的得力助手!
2198 23
|
机器学习/深度学习 人工智能 自然语言处理
一分钟认识:claude中文版_claude官网中文版
Claude AI 是由 Anthropic 开发的一款先进的对话式人工智能模型,它的名字来源于信息论之父——克劳德·香农 🧙‍♂️。
|
前端开发 数据安全/隐私保护 开发者
vue3 组件级权限控制
vue3 组件级权限控制
271 1