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


