若企業(yè)在微軟的操作系統(tǒng)上架立FTP服務(wù)器的話,是一件很輕松的事情。憑借微軟FTP服務(wù)器構(gòu)建向?qū)В梢允趾?jiǎn)單的構(gòu)建起一個(gè)FTP服務(wù)器。不過(guò),現(xiàn)在很少有網(wǎng)絡(luò)管理員會(huì)在微軟的服務(wù)器系統(tǒng)上構(gòu)建FTP服務(wù)器。因?yàn)槲④浀牟僮飨到y(tǒng)穩(wěn)定性不是很好,而且,網(wǎng)絡(luò)管理員還要為此進(jìn)行許多的安全性配置。為此,現(xiàn)在不少網(wǎng)絡(luò)管理員都喜歡在Linux或者Unit系統(tǒng)上配置FTP服務(wù)。因?yàn)橄鄬?duì)來(lái)說(shuō),穩(wěn)定性、安全性上來(lái)說(shuō),后者都要比前者高得多。
筆者也喜歡在Linux操作系統(tǒng)上配置FTP服務(wù),雖然其配置起來(lái)相對(duì)來(lái)說(shuō)比較麻煩一些。但是,在這個(gè)平臺(tái)上的FTP服務(wù)器穩(wěn)定性比較高,安全性也不用我們太多的設(shè)置。所以,我比較中意在Liunx服務(wù)器系統(tǒng)上配置FTP服務(wù)器。在這里,我就要談?wù)勗贚inux操作系統(tǒng)上配置FTP服務(wù)的一些問(wèn)題與技巧。
問(wèn)題一:如何查看是否啟動(dòng)了FTP服務(wù)?
在微軟的操作系統(tǒng)中,可以在控制面板、服務(wù)處,查看FTP服務(wù)是否正常啟動(dòng)。但是,在Linux中,則沒(méi)有這么簡(jiǎn)單,其需要查看相關(guān)的配置文件。
通常情況下,在Linux中,F(xiàn)TP服務(wù)器是通過(guò)inetd啟動(dòng)并且運(yùn)行的。若我們想知道Linux系統(tǒng)是否正常的開(kāi)啟了FTP服務(wù)的話,我們需要查看/etc/ined.conf 文件。在這個(gè)文件中,我們可以看到操作系統(tǒng)在啟動(dòng)的過(guò)程中,F(xiàn)TP服務(wù)啟動(dòng)是否正常。
若我們?cè)谶@個(gè)文件中,看到有如下的一條記錄,則說(shuō)明FTP服務(wù)器啟動(dòng)是正常的。
ftp stream tcp nowait root …….
若看到這條記錄的話,則說(shuō)明FTP服務(wù)已經(jīng)正常啟動(dòng)。若沒(méi)有這條信息的話,則說(shuō)明FTP服務(wù)器不是默認(rèn)啟動(dòng)的。為此,我們就需要在inetd啟動(dòng)文件中加入這條記錄,讓inetd啟動(dòng)的時(shí)候,自動(dòng)啟動(dòng)FTP服務(wù)器。
技巧:
有時(shí)候,inedd配置文件中,其內(nèi)容比較多。若我們一條條的查詢的話,可能并不是很快就可以找到這條記錄。為此,我們可以利用編輯器自帶的查詢命令,來(lái)查詢相關(guān)的內(nèi)容。在微軟操作系統(tǒng)中,一般采用F3鍵來(lái)打開(kāi)查詢窗口。而在Linux的配置文件編輯窗口中,則是通過(guò)“/”字符來(lái)開(kāi)啟查詢功能。其我們只需要輸入/ftp,就可以找到包含ftp 的相關(guān)記錄信息。不過(guò)這里要注意一個(gè)問(wèn)題,即在Linux系統(tǒng)中,大小寫(xiě)是敏感的。即我們?nèi)糨斎?FTP的話,可能就找不到我們所需要的內(nèi)容。我剛開(kāi)始接觸Linux操作系統(tǒng)的時(shí)候,經(jīng)常會(huì)犯類似的錯(cuò)誤。
問(wèn)題二:如何讓FTP服務(wù)器記錄用戶的相關(guān)操作?
有時(shí)候,為了FTP服務(wù)器的安全,我們會(huì)讓FTP服務(wù)器記錄用戶的相關(guān)操作。如用戶在什么時(shí)候在什么地方登陸了FTP服務(wù)器,執(zhí)行了一些什么操作等等。如此的話,當(dāng)FTP服務(wù)器出現(xiàn)故障的時(shí)候,網(wǎng)絡(luò)管理員可以查看這些信息,以了解FTP服務(wù)器到底出現(xiàn)了什么問(wèn)題等等。一般90%以上的FTP服務(wù)器故障,有經(jīng)驗(yàn)的網(wǎng)絡(luò)管理員,可以憑著這些日志信息迅速的解決問(wèn)題。
1、可以設(shè)置用戶登錄時(shí),其做了哪些操作會(huì)被記錄在一個(gè)特定的日志文件中。或者說(shuō),可以設(shè)定某個(gè)用戶類別在上載或者下載文件的時(shí)候所發(fā)生的相關(guān)信息記錄到某個(gè)日志文件中。要設(shè)置這些信息,網(wǎng)絡(luò)管理員一般需要在/etc/ftpaccess 這個(gè)配置文件中進(jìn)行設(shè)置。
如通過(guò)log transfer anonymous inbound ,outbound這個(gè)命令,就可以設(shè)置若用戶是匿名登陸的話,則其上載文件、下載文件等操作都會(huì)被記錄在相關(guān)的日志中。
2、重定向日志文件。有時(shí)會(huì)為了日志文件的安全,我們往往需要對(duì)他們進(jìn)行重定向。因?yàn)槿粲腥藧阂?font color="#16387c">攻擊FTP服務(wù)器的話,一般都會(huì)在服務(wù)器中留下痕跡。而為了隱藏自己的攻擊行為,他們?cè)诠舻贸芍螅瑫?huì)修改相關(guān)的日志文件。所以,我們有時(shí)候需要對(duì)日志文件進(jìn)行重定向,如此的話,非法攻擊者就很難在攻擊后,修改日志文件了。而我們網(wǎng)絡(luò)管理員在看到這個(gè)信息后,則就可以迅速的采取措施了。
#p#副標(biāo)題#e#
問(wèn)題三:如何限制用戶對(duì)FTP服務(wù)器的訪問(wèn)?
雖然我們可以憑借用戶名與密碼來(lái)控制用戶對(duì)FTP服務(wù)器的訪問(wèn)。但是,有時(shí)候,出于安全的考慮,我們還會(huì)進(jìn)行一些更加嚴(yán)格的限制。如只允許某個(gè)子網(wǎng)的IP地址或者某些特定的IP地址可以訪問(wèn)FTP服務(wù)器等等。為什么要做這些限制呢?這主要是因?yàn)椋赡苓@些FTP服務(wù)器有特殊的作用,而不是一般的文件服務(wù)器等等。
如對(duì)于一些文件服務(wù)器,我們需要對(duì)文件服務(wù)器上的數(shù)據(jù)進(jìn)行異地備份。以防止當(dāng)文件服務(wù)器出現(xiàn)當(dāng)機(jī)的時(shí)候,可以順利的利用異地備份的數(shù)據(jù)進(jìn)行恢復(fù)。為此,我們可以在文件服務(wù)器上,通過(guò)FTP服務(wù)向FTP服務(wù)器傳送數(shù)據(jù),以實(shí)現(xiàn)異地備份的需求。此時(shí),我們就只允許文件服務(wù)器可以訪問(wèn)這臺(tái)FTP服務(wù)器。為了備份數(shù)據(jù)的安全,我們就要進(jìn)行相關(guān)的設(shè)置,拒絕其他用戶訪問(wèn)這臺(tái)FTP服務(wù)器。
如有時(shí)候FTP服務(wù)器還可以作為日志備份服務(wù)器。像Oracle數(shù)據(jù)庫(kù)服務(wù)器以及其他的一些應(yīng)用系統(tǒng)服務(wù)器日志,都可以通過(guò)FTP命令以及操作系統(tǒng)的任務(wù)調(diào)度系統(tǒng),自動(dòng)的把日志文件上傳到FTP服務(wù)器中。為此,也要限制只有特定的主機(jī)才能夠以FTP的形式訪問(wèn)這臺(tái)服務(wù)器。若不做類似的限制,則安全性會(huì)比較差。
要實(shí)現(xiàn)這個(gè)目的,我們需要修改/etc/ftphosts配置文件。這個(gè)文件主要就是用來(lái)設(shè)置一些主機(jī)不允許訪問(wèn)這臺(tái)FTP服務(wù)器。網(wǎng)絡(luò)管理員可以利用allow 與deny連個(gè)參數(shù)來(lái)限制只有哪些主機(jī)可以訪問(wèn)或者哪些主機(jī)不能連接FTP服務(wù)器。
另外,一般情況下,為了安全起見(jiàn),我們往往需要設(shè)置不允許匿名訪問(wèn)FTP服務(wù)器。至少匿名用戶的話,不能夠往FTP服務(wù)器上上傳文件。否則的話,F(xiàn)TP服務(wù)器的空間可能就很難滿足需求。不少用戶會(huì)把FTP服務(wù)器當(dāng)作電影、歌曲等的集散地等等。為此,我們就需要更改另外一個(gè)參數(shù)配置文件,即/etc/ftpusers文件來(lái)限制某些用戶不允許使用FTP服務(wù)器傳輸文件。
問(wèn)題四:如何建立只允許FTP登陸的帳戶?
一般情況下,我們?cè)贚inux操作系統(tǒng)中建立用戶帳戶的話,其不僅可以通過(guò)FTP服務(wù)登陸到FTP服務(wù)器,而且其也可以直接利用這個(gè)用戶名登錄到FTP服務(wù)器所在的操作系統(tǒng)。這跟微軟服務(wù)器上部署的FTP服務(wù)器還是有一定的差異。很明顯,Linux操作系統(tǒng)如此設(shè)計(jì)的話,會(huì)影響到FTP服務(wù)器所在的操作系統(tǒng)的安全性。
所以,我們需要經(jīng)過(guò)相關(guān)的設(shè)置,讓這個(gè)FTP帳戶之能夠通過(guò)FTP服務(wù)的形式登錄到FTP服務(wù)器,而不能利用SSH協(xié)議遠(yuǎn)程登錄,或者不能直接作為操作系統(tǒng)的登錄用戶名。要實(shí)現(xiàn)這個(gè)目的,我們往往需要進(jìn)行如下的設(shè)置。
1、按常規(guī)程序新建立用戶名。我們先需要在Linux操作系統(tǒng)中,建立相關(guān)的用戶名。在建立用戶名的過(guò)程中,我們往往需要為FTP服務(wù)器建立一個(gè)獨(dú)立的組。然后把用戶名加入到這個(gè)組中。如此的話,我們就在后面就可以以組為單位限制其的訪問(wèn)模式了。
2、我們需要編輯“/etc/shells”文件,在這個(gè)配置文件中加入一個(gè)空的shell。這個(gè)空的shell可以限制用戶對(duì)FTP服務(wù)器的訪問(wèn)。如我們可以在這個(gè)配置文件中,加入如下一個(gè)空的shell,/dev/null。
技巧:一般來(lái)說(shuō),為了閱讀的方便,我們往往把自己添加的內(nèi)容放在配置文件的最后,并且,最好能夠添加相關(guān)的注釋。這主要是為了我們后續(xù)管理的方便。不然等時(shí)間長(zhǎng)了之后,我們自己都不知道為什么要加入這個(gè)項(xiàng)目。
3、再次編輯/etc/passwd配置文件。這里主要實(shí)現(xiàn)目錄的重定向。也就是說(shuō),當(dāng)前面設(shè)置的那個(gè)FTP組的用戶,訪問(wèn)FTP服務(wù)器的時(shí)候,其目錄會(huì)進(jìn)行重定向,會(huì)自動(dòng)轉(zhuǎn)到那個(gè)目錄中。只要是通過(guò)“.”這個(gè)符號(hào)把FTP目錄跟/目錄連接起來(lái)。通過(guò)如此的限制,F(xiàn)TP組的用戶就只能夠訪問(wèn)自己用戶下面的文件內(nèi)容,而不能夠訪問(wèn)所有的文件系統(tǒng)。
通過(guò)以上描述,我們可以發(fā)現(xiàn)單從配置上來(lái)說(shuō),Linux環(huán)境上的FTP服務(wù)器配置要比微軟的復(fù)雜的多。很多功能的話,都需要通過(guò)手工修改配置文件來(lái)實(shí)現(xiàn)。而微軟自帶的FTP服務(wù)器的話,則可以通過(guò)傻瓜式的向?qū)?lái)實(shí)現(xiàn)大部分的管理操作。但是,包括筆者在內(nèi)的很多網(wǎng)絡(luò)管理員還是喜歡采用Linux作為FTP服務(wù)器的載體。這主要是因?yàn)長(zhǎng)inux操作系統(tǒng)要比微軟的操作系統(tǒng)要穩(wěn)定。所以,部署在這上面的服務(wù)器,相對(duì)來(lái)收,也是前者穩(wěn)定的多。而且,F(xiàn)TP服務(wù)器的話,跟其他應(yīng)用服務(wù)器一樣,往往穩(wěn)定性是壓倒一切的。也許,在不久的將來(lái),當(dāng)微軟的操作系統(tǒng)比Linux更加穩(wěn)定的時(shí)候,可以改變這一現(xiàn)狀。


