來源: http://www.ascc.sinica.edu.tw/nl/94/2112/02.txt 《資訊安全》 加強VSFTP的安全性 呂紹勳 FTP(File Transfer Protocol)這種傳輸協定在網路資料傳輸的 使用上,已經有相當多年的歷史。今天假設您有資料要傳送到某台 檔案伺服器上,一般來說,我們會使用的方法有以下兩種: 1.使用網路芳鄰的方式,將資料拷貝到該台檔案伺服器。 2.若是該台檔案伺服器提供FTP傳輸協定且具有FTP Server的功能, 那麼我們便可以使用如WS-FTP、Cute-FTP等工具軟體或是直接使 用FTP指令,將檔案上傳至該檔案伺服器上。 若是您有興趣,可利用IE、Netscape、FireFox等網頁瀏覽器連線 至網址『http://www.ccu.edu.tw/center/ycnet/note/seminar/www90.pdf』 去閱讀由古中平先生所撰寫的文章,其文章內容中,比較了FTP與網 路芳鄰在做資料傳輸時之優缺點。筆者將其做了個簡單的歸納,也 就是FTP不論是在穩定性或是傳輸速度上都較網路芳鄰為高。 說了這麼多,相信大家或許有興趣自己架設個FTP伺服器來玩玩。 然而,FTP傳輸協定是不加密的,因此讓其扮演傳輸『重要資料』的 角色,是不適當的,筆者也不建議。但是,若是資料無隱私性且檔 案Size相當地大,筆者認為使用FTP來傳送就非常地恰當。 在開放原始碼的世界裡,Linux可說是最知名的一種作業系統,而 FTP的套件更是有許許多多,以RedHat Linux為例,如果您在安裝系 統的時候,勾選了要安裝FTP的套件,此時VSFTP便會被安裝起來, 讓您的機器可扮演FTP伺服器的角色。 由於本文的主旨乃是介紹如何加強VSFTP的安全性,因此有關於如 何安裝VSFTP套件的方法,筆者就略過不談,若是讀者們有興趣的話, 坊間有許許多多介紹Linux伺服器架設的書籍可供參考;或是可連線 到網址『http://linux.tnc.edu.tw/techdoc/view/ftp/vsftpd』去 觀賞由臥龍小三先生所製作的線上教學,相信必定會對大家有相當 大的幫助。 大體來說,我們想要加強VSFTP伺服器的安全,須達到以下幾個主 要的重點: 1.不允許匿名使用者(anonymous)登入FTP伺服器。因為我們並沒 有必要提供組織裡的FTP伺服器服務給任何未經身份認證程序的使 用者使用。 2.必須限定同一時間,FTP伺服器只允許多少個用戶端連上FTP Server 進行上傳及下載的動作。此種機制是避免讓FTP伺服器負荷過重, 進而影響伺服器的效能及穩定性。 3.不允許權限最大的管理者root連線使用FTP伺服器,並進行上傳及 下載資料的動作。因為一旦root密碼不慎外洩,或是讓有心的駭 客得知,極有可能危及FTP伺服器的安全。 4.最好是將使用者限制在其家目錄下,不允許使用者任意切換到其 他的目錄去下載或瀏覽資料,以維護資料的機密性及安全性。 5.完善的Log記錄。此種機制可以提供管理者瞭解FTP伺服器的使用 情形,若有使用者不當的使用,管理者也可事後補救,以防止相 同情形再次發生。 要符合上述這些安全要點,我們必須修改VSFTP的設定檔案,在這 邊筆者以RedHat Linux 9.0版為例,我們可以利用文字編輯器例如 vi、pico或gedit等來編輯/etc/vsftpd/vsftpd.conf這個檔案,並 將下列幾行設定,修改成如下所顯示的: #第一點:不允許匿名使用者登入 anonymous_enable=NO #第二點:允許擁有帳號的使用者登入使用FTP local_enable=YES write_enable=YES local_umask=022 #第三點:使用Log機制,記錄使用者存取FTP伺服器的情形 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES #第四點:讓使用者只能待在自己的家目錄下,不允許使用者任意切 換或瀏覽其他的目錄 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list #第五點:使用PAM機制,阻止root登入FTP SERVER pam_service_name=vsftpd #第六點:使用VSFTP內建的機制,阻止root登入FTP SERVER userlist_enable=YES #第七點:FTP伺服器在同一時間,只允許讓多少個使用者連線登入 使用,假設允許五個,便填入5。若是都不限制,則刪除此行,或 是填入0都可以,預設值並沒有這行,使用者需自行加入。 max_clients=5 #第八點:利用井字號,註解掉以下各行 #anon_upload_enable=YES #anon_mkdir_write_enable=YES #chown_uploads=YES #chown_username=whoever 在上述第四點中,/etc目錄下預設並沒有vsftpd.chroot_list這 個檔案,所以使用者必須自己新增。此一檔案中,一個使用者名稱 一行,假若有多個使用者,便會產生許多行。假若您並不想將所有 的使用者都侷限在其家目錄下,方法很簡單,就是不要將該使用者 的名稱,加入到/etc/vsftpd.chroot_list這個檔案中即可,但是筆 者還是建議,最好將所有的使用者都限制在其家目錄下。 上述第五點中,因為我們有採用PAM(Pluggable Authentication Modules) 機制來限制root不允許登入使用FTP伺服器,也因此,我們必須檢查 /etc/vsftpd.ftpusers這個檔案中是否包含了root這個使用者,若 是沒有的話,記得要加上去。 而上述第六點中,筆者亦利用VSFTP套件的內建機制來限制root登 入使用FTP伺服器,藉此做到雙重管制。是故,我們也必須檢查 /etc/vsftpd.user_list這個檔案裡是否有root這個使用者名稱,沒 有的話,也要記得加上去。 最後我們再來看看第七點,此一設定值是讓FTP伺服器管制同一時 間裡只允許多少個連線,從而來維持伺服器的穩定性,否則一旦連 線數過多,進而超過了FTP伺服器所能承受的範圍,機器很容易便會 Crash掉,導致服務中斷。 或許有人會問:設定允許多少個使用者同一時間連線至FTP伺服器 是最恰當的呢?其實筆者並沒有最確實的數據,可以提供給大家參 考。因為這一切都要看您伺服器的『硬體配備』以及『是否有其他 的服務』在上面執行,若是有其他的服務在上面執行,我們可以將 連線數稍微設少一點,若是沒有,則可提高一些,端看您的環境而 定。 FTP傳輸協定之所以不容易被取代,皆是因為其傳輸速度快及穩定 性高。但是我們在享受這種便利服務的同時,還是得時時注意伺服 器本身的安全性,如此才能讓管理者放心,而使用者用得開心。 (註:本文作者任職於數學所資訊室)
文章標籤
全站熱搜
創作者介紹
創作者 付爸爸 的頭像
付爸爸

付爸爸的神奇日記本

付爸爸 發表在 痞客邦 留言(0) 人氣(599)