SELinux服務(wù)器不關(guān)閉配置 samba的方法
給大家推薦一款很不錯(cuò)的SELinux系統(tǒng)很有學(xué)習(xí)價(jià)值,這里我主要講解SELinux系統(tǒng)的應(yīng)用,包括介紹SELinux知識(shí)等方面。前段時(shí)間在實(shí)驗(yàn)室的4*4核服務(wù)器上安裝Samba服務(wù)器,解決了服務(wù)器安裝的硬件問(wèn)題后,在服務(wù)器上配好了Samba,但在客戶(hù)機(jī)訪問(wèn)Samba時(shí),顯示錯(cuò)誤。查看到主機(jī)機(jī)器上右上方有紅色感嘆號(hào)顯示。
點(diǎn)擊一看,是SELinux報(bào)警,報(bào)警時(shí)間與每次客戶(hù)機(jī)訪問(wèn)samba時(shí)間一致,估計(jì)是SELinux太嚴(yán)謹(jǐn)?shù)膯?wèn)題,將客戶(hù)機(jī)的錯(cuò)誤信息在網(wǎng)上搜索,查找到果然是samba與SELinux沖突的問(wèn)題。
PS:曹老師開(kāi)始用掛載的方法配N(xiāo)SF時(shí)也沒(méi)配成功,同樣是SELinux的問(wèn)題,關(guān)閉后可解決。 方法一:關(guān)閉SELinux,并修改配置文件,使系統(tǒng)啟動(dòng)時(shí)不啟動(dòng)SELinux。(我采用的是這種方法)
- Disable selinux
- [root@Jie ~]# vi /etc/sysconfig/selinux
- # This file controls the state of SELinux on the system.
- # SELINUX= can take one of these three values:
- # enforcing - SELinux security policy is enforced.
- # permissive - SELinux prints warnings instead of enforcing.
- # disabled - SELinux is fully disabled.
- SELINUX=enforcing
- # SELINUXTYPE= type of policy in use. Possible values are:
- # targeted - Only targeted network daemons are protected.
- # strict - Full SELinux protection.
- SELINUXTYPE=targeted
把 SELINUX設(shè)定為disable, 下次啟動(dòng)系統(tǒng)后將會(huì)停止SElinux。Linux核心參數(shù)(Kernel Parameter)或者可以在核心參數(shù)后加上: selinux=0 (停止) 或 selinux=1 (開(kāi)啟)參數(shù)檔案/boot/grub/menu.lst
- title Fedora Core (2.6.18-1.2798.fc6)
- root (hd0,0)
- kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0
- initrd /initrd-2.6.18-1.2798.fc6.img
檢查SELinux現(xiàn)時(shí)況態(tài)要知到你現(xiàn)在是否使用 SELinux:# getenforce disabled
方法二:不關(guān)閉SELinux配置 samba的方法(未測(cè)試)
將smb.conf中如下這兩行啟用(去掉行首的;號(hào)就可以了) setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on這兩行生效后,自己的home目錄就可以正常讀寫(xiě)了。
如果想將/home/samba/temp目錄設(shè)置成完全的共享就應(yīng)該在字符狀態(tài)寫(xiě)輸入:chcon -t samba_share_t /home/samba/temp 同時(shí)不要忘記將/home/samba/temp目錄屬性設(shè)置成777 就可以了。其它和以前的FC版本應(yīng)該沒(méi)有什么區(qū)別了。
默認(rèn)的,SELinux禁止網(wǎng)絡(luò)上對(duì)Samba服務(wù)器上的共享目錄進(jìn)行寫(xiě)操作,即使你在smb.conf中允許了這項(xiàng)操作。 假設(shè)你已經(jīng)配置了共享目錄/share并允許用戶(hù)進(jìn)行讀寫(xiě),而你又不想關(guān)閉SELinux的話,可以試試以下操作:
程序代碼:
- #/usr/sbin/setsebool -P allow_smbd_anon_write=1
- #chcon -t public_content_rw_t /share
其中第一條語(yǔ)句設(shè)置SELinux放行標(biāo)記了public_content_rw_t的內(nèi)容,第二條語(yǔ)句把欲共享的/share目錄標(biāo)記為public_content_rw_t。 附SELinux資料:selinux簡(jiǎn)介SElinux 在linux內(nèi)核級(jí)別上提供了一個(gè)靈活的強(qiáng)制訪問(wèn)控制系統(tǒng)(MAC),這個(gè)強(qiáng)制訪問(wèn)控制系統(tǒng)是建立在自由訪問(wèn)控制系統(tǒng)(DAC)之上的。
DAC是指系統(tǒng)的安全訪問(wèn)控制都是由系統(tǒng)管理員root自由管理的,不是系統(tǒng)強(qiáng)制行為MAC運(yùn)行的時(shí)候,比如一個(gè)應(yīng)用程序或者一個(gè)線程以某個(gè)用戶(hù)UID或者SUID運(yùn)行的時(shí)候同樣對(duì)一些其他的對(duì)象擁有訪問(wèn)控制限制,比如文件,套接子(sockets)或者其他的線程通過(guò)運(yùn)行SElinux MAC內(nèi)核可以保護(hù)系統(tǒng)不受到惡意程序的侵犯.
或者系統(tǒng)本身的bug不會(huì)給系統(tǒng)帶來(lái)致命影響(把影響限定在一定范圍內(nèi))SElinux為每一個(gè)用戶(hù),程序,進(jìn)程,還有文件定義了訪問(wèn)還有傳輸?shù)臋?quán)限。然后管理所有這些對(duì)象之間的交互關(guān)系
對(duì)于SELinux設(shè)定的對(duì)象全限是可以根據(jù)需要在安裝時(shí)候規(guī)定嚴(yán)格程度,或者完全禁用在大多數(shù)情況下,SElinux對(duì)于用戶(hù)來(lái)說(shuō)是完全透明的,普通用戶(hù)根本感覺(jué)不到 Selinux的存在,只有系統(tǒng)管理員才需要對(duì)這些用戶(hù)環(huán)境,以及策略進(jìn)行考慮。
這些策略可以按照需要寬松的部署或者應(yīng)用嚴(yán)格的限制,Selinux提供 了非常具體的控制策略,范圍覆蓋整個(gè)linux系統(tǒng)比如,當(dāng)一個(gè)對(duì)象如應(yīng)用程序要訪問(wèn)一個(gè)文件對(duì)象,內(nèi)核中的控制程序檢查訪問(wèn)向量緩存 (AVC),從這里尋找目標(biāo)和對(duì)象的權(quán)限.
如果在這里沒(méi)有發(fā)現(xiàn)權(quán)限定義,則繼續(xù)查詢(xún)安全定義的上下關(guān)聯(lián),以及文件權(quán)限,然后作出準(zhǔn)許訪問(wèn)以及拒絕訪問(wèn)的決 定。如果在var/log/messages出現(xiàn)avc: denied信息,則表明訪問(wèn)拒絕。
目標(biāo)和對(duì)象通過(guò)安裝的策略來(lái)決定自身的安全關(guān)聯(lián),同時(shí)這些安裝的策略也負(fù)責(zé)給系統(tǒng)產(chǎn)生安全列表提供信息。除了運(yùn)行強(qiáng)制模式以外,SELinux可以運(yùn)行在許可模式,這時(shí)候,檢查AVC之后,拒絕的情況被記錄。Selinux不強(qiáng)制使用這種策略.
以下介紹一下SELinux相關(guān)的工具
- /usr/bin/setenforce 修改SELinux的實(shí)時(shí)運(yùn)行模式
- setenforce 1 設(shè)置SELinux 成為enforcing模式
- setenforce 0 設(shè)置SELinux 成為permissive模式
如果要徹底禁用SELinux 需要在/etc/sysconfig/selinux中設(shè)置參數(shù)selinux=0 ,或者在/etc/grub.conf中添加這個(gè)參數(shù)/usr/bin/setstatus -v
【編輯推薦】