陳金蓮
(黃岡職業(yè)技術(shù)學(xué)院 電子信息學(xué)院, 湖北 黃岡 438002)
Linux下FTP 服務(wù)器配置的幾個(gè)疑難點(diǎn)分析
陳金蓮
(黃岡職業(yè)技術(shù)學(xué)院 電子信息學(xué)院, 湖北 黃岡 438002)
ftp服務(wù)器是互聯(lián)網(wǎng)中非常重要、應(yīng)用廣泛的一種服務(wù)器,在linux的純純本配置環(huán)境下有很多細(xì)節(jié)地方容易使學(xué)習(xí)者產(chǎn)生混亂。通過對(duì)配置過程中一些疑難點(diǎn)進(jìn)行由現(xiàn)象到原因的分析,讓學(xué)習(xí)者對(duì)linux環(huán)境下的ftp服務(wù)器配置有一個(gè)更清楚的認(rèn)識(shí),以便在具體應(yīng)用中能做到有的放矢。
ftp服務(wù)器;匿名用戶;權(quán)限;安全控制
Linux下的FTP服務(wù)器是一種常見的服務(wù)器,基本配置過程看似簡單,但要想弄清整個(gè)配置過程,還是有相當(dāng)多的問題要解決的。
Linux下的 FTP服務(wù)器軟件比較多,比如vsftpd、WU-ftp等,其中以vsftpd最為常見。下面以vsftpd為例來解析這幾個(gè)疑難點(diǎn)。
我們都知道,ftp服務(wù)器在默認(rèn)情況下可以匿名登錄,匿名的帳號(hào)和密碼都是ftp,匿名登錄的主目錄是/var/ftp,匿名的讀權(quán)限默認(rèn)就有,在此情況下匿名帳號(hào)可登錄系統(tǒng),并完成資源的下載。但當(dāng)手動(dòng)開放/var/ftp目錄的寫權(quán)限,并允許匿名用戶可上傳文件(亦即對(duì)主目錄可寫),如圖1和圖2所示。
圖1 開放主目錄的寫權(quán)限
圖2 允許匿名用戶上傳文件
再次通過客戶端登錄系統(tǒng),則出現(xiàn)如圖 3所示提示信息,在開啟匿名用戶對(duì)服務(wù)器根目錄的寫權(quán)限的情況下,vsftpd拒絕運(yùn)行,直接關(guān)閉客戶端連接。
經(jīng)過多方查證,原來linux下的ftp出于安全的考慮,禁止匿名帳號(hào)對(duì)服務(wù)器根目錄的寫權(quán)限,而對(duì)于非匿名帳號(hào),則無此限制[1],如圖4所示。
圖3 禁止匿名帳號(hào)登錄
圖4 允許非匿名帳號(hào)登錄
而解決這一問題的方法很很單,對(duì)于匿名用戶而言,在根目錄下建一個(gè)子目錄,讓匿名帳號(hào)對(duì)子目錄有寫權(quán)限即可完成匿名帳號(hào)的上傳功能。其實(shí),對(duì)于一般的ftp服務(wù)器而言,匿名帳號(hào)的上傳權(quán)限一般不開放的,否則服務(wù)器的安全無法保證。
ftp服務(wù)器不僅可以匿名登錄,還可以允許帳號(hào)認(rèn)證登錄,這個(gè)帳號(hào)數(shù)據(jù)庫共用了/etc/passwd文件中的本地帳號(hào)。默認(rèn)情況下,所有本地普通帳號(hào),都可以用于ftp服務(wù)器的登錄,而root帳號(hào)和系統(tǒng)帳號(hào)則不能,這是如何實(shí)現(xiàn)的呢?還有,如果只想讓部分指定的本地用戶能登錄 ftp服務(wù)器(這也是正常的工程環(huán)境需求),這又如何來實(shí)現(xiàn)呢?下面的分析會(huì)給出一個(gè)清晰的答案。
ftp服務(wù)器軟件包安裝成功后,在/etc/vsftpd目錄下除了有 vsftpd.conf的主配置文件外,還有ftpusers和user_list兩個(gè)帳號(hào)配置文件,這兩個(gè)文件中默認(rèn)就有系統(tǒng)帳號(hào)和 root帳號(hào),而且系統(tǒng)帳號(hào)和 root帳號(hào)默認(rèn)是不能網(wǎng)絡(luò)登錄到 ftp服務(wù)器的。那么,這兩個(gè)文件中的帳號(hào)是如何控制哪些用戶能網(wǎng)絡(luò)登錄ftp服務(wù)器,哪些不能登錄呢?新添加的用戶是否加到這兩個(gè)文件中或其中一個(gè)呢?[2]
/etc/vsftpd目錄下的user_list文件中的帳號(hào)是登錄白名單還是黑名單,與主配置文件vsftpd.conf中的userlist_enalbe和userlist_deny兩個(gè)配置選項(xiàng)的值有關(guān),而ftpusers則是獨(dú)立起作用。它們之間存在以下關(guān)系。
首先,ftpusers文件中的帳號(hào)會(huì)一直是登錄ftp服務(wù)器的黑名單,其中的帳號(hào)不受主配置文件的控制,所以,如果只是簡單地讓某個(gè)用戶無法登錄ftp服務(wù)器的話,只需要將其帳戶名加入到該文件中,做為一個(gè)獨(dú)立行即可[3]。而user_list文件中的帳號(hào)則有登錄白名單或黑名單兩種可能,是黑名單還是白名單與主配置文件中的兩個(gè)配置項(xiàng)的值存在以下三種關(guān)系:
(1)如果Userlist_enalbe=yes ,Userlist_deny=no 則userlist文件中的帳號(hào)為登錄白名單
(2)如果Userlist_enalbe=yes ,Userlist_deny=yes,則 user_list文件中的帳號(hào)為登錄黑名單。在缺省的情況下,userlist_deny=yes。
(3)如果Userlist_enalbe=no ,Userlist_deny=no(或yes),則user_list文件不起控制作用,所有本地用戶都能登錄。
系統(tǒng)的缺省配置是 Userlist_enalbe=yes,而userlist_deny配置選項(xiàng)沒有,這就是以上關(guān)系的第二種,即user_list文件是黑名單。
ftp服務(wù)器安裝成功后,按照默認(rèn)配置,在圖形模式下,就能以匿名的方式訪問服務(wù)器,并且我們知道訪問的主目錄是/var/ftp。如果是在命令行的方式下匿名訪問服務(wù)器的話,需要輸入形式上的用戶名和密碼,它們都是“ftp”,而這些信息在ftp服務(wù)器的初始配置文件中并無相關(guān)配置選項(xiàng)涉及。那么,服務(wù)器系統(tǒng)是通過什么來檢查和控制匿名用戶的訪問呢?經(jīng)過查閱vsftpd說明文件[4],原來在ftp軟件包的安裝過程中,安裝程序自動(dòng)在系統(tǒng)的帳號(hào)和組數(shù)據(jù)庫/etc/passwd、/etc/group文件中分別創(chuàng)建了以下內(nèi)容:
ftp:X:14:50:FTP User:/var/ftp:/sbin/nologin
ftp:x:50:
以上信息說明,帳號(hào)ftp登錄系統(tǒng)的主目錄是/var/ftp目錄,并且該帳號(hào)不允許控制臺(tái)登錄。
當(dāng)然,/var/ftp目錄只是匿名帳號(hào)的默認(rèn)登錄目錄,管理員可以在配置文件中通過配置項(xiàng)anon_root和local_root分別將匿名用戶和本地用戶的登錄點(diǎn)導(dǎo)向其它的目錄。
SELinux即Security-Enhanced linux,是linu x內(nèi)核2.6及以后版本中提供的一個(gè)內(nèi)核級(jí)別的強(qiáng)制訪問控制系統(tǒng),在這種安全控制機(jī)制下,進(jìn)程只能訪問那些在他的任務(wù)中所需要文件,開啟SE Linux使得系統(tǒng)的安全級(jí)別由原來的C2級(jí)上升到了 B1級(jí),極大地提高了系統(tǒng)的安全性[5]。所以,一般情況下,不建議關(guān)閉SELinux。但開啟SELin ux,使進(jìn)程對(duì)系統(tǒng)資源的訪問有諸多限制,對(duì)于不熟悉SELinux機(jī)制的管理者而言,可能會(huì)在架設(shè)服務(wù)器的過程中造成一些令人迷惑不解的故障[6]。下面僅以一例說明之。
在開啟SELinux的情況下,已經(jīng)在配置文件中給了匿名帳號(hào)創(chuàng)建目錄的權(quán)限,即anon_mkdir_wr ite_enable=YES,也在本地權(quán)限中對(duì)pub目錄給了其它用戶組寫權(quán)限,如下列表:
drwxrwxrwx 4 root root 4096 04-12 18:39 pub
但匿名登錄后在 pub目錄下創(chuàng)建新目錄時(shí),出現(xiàn)如圖5所示提示。
圖5 無法創(chuàng)建目錄
其它配置不做任何修改,直接關(guān)閉SELinux,再來創(chuàng)建目錄,則可成功創(chuàng)建,如圖6所示。
圖6 成功創(chuàng)建目錄
怎么在打開SELinux的情況下,允許匿名用戶來寫目錄呢?通過查閱系統(tǒng)的日志文件可知,應(yīng)該修改pub目錄的安全上下文,并將策略allow_ft pd_anon_write設(shè)置為1才可。用命令chcon -R-t public_content_rw_t pub 修改pub目錄的安全上下文;用命令setsebool –P allow_ftpd_a non_write=1修改bool值,開放匿名ftp進(jìn)程對(duì)目錄的寫權(quán)限。這些設(shè)置完成之后,再去創(chuàng)建目錄,則能成功創(chuàng)建[7]。
在ftp服務(wù)器的配置過程中,我們不僅要關(guān)注配置文件中的相關(guān)配置項(xiàng),資源在系統(tǒng)中的本地權(quán)限的設(shè)置,在開啟了SELinux功能的系統(tǒng)中,還要關(guān)注相應(yīng)資源的 SELinux安全上下文類型及相應(yīng)的bool值的設(shè)置,將三者有機(jī)地結(jié)合起來,才能避免在設(shè)置過程中出現(xiàn)一些莫名其妙的問題。
[1]Bovet.深入理解 Linux 內(nèi)核[M].北京:中國電力出版社,2008.
[2]劉曉輝.網(wǎng)管天下[M].北京:電子工業(yè)出版社,2011.
[3]Matt Welsh &LarKaufman.Linux 權(quán)威指南[M].北京:中國電力出版社,2000.
[4]余柏山.Linux 系統(tǒng)管理與網(wǎng)絡(luò)管理[M].北京:清華大學(xué)出版社,2010.
[5]趙炯.Linux 內(nèi)核完全剖析[M].北京:機(jī)械工業(yè)出版社,2006.
[6]張恒杰.Red Hat Enterprise Linux 服務(wù)器配置與管理[M].北京:清華大學(xué)出版社,2013.
[7]丁明一.Linux 運(yùn)維之道[M].北京:電子工業(yè)出版社,2016.
Analysis of Some Difficulties in FTP Server Configuration under Linux
Chen Jinlian
(Huanggang Vocational and Technical College, Huanggang 438002 Hubei)
The FTP server is one of the most important and widely used servers in the Internet. In the pure text configuration environment of linux, there are many details that can easily cause confusion to learners.Through the analysis of some difficult points in the configuration process from phenomenon to reason, the learners can have a clearer understanding of ftp server configuration in linux environment, so that they can be targeted in specific applications.
FTP server; Anonymous user; Permissions; Security control
TP311.53
A
1672-1047((2017)06-0113-03
10.3969/j.issn.1672-1047.2017.06.34
2017-11-18
陳金蓮,女,湖北紅安人,碩士,高級(jí)工程師。研究方向:網(wǎng)絡(luò)工程、網(wǎng)絡(luò)安全。
羅幼平]