Chinaunix首页 | 论坛 | 博客
  • 博客访问: 932500
  • 博文数量: 481
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5078
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 14:48
个人简介

分享工作和学习中的点点滴滴,包括前端、后端、运维、产品等各个方面,欢迎您来关注订阅!

文章分类

全部博文(481)

文章存档

2023年(26)

2022年(97)

2021年(119)

2020年(153)

2019年(70)

2018年(16)

我的朋友

分类: LINUX

2020-08-01 12:48:31

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

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

实验环境

7.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安全策略

阅读(3428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~