如何使用semanage管理SELinux安全策略

安全劍客發表於2020-01-20
Semanage是用於配置SE Linux策略某些元素而無需修改或重新編譯策略源的工具。 這包括將Linux使用者名稱對映到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
…
…

如何使用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安全策略

原文地址: https://www.linuxprobe.com/semanage-selinux-policy.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2674149/,如需轉載,請註明出處,否則將追究法律責任。

相關文章