<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    第一個(gè)Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 問題:
        1. centos 5.5 通過 yum 安裝 mysql,啟動(dòng),一切正常。但是,修改 my.cnf 中的 datadir 到自定義目錄,并初始化好數(shù)據(jù)庫,使用原來的 mysql 文件就無法啟動(dòng)了。
        2. 通過 heartbeat 啟動(dòng) mysql 遇到同樣的問題。

    解決:
        修改 /etc/selinux/config 文件中的  SELINUX=disabled,就可以運(yùn)行了。

    過程:
        定位問題的過程中,發(fā)現(xiàn),只要 copy 出來的 mysql 腳本,就可以執(zhí)行,原來的依然不可以。或者 mysql 數(shù)據(jù)庫文件放到 /var/lib/mysql 下,就可以,其它位置,就不行。
        猜測,文件屬性有什么不一樣的?通過 ls -l 看權(quán)限,和 lsattr 看屬性,都一模一樣。
        但,知道原因后,使用 ls -Z 可以看到 selinux 相關(guān)的屬性,這些文件是不一樣的。
        
    原因:
        不太清楚原因,但肯定的是,selinux 相關(guān)屬性影響的,有空仔細(xì)看看相關(guān)文檔。

    下面這篇寫得不錯(cuò):

    http://www.linux.gov.cn/netweb/selinux.htm

    SELinux簡介

    SELinux全稱是Security Enhanced Linux,由美國國家安全部(National Security Agency)領(lǐng)導(dǎo)開發(fā)的GPL項(xiàng)目,它擁有一個(gè)靈活而強(qiáng)制性的訪問控制結(jié)構(gòu),旨在提高Linux系統(tǒng)的安全性,提供強(qiáng)健的安全保證,可防御未知攻擊,據(jù)稱相當(dāng)于B1級的軍事安全性能。比MS NT所謂的C2等高得多。

    應(yīng)用SELinux后,可以減輕惡意攻擊或惡意軟件帶來的災(zāi)難,并提供對機(jī)密性和完整性有很高要求的信息很高的安全保障。 SELinux vs Linux 普通Linux安全和傳統(tǒng)Unix系統(tǒng)一樣,基于自主存取控制方法,即DAC,只要符合規(guī)定的權(quán)限,如規(guī)定的所有者和文件屬性等,就可存取資源。在傳統(tǒng)的安全機(jī)制下,一些通過setuid/setgid的程序就產(chǎn)生了嚴(yán)重安全隱患,甚至一些錯(cuò)誤的配置就可引發(fā)巨大的漏洞,被輕易攻擊。

    而SELinux則基于強(qiáng)制存取控制方法,即MAC,透過強(qiáng)制性的安全策略,應(yīng)用程序或用戶必須同時(shí)符合DAC及對應(yīng)SELinux的MAC才能進(jìn)行正常操作,否則都將遭到拒絕或失敗,而這些問題將不會影響其他正常運(yùn)作的程序和應(yīng)用,并保持它們的安全系統(tǒng)結(jié)構(gòu)。

    SELinux的相關(guān)配置文件

    SELinux的配置相關(guān)文件都在/etc/selinux下,其中/etc/selinux/targeted目錄里就包含了策略的詳細(xì)配置和context定義,以下是主要文件及功用:

    /etc/selinux/targeted/contexts/*_context 默認(rèn)的context設(shè)置 
    /etc/selinux/targeted/contexts/files/* 精確的context類型劃分 
    /etc/selinux/targeted/policy/* 策略文件

    Apache under SELinux

    Apache under SELinux - 讓Apache跑得順起來!
    對于剛使用Redhat Enterprise Linux 4 或Fedora Core 2以上/CentOS 4的用戶,一定會為Apache經(jīng)常無法正常運(yùn)轉(zhuǎn),報(bào)以"Permission denied"等錯(cuò)誤而大為不解,甚至大為惱火。
    其實(shí)這是因?yàn)檫@些系統(tǒng)里激活了SELinux,而用戶的apache配置與SELinux的配置策略有抵觸產(chǎn)生的,只有通過適當(dāng)調(diào)整,使apache的配置和訪問符合策略才能正常使用。
    現(xiàn)在下面來分析一下SELinux中有關(guān)httpd(apache)的context定義(略有刪節(jié))

    /home/[^/]+/((www)|(web)|(public_html))(/.+)? system_u:object_r:httpd_user_content_t
    /var/www(/.*)? system_u:object_r:httpd_sys_content_t
    /var/www/cgi-bin(/.*)? system_u:object_r:httpd_sys_script_exec_t
    /usr/lib/cgi-bin(/.*)? system_u:object_r:httpd_sys_script_exec_t
    /var/www/perl(/.*)? system_u:object_r:httpd_sys_script_exec_t
    /var/www/icons(/.*)? system_u:object_r:httpd_sys_content_t
    /var/cache/httpd(/.*)? system_u:object_r:httpd_cache_t
    /etc/vhosts -- system_u:object_r:httpd_config_t
    /usr/sbin/httpd -- system_u:object_r:httpd_exec_t
    /usr/sbin/apache(2)? -- system_u:object_r:httpd_exec_t
    /usr/sbin/suexec -- system_u:object_r:httpd_suexec_exec_t
    /var/log/httpd(/.*)? system_u:object_r:httpd_log_t
    /var/log/apache(2)?(/.*)? system_u:object_r:httpd_log_t
    /var/log/cgiwrap\.log.* -- system_u:object_r:httpd_log_t
    /var/cache/ssl.*\.sem -- system_u:object_r:httpd_cache_t
    /var/cache/mod_ssl(/.*)? system_u:object_r:httpd_cache_t
    /var/run/apache(2)?\.pid.* -- system_u:object_r:httpd_var_run_t
    /var/lib/httpd(/.*)? system_u:object_r:httpd_var_lib_t
    /var/lib/php/session(/.*)? system_u:object_r:httpd_var_run_t
    /etc/apache-ssl(2)?(/.*)? system_u:object_r:httpd_config_t
    /usr/lib/apache-ssl(/.*)? -- system_u:object_r:httpd_exec_t
    /usr/sbin/apache-ssl(2)? -- system_u:object_r:httpd_exec_t
    /var/log/apache-ssl(2)?(/.*)? system_u:object_r:httpd_log_t
    /var/run/apache-ssl(2)?\.pid.* -- system_u:object_r:httpd_var_run_t
    /var/run/gcache_port -s system_u:object_r:httpd_var_run_t
    /var/lib/squirrelmail/prefs(/.*)? system_u:object_r:httpd_squirrelmail_t
    /usr/bin/htsslpass -- system_u:object_r:httpd_helper_exec_t
    /usr/share/htdig(/.*)? system_u:object_r:httpd_sys_content_t
    /var/lib/htdig(/.*)? system_u:object_r:httpd_sys_content_t

    針對上述的內(nèi)容,可以對如下的幾個(gè)常見問題進(jìn)行簡單處理:

    1.phpmyadmin在非默認(rèn)/var/www/html目錄下無法運(yùn)轉(zhuǎn)

    通常類似的情況都是在配置了虛擬主機(jī)時(shí),訪問/phpmyadmin等提示403訪問拒絕,日志里也提示Permission denied,這是因?yàn)閜hpmyadmin防止的目錄及文件本身屬性不符合context要求。
    假設(shè)phpmyadmin放在/web目錄下,那么執(zhí)行:
    chcon -R -t httpd_user_content_t /web
    則會令/web及其下所有子目錄/文件,包括phpmyadmin文件都獲得了httpd_user_content_t的屬性,如果其傳統(tǒng)的Unix屬性對httpd來說是可讀的話,再重新訪問一下就應(yīng)該可以了。

    2./home目錄下的虛擬主機(jī)無法運(yùn)轉(zhuǎn)

    與問題1也是類似的,不過根據(jù)上文中context的定義,/home目錄下必須是用戶的$HOME/www或public_html或web目錄才是 httpd_user_content_t類型,因此建議將要作為web頁面的內(nèi)容放置在用戶的$HOME/www或web或public_html里,并確保其屬性是httpd_user_content_t,使用如下命令查看:
    ls -Z /home/abc/
    drwxr-xr-x abc abc user_u:object_r:user_home_dir_t tmp
    drwxrwxr-x abc abc user_u:object_r:httpd_user_content www
    如不是,則可通過chcon來逐級目錄及文件更改,直至最后能訪問:
    chcon -R -t httpd_user_content_t /home/abc/web
    chcon -t user_home_dir_t /home/abc

    3.CGI程序無法運(yùn)行

    如果cgi程序放在/var/www/cgi-bin/里也無法執(zhí)行,遇到403或500錯(cuò)誤的話,可以檢查cgi程序的屬性,按SELinux contexts文件里定義的,/var/www/cgi-bin/里必須是httpd_sys_script_exec_t 屬性。通過ls -Z查看,如果不是則通過如下命令更改:
    chcon -t httpd_sys_script_exec_t /var/www/cgi-bin/*.cgi
    如果是虛擬主機(jī)里的cgi,則參考問題2使之能正常使用普通的功能后,再通過chcon設(shè)置cgi文件的context為httpd_sys_script_exec_t即可。

    4.Setuid/gid 程序無法運(yùn)行

    例如早期的SqWebMail及qmailadmin等,需要setuid/gid的支持,但在SELinux下這將受到嚴(yán)格限制。第一種方法是比較徹底的辦法,能保留系統(tǒng)的安全性,通過:
    audit2allow -l -i /var/log/messages
    將SELinux拒絕的信息轉(zhuǎn)換為相應(yīng)的policy allow指令,將這些指令添加到SELinux policy 的src里相應(yīng)的配置文件,重新生成policy并加載。但這樣做相對比較麻煩。
    另一個(gè)方法最簡單,但將使apache得不到保護(hù)。首先確定SELinux 類型是targeted的:
    cat /etc/selinux/config|grep SELINUXTYPE
    然后,使apache脫離SELinux保護(hù):
    setsebool -P httpd_disable_trans 1
    然后重啟動(dòng)apache:
    /etc/init.d/httpd restart
    這樣所有apache強(qiáng)制的檢查都失效,需要setuid/gid的程序可以正常使用。但這樣帶來了增加漏洞的危險(xiǎn),對于迫切需要運(yùn)行而又很急的情況,本方法是一個(gè)最大限度減少系統(tǒng)安全缺失的最后辦法。對于取消SELinux 未必是一個(gè)好方法。

    SElinux的幾個(gè)相關(guān)命令

    一.

    ps -Z
    ls -Z
    id -Z

    例:
    [root@ljj cgi-bin]# ls -Z
    -rwxrwxrwx root root root:object_r:httpd_sys_script_exec_t a.cgi
    -rw-r--r-- root root root:object_r:httpd_sys_script_exec_t a.txt

    二. chcon

    修改文件的屬性 fild1:fild2:fild3

    chcon -u fild1 file
    chcon -l fild2 file
    chcon -t fild3 file

    例:
    chcon -u root file1

    三.getsebool

    獲取se相關(guān)的bool值
    例:
    [root@ljj cgi-bin]# getsebool -a | grep httpd
    httpd_builtin_scripting --> inactive
    httpd_disable_trans --> active
    httpd_enable_cgi --> active
    httpd_enable_homedirs --> active
    httpd_ssi_exec --> active
    httpd_tty_comm --> inactive
    httpd_unified --> inactive

    得到了一些與httpd相關(guān)的bool值,配置httpd.conf中的user_dir時(shí),要保證這里的httpd_enable_homedirs是 active的,還要保證:

    chcon -R -t httpd_sys_content_t ~user/public_html;

    • httpd與selinux之間的關(guān)系更多詳見:man httpd_selinux

    四. togglesebool

    給se的相關(guān)bool值取反
    例:
    togglesebool httpd_enable_homedirs


    posted on 2011-12-22 18:41 哈哈的日子 閱讀(605) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 67pao强力打造高清免费| 亚洲国产精品无码第一区二区三区| 日本高清高色视频免费| 亚洲精品中文字幕无码AV| 日韩一区二区在线免费观看| 一本久久免费视频| 亚洲国产美女精品久久| 国产91在线免费| 亚欧免费一级毛片| 偷自拍亚洲视频在线观看99| 夜夜亚洲天天久久| 国产三级免费电影| 成人免费视频网站www| 无遮挡国产高潮视频免费观看| 亚洲日韩区在线电影| 亚洲国产成人五月综合网| 亚洲大片免费观看| 国产精品一区二区三区免费| 亚洲免费人成视频观看| 不卡一卡二卡三亚洲| 精品熟女少妇AV免费观看| a级在线免费观看| 国产亚洲人成在线播放| 亚洲国产超清无码专区| 亚洲精品字幕在线观看| 黄网址在线永久免费观看 | 美女露隐私全部免费直播| 久久久久亚洲av无码专区 | 亚洲欧洲久久精品| 一本色道久久综合亚洲精品| 日韩免费观看视频| 久久99九九国产免费看小说| 久久精品成人免费看| 一级毛片大全免费播放| 亚洲精品乱码久久久久久V| 亚洲国产理论片在线播放| 亚洲Aⅴ无码专区在线观看q| 中文字幕亚洲无线码a| 免费在线观看你懂的| 最新中文字幕电影免费观看| 巨波霸乳在线永久免费视频|