Semanage是用于配置SELinux策略某些元素而无需修改或从新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。 |
简介linux
Semanage是用于配置SELinux策略某些元素而无需修改或从新编译策略源的工具。 这包括将Linux用户名映射到SELinux用户身份以及对象(如网络端口,接口和主机)的安全上下文映射。centos
实验环境安全
Centos7.7操做系统网络
Selinux已经开启
开启方式:ssh
[root@localhost ~]# sed -i '/^SELINUX/s/disabled/enforcing/g' /etc/selinux/config # 而后重启一下操做系统 [root@localhost ~]# reboot # 重启完成以后检查一下是不是enforcing模式 [root@localhost ~]# getenforce Enforcing
经常使用参数tcp
port: 管理定义的网络端口类型ide
fcontext: 管理定义的文件上下文工具
-l: 列出全部记录ui
-a: 添加记录spa
-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 … …
列出指定的端口类型的端口
[root@localhost ~]# semanage port -l|grep -w http_port_t http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
经过查询端口号来列出端口类型
[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
建立、添加、修改端口
经过下面的命令为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
添加一个范围的端口
[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
删除端口
[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
修改安全上下文
为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
为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/
总结
本文讲述了添加、修改和删除端口,修改安全上下文。若是你的系统有安装桌面,能够安装图形化管理软件 policycoreutils-gui来进行管理。
[root@localhost ~]# yum -y install policycoreutils-gui # system-config-selinux执行该命令打开图形化管理界面 [root@localhost ~]# system-config-selinux