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