当前位置:   article > 正文

linux 端口上下文无法添加,如何使用semanage管理SELinux安全策略

semanage fcontext -a -t

原标题:如何使用semanage管理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

65525688cd6dce2cdbe1c2789cbf5c0c.png

列出指定的端口类型的端口

[root @localhost~]# semanage port -l|grep -w http_port_t

http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000

278f6435fdc16c805a2ac58878a9bd60.png

通过查询端口号来列出端口类型

[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

210bcc72484e5f930a34dca342aac571.png

创建、添加、修改端口

通过下面的命令为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

fa3022ee6748fe9a3b1ac26ab96c71a5.png

添加一个范围的端口

[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

5589f373beb9248f7cbd340deb343ed2.png

删除端口

[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

7d7f5bd938545aeb4ef57a55d091e0de.png

修改安全上下文

为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

abca07a0aab10d22b8c6dbaf249df1ea.png

为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/

532f134c6799f7752186f05e186919cb.png

总结

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

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

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

[root @localhost~]# system-config-selinux

f58ce20f857ce1a33f0c138621e6b2eb.png

如果喜欢这位作者的文章,点点在看支持一下~返回搜狐,查看更多

责任编辑:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/308994
推荐阅读
相关标签
  

闽ICP备14008679号