Linux系統 改善FTP伺服器的安全性

來源:互聯網
上載者:User

如何防止攻擊者通過非法手段竊取FTP伺服器中的重要訊息;如何防止攻擊者利用FTP伺服器來傳播木馬與病毒等等。這些都是系統管理員所需要關注的問題。這次我就已Linux作業系統平台上使用的最廣泛的VSFTP為例,談談如何來提高FTP伺服器的安全性。

  一、禁止系統層級使用者來登入FTP伺服器。

  為了提高FTP伺服器的安全,系統管理員最好能夠為員工設定單獨的FTP帳號,而不要把系統層級的使用者給普通使用者來使用,這會帶來很大的安全隱患。在VSFTP伺服器中,可以通過設定檔vsftpd.ftpusers來管理登陸帳戶。不過這個帳戶是一個黑名單,列入這個帳戶的人員將無法利用其帳戶來登入FTP伺服器。部署好VSFTP伺服器後,我們可以利用vi命令來查看這個設定檔,發現其已經有了許多預設的帳戶。其中,系統的超級使用者root也在其中。可見出於安全的考慮,VSFTP伺服器預設情況下就是禁止root帳戶登陸FTP伺服器的。如果系統管理員想讓root等系統帳戶登陸到FTP伺服器,則知需要在這個設定檔中將root等相關的使用者名稱刪除即可。不過允許系統帳戶登入FTP伺服器,會對其安全造成負面的影響,為此我不建議系統管理員這麼做。對於這個檔案中相關的系統帳戶管理員最好一個都不要改,保留這些帳號的設定。

  如果出於其他的原因,需要把另外一些帳戶也禁用掉,則可以把帳戶名稱字加入到這個檔案中即可。如在伺服器上可能同時部署了FTP伺服器與資料庫伺服器。那麼為了安全起見,把資料庫管理員的帳戶列入到這個黑名單,是一個不錯的做法。

  二、加強對匿名使用者的控制。

  匿名使用者是指那些在FTP伺服器中沒有定義相關的帳戶,而FTP系統管理員為了便於管理,仍然需要他們進行登陸。但是他們畢竟沒有取得伺服器的授權,為了提高伺服器的安全性,必須要對他們的許可權進行限制。在VSFTP伺服器上也有很多參數可以用來控制匿名使用者的許可權。系統管理員需要根據FTP伺服器的安全層級,來做好相關的配置工作。需要說明的是,匿名使用者的許可權控制的越嚴格,FTP伺服器的安全性越高,但是同時使用者訪問的便利性也會降低。故最終系統管理員還是需要在伺服器安全性與便利性上取得一個均衡。

  下面是我推薦的幾個針對匿名使用者的配置,大家若不清楚該如何配置的話,可以參考這些配置。這些配置兼顧了伺服器的安全與使用者的使用便利。

  一是參數anon_world_readable_only。這個參數主要用來控制匿名使用者是否可以從FTP伺服器上下載可閱讀的檔案。如果FTP伺服器部署在企業內部,主要供企業內部員工使用的話,則最好把這個參數設定為YES。然後把一些企業常用表格等等可以公開的檔案放置在上面,讓員工在匿名的情況下也可以下載這些檔案。這即不會影響到FTP伺服器的安全,而且也有利於其他員工操作的便利性上。

  二是參數anon_upload_enable。這個參數表示匿名使用者能否在匿名訪問的情況下向FTP伺服器上傳檔案。通常情況下,應該把這個參數設定為No。即在匿名訪問時不允許使用者上傳檔案。否則的話,隨便哪個人都可以上傳檔案的話,那對方若上傳一個病毒檔案,那企業不是要遭殃了。故應該禁止匿名使用者上傳檔案。但是這也有例外。如有些企業通過FTP協議來備份檔案。此時如果商業網路的安全性有所保障的話,可以把這個參數設定為YES,即允許作業系統調用FTP命令往FTP伺服器上備份檔案。在這種情況下,為了簡化備份程式的部署,往往採用匿名訪問。故需要在FTP伺服器上允許匿名使用者上傳檔案。

  三是參數anon_other_write_enable與參數anon_mkdir_write_enable。這兩個參數主要涉及到匿名使用者的一些比較進階的許可權。如第一個參數表示匿名使用者具有上傳和建立子目錄之外的許可權,如可以更改FTP伺服器上檔案的名字等等。而第二個參數則表示匿名使用者可以在特定的情況下建立子目錄。這些功能都會影響到FTP伺服器的安全與檔案的安全。為此除非有特別需要的原因,否則的話都應該把這些許可權禁用掉。即把這些參數的值設定為NO。我認為,除非FTP伺服器是系統管理員拿來玩玩的,可以開啟這些參數。否則的話,還是把這些參數設定為NO為好,以提高FTP伺服器的安全。

  總的來說,對於匿名使用者的控制要遵循許可權最小原則。因為匿名使用者是FTP伺服器沒有授權的使用者,故無法進行深層級的許可權存取控制。為此只有通過這些基本參數來實現對其的控制。

  三、做好目錄的控制。

  通常情況下,系統管理員需要為每個不同的使用者佈建不同的根目錄。而為安全起見,不讓不同使用者之間進行相互的幹擾,則系統管理員需要設定不讓使用者可以訪問其他使用者的根目錄。如有些企業為每個部門設定了一個FTP帳戶,以利於他們交流檔案。那麼銷售部門Sales有一個根目錄sales;倉庫部門有一個根目錄Ware。作為銷售人員工來說,他們可以訪問自己根目錄下的任何子目錄,但是無法訪問倉庫使用者的根目錄Ware。如此的話,銷售部門員工也就無法訪問倉庫使用者的檔案了。可見,通過限制使用者訪問根目錄以外的目錄,可以防止不同使用者之間相互幹擾,以提高FTP伺服器上檔案的安全。為了實現這個目的,可以把參數chroot_local_user設定為NO。如此設定後,所有在本地登陸的使用者都不可以進入根目錄之外的其他目錄。不過在進行這個控制的時候,最好能夠設定一個大家都可以訪問的目錄,以存放一些公用的檔案。我們既要保障伺服器的安全,也不能夠因此影響到檔案的正常共用交流。

  四、進行傳輸速率的限制。

  有時候為了保障FTP伺服器的穩定運行,需要對其檔案上傳下載的速率進行限制。如在同一台伺服器上,分別部署了FTP伺服器、郵件伺服器等等。為了這些應用服務能夠和平共處,就需要對其的最大傳輸速率進行控制。因為同一台伺服器的頻寬是有最大限制的。若某個應用服務佔用比較大的頻寬時,就會對其他應用服務產生不利的影響,甚至為導致其他應用服務無法正常相應使用者的需求。再如有時候FTP用途的不同,也需要設定最大速率的限制。如FTP同時作為檔案備份與檔案上傳下載等用途,那麼為了提高檔案備份的效率,縮短備份時間就需要對檔案上傳下載的速率進行最大值的限制。

  為了實現傳輸速率的限制,系統管理員可以設定local_max_rate參數。預設情況下,這個參數是不啟用的,即沒有最大速率的限制。不過基於以上這些原因,我還是建議各位系統管理員在把FTP伺服器投入生產運營之前能夠先對這個參數進行設定。防止因為上傳下載耗用了過多的頻寬而對其他應用服務產生負面的影響。系統管理員需要在各個應用服務之間取得一個均衡,合理的分配頻寬。至少要保證各個應用服務能夠正常響應客戶的請求。另外在有可能的情況下,需要執行錯峰運行。如在一台主機上同時部署有郵件伺服器與FTP伺服器。而FTP伺服器主要用來進行檔案備份。那麼為了防止檔案備份對郵件收發產生不利影響(因為檔案備份需要比較大的頻寬會在很大程度上降低郵件收發的速度),最好能夠把檔案備份與郵件收發的高峰時期分開來。如一般情況下早上上班時是郵件收發的高峰時期,那就不要利用FTP服務來進行檔案備份。而中午休息的時候一般收發郵件就比較少了。此時就可以利用FTP來進行檔案備份。所以把FTP伺服器與其他應用服務錯峰運行,那麼就可以把這個速率設定的大一點,以提高FTP服務的運行效率。當然,這對系統管理員提出了比較高的要求。因為系統管理員需要分析各種應用,然後再結合伺服器的部署,來進行綜合的規劃。除非有更高的措施與更好的條件,否則的話對FTP伺服器進行最大速率傳輸是必須的。否則的話,會對企業中部署的其他資訊化服務帶來非常大的不利影響,會造成商業網路的阻塞。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.