LinuxProbe 发表于 2020-8-1 12:47:30

使用semanage管理SELinux安全策略


Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。
简介
Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。实验环境
Centos7.7操作系统Selinux已经开启
开启方式:# sed -i '/^SELINUX/s/disabled/enforcing/g' /etc/selinux/config# 然后重启一下操作系统# reboot# 重启完成之后检查一下是否是enforcing模式# getenforce Enforcing常用参数

[*]port: 管理定义的网络端口类型
[*]fcontext: 管理定义的文件上下文
[*]-l: 列出所有记录
[*]-a: 添加记录
[*]-m: 修改记录
[*]-d: 删除记录
[*]-t: 添加的类型
[*]-p: 指定添加的端口是tcp或udp协议的,port子命令下使用
[*]-e: 目标路径参考原路径的上下文类型,fcontext子命令下使用
列出所有定义的端口
使用semanage port命令列出所有端口# semanage port -lSELinux Port Type            Proto    Port Numberafs3_callback_port_t         tcp      7001afs3_callback_port_t         udp      7001afs_bos_port_t               udp      7007afs_fs_port_t                  tcp      2040afs_fs_port_t                  udp      7000, 7005afs_ka_port_t                  udp      7004afs_pt_port_t                  tcp      7002afs_pt_port_t                  udp      7002afs_vl_port_t                  udp      7003agentx_port_t                  tcp      705agentx_port_t                  udp      705amanda_port_t                  tcp      10080-10083amanda_port_t                  udp      10080-10082……https://www.linuxprobe.com/wp-content/uploads/2020/01/1-59.png
列出指定的端口类型的端口# semanage port -l|grep -w http_port_thttp_port_t                  tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000https://www.linuxprobe.com/wp-content/uploads/2020/01/2-39.png
通过查询端口号来列出端口类型# semanage port -l|grep -w 53dns_port_t                     tcp      53dns_port_t                     udp      53# semanage port -l|grep -w 20ftp_data_port_t                tcp      20# semanage port -l|grep -w 21ftp_port_t                     tcp      21, 989, 990https://www.linuxprobe.com/wp-content/uploads/2020/01/3-23.png创建、添加、修改端口
通过下面的命令为http添加新端口# # semanage port -a -t http_port_t -p tcp 8888## 查看新添加的端口# semanage port -l|grep -w 8888http_port_t                  tcp      8888, 80, 81, 443, 488, 8008, 8009, 8443, 9000# 也可以使用-C参数查看自定义的端口号# semanage port -lCSELinux Port Type            Proto    Port Numberhttp_port_t                  tcp      8888https://www.linuxprobe.com/wp-content/uploads/2020/01/4-20.png
添加一个范围的端口# semanage port -a -t http_port_t -p tcp 11180-11188# # semanage port -lCSELinux Port Type            Proto    Port Numberhttp_port_t                  tcp      8888, 11180-11188https://www.linuxprobe.com/wp-content/uploads/2020/01/5-20.png删除端口
# semanage port -d -t http_port_t -p tcp 8888# # semanage port -d -t http_port_t -p tcp 11180-11188# # 查看一下,已经没有自定义的端口了# semanage port -lChttps://www.linuxprobe.com/wp-content/uploads/2020/01/6-18.png修改安全上下文
为samba共享目录添加安全上下文# 没添加安全上下文之前是default_t# ll -dZ /share/drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /share/# semanage fcontext -a -t samba_share_t '/share(/.*)?'# 恢复文件默认的安全上下文# restorecon -Rv /sharerestorecon reset /share context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:samba_share_t:s0# 查看一下文件夹已经变成samba_share_t了# ll -dZ /sharedrwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /sharehttps://www.linuxprobe.com/wp-content/uploads/2020/01/6-17.png
为nfs共享目录添加读写# ll -dZ /nfsshare/drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /nfsshare/# # semanage fcontext -a -t public_content_rw_t '/nfsshare(/.*)?' # restorecon -Rv /nfsshare# ll -dZ /nfsshare/drwxr-xr-x. root root unconfined_u:object_r:public_content_rw_t:s0 /nfsshare/https://www.linuxprobe.com/wp-content/uploads/2020/01/7-15.png总结
本文讲述了添加、修改和删除端口,修改安全上下文。如果你的系统有安装桌面,可以安装图形化管理软件 policycoreutils-gui来进行管理。# yum -y install policycoreutils-gui# system-config-selinux执行该命令打开图形化管理界面# system-config-selinuxhttps://www.linuxprobe.com/wp-content/uploads/2020/01/9-12.png
页: [1]
查看完整版本: 使用semanage管理SELinux安全策略