Linux中安裝使用semanage來修改文本的教程

Selinux極大的增強了Linux系統(tǒng)的安全性,能將用戶權限關在籠子里,如httpd服務,apache默認只能訪問/var/www目錄,并只能監(jiān)聽80和443端口,因此能有效的防范0-day類的攻擊。舉例來說,系統(tǒng)上的 Apache 被發(fā)現(xiàn)存在一個漏洞,使得某遠程用戶可以訪問系統(tǒng)上的敏感文件(比如 /etc/passwd 來獲得系統(tǒng)已存在用戶),而修復該安全漏洞的 Apache 更新補丁尚未釋出。此時 SELinux 可以起到彌補該漏洞的緩和方案。因為 /etc/passwd 不具有 Apache 的訪問標簽,所以 Apache 對于 /etc/passwd 的訪問會被 SELinux 阻止。
CentOS系統(tǒng)自帶的chcon工具只能修改文件、目錄等的文件類型和策略,無法對端口、消息接口和網(wǎng)絡接口等進行管理,semanage能有效勝任SELinux的相關配置工作。
安裝:
# yum -y install policycoreutils-python
用法:
semanage命令用來查詢與修改SELinux默認目錄的安全上下文。
semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target
主要參數(shù):
-a:添加
-d:刪除
-m:修改
-l:列舉
-n:不打印說明頭
-D:全部刪除
-f:文件
-s:用戶
-t:類型
r:角色
基本使用:
管理登錄linux的用戶和SELinux局限的用戶之間的映射。
semanage login [-S store] -{a|d|m|l|n|D} [-sr] login_name | %groupname
管理策略模塊:
semanage module [-S store] -{a|d|l} [-m [--enable | --disable] ] module_name
管理網(wǎng)絡端口類型定義
semanage port [-S store] -{a|d|m|l|n|D} [-tr] [-p proto] port | port_range
例:如apache采用非標準端口,需執(zhí)行如下命令:
emanage port -a -t http_port_t -p tcp port_number
查看當前允許的httpd端口:
# semanage port -l|grep http
http_cache_port_t tcp 3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8888, 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
注意:8888是我剛才添加的
管理網(wǎng)絡接口類型定義
semanage interface [-S store] -{a|d|m|l|n|D} [-tr] interface_spec
管理網(wǎng)絡節(jié)點類型定義
semanage node [-S store] -{a|d|m|l|n|D} [-tr] [ -p protocol ] [-M netmask] address
管理文件中映射定義
semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target
例:讓 Apache 可以訪問位于非默認目錄下的網(wǎng)站文件
首先,用 semanage fcontext -l | grep '/var/www' 獲知默認 /var/www 目錄的 SELinux 上下文:
/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
從中可以看到 Apache 只能訪問包含 httpd_sys_content_t 標簽的文件。
假設希望 Apache 使用 /srv/www 作為網(wǎng)站文件目錄,那么就需要給這個目錄下的文件增加 httpd_sys_content_t 標簽,分兩步實現(xiàn)。
首先為 /srv/www 這個目錄下的文件添加默認標簽類型:semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?' 然后用新的標簽類型標注已有文件:restorecon -Rv /srv/www 之后 Apache 就可以使用該目錄下的文件構建網(wǎng)站了。
其中 restorecon 在 SELinux 管理中很常見,起到恢復文件默認標簽的作用。比如當從用戶主目錄下將某個文件復制到 Apache 網(wǎng)站目錄下時,Apache 默認是無法訪問,因為用戶主目錄的下的文件標簽是 user_home_t。此時就需要 restorecon 將其恢復為可被 Apache 訪問的 httpd_sys_content_t 類型:
restorecon -v /srv/www/foo.com/html/file.html
restorecon reset /srv/www/foo.com/html/file.html context unconfined_u:object_r:user_home_t:s0->system_u:object_r:httpd_sys_content_t:s0
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?" //新建一條規(guī)則,指定/web目錄及其下的所有文件的擴展屬性為httpd_sys_content_t
相關文章
Mac怎么復制文本格式? Mac自帶pages使用格式刷的教程
Mac怎么復制文本格式?在mac系統(tǒng)中自帶pages工具,這個工具和word中的格式刷工功能差不多,不過更好用,今天我們就來看看Mac自帶pages使用格式刷的教程,需要的朋友可以參2016-04-24Linux系統(tǒng)中強大的文本操作命令tr的使用講解
這篇文章主要介紹了Linux系統(tǒng)中文本操作命令tr的使用講解,tr命令可以用來對文本進行壓縮刪除以及替換等多種操作,十分強大,需要的朋友可以參考下2016-04-07- 這篇文章主要介紹了Linux中使用cut命令來提取文本的用法指南,cut命令的使用是Linux入門學習中的基礎知識,需要的朋友可以參考下2016-04-07
總結Linux中用于文本處理的awk、sed、grep命令用法
這篇文章主要介紹了Linux中用于文本處理的awk、sed、grep命令用法總結,是Linux入門學習中的基礎知識,需要的朋友可以參考下2016-03-21- 這篇文章主要介紹了Linux中用于更改光標和文本屬性的tput命令使用詳解,tput命令還可以清除終端屏幕的特定區(qū)域,需要的朋友可以參考下2016-03-04
- 這篇文章主要介紹了Linux中文本處理命令sed的使用示例 ,sed命令的使用是Linux入門學習中的基礎知識,需要的朋友可以參考下2016-02-07
- 這篇文章主要介紹了Linux中grep與fgrep命令的使用,兩個命令的使用都與文本的搜索與匹配相關,是Linux入門學習中的基礎知識,需要的朋友可以參考下2016-01-11
- 這篇文章主要介紹了Linux中的cat文本輸出命令用法,是Linux入門學習中的基礎知識,需要的朋友可以參考下2016-01-14
- 這篇文章主要介紹了Linux的命令行中一些文本操作技巧的實例分享,包括tr命令與grep命令等的實際應用,需要的朋友可以參考下2015-11-27
Linux系統(tǒng)中tr命令刪除和替換文本字符的基本用法
這篇文章主要介紹了Linux系統(tǒng)中使用tr命令刪除和替換文本字符的基本用法,是Linux入門學習中的基礎知識,需要的朋友可以參考下2015-11-27