Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> 教你配置安全的ProFTPD服務器

教你配置安全的ProFTPD服務器

日期:2017/2/8 10:30:57      編輯:關於服務器

    proftpd全稱:Professional FTP daemon是針對Wu-FTP的弱項而開發的,除了改進的安全性,還具備許多Wu-FTP沒有的特點,能以Stand-alone、xinetd模式運行等。ProFTP已經成為繼Wu-FTP之後最為流行的FTP服務器軟件,越來越多的站點選用它構築安全高效的FTP站點,ProFTP配置方便,並有MySQL和Quota模塊可供選擇,利用它們的完美結合可以實現非系統賬號的管理和用戶磁盤的限制。ProFTPD 的特點:
    1. 單配置文件,其設置指示和apache的有類似之處,非常容易配置。
    2. 基於單個目錄的.ftpaccess設置文件,類似與apache的.htaccess文件。 
    3. 易於設置的多虛擬服務器和匿名ftp服務。 
    4. 可以設置為從xinetd啟動,或者是獨立ftp服務器兩種運行方式。 
    5. 匿名ftp的根目錄不需要任何特殊的目錄結構,或系統程序或其他系統文件。 
    6. ncfptd不執行任何外部程序,從而減少了安全隱患。 
    7. 可以根據文件屬主情況或unix風格的訪問控制來隱藏文件或目錄。 
     8. 以非root身份運行,從而減少了安全隱患。
    9. 強大的log功能,支持utmp/wtmp及wu-ftpd格式的記錄標准,並支持擴展功能的記錄。
    10. 支持Shadow密碼,包括支持密碼過期機制。
    11. 遵從GPL版權,開放源代碼。
    12. 可設定多個虛擬FTP server,而匿名FTP服務更是十分容易。
    13. 最新版本1.2.10 。ftpd.org/">http://www.ProFTPD.org 。

 一、基本ProFTPD服務器配置過程:

    1.如果安裝過wuftpd服務器首先卸載。ProFTPD最新版本是1.3.0,官方網址:ftpd.org/">http://www.ProFTPD.org 。下載鏈結:ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.bz2">ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.bz2

[root@ftpd /]# bunzip proftpd-1.3.0.tar.bz2 
[root@ftpd /]# cp proftpd-1.3.0.tar /usr/src/
 [root@ftpd /]# cd /usr/src
 [root@ftpd src]# tar xvf proftpd-1.3.0.tar
 [root@ftpd src]# cd proftpd-1.3.0
 [root@pftd proftpd-1.3.0]# ./configure ; make ; make install   

    到現在為止,你已經完成了proftpd的編譯和安裝。並且在/usr/local/etc/目錄下有一個默認的proftpd配置文件proftpd.conf。

    2.理解配置文件
   下面是默認安裝後的配置文件:
ServerName “ProFTPD Default Installation”
ServerType standalone
DefaultServer on
ServerIdent off
Port 21
Umask 022
MaxInstances 30
User nobody
Group nogroup
<Directory /*>
AllowOverwrite on
</Directory>
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
    這裡筆者去掉了所有注視。熟悉Apache服務器的配置方法的讀者很很容易理解。二者有許多相似之處。
單線指令,如ServerName and ServerType。
多線容器指令。如<Directory> and <Limit>。
配置服務器後應當知道配置文件中指令的含義。可以參考官方配置指南(下載鏈接:ftpd.org/docs/directives/configuration.pdf">http://www.proftpd.org/docs/directives/configuration.pdf )。下面主要介紹安全相關的部分。
ServerName :服務器名稱。在登入時所顯示的服務器名稱。確省是:“ProFTPD Default Installation”可以根據個人情況修改。
ServerType :服務器工作類型。ProFTPD能以Stand-alone、xinetd兩種模式運行。
DefaultServer:是否啟用虛擬FTP,on為支持,off是關閉。
ServerIdent :是否顯示FTP軟件名稱,on為顯示,off是關閉。
Port:運行端口。設定於登入時,主機是監聽那一個端口。
Umask:指定確省配置文件的權限一般是022。
MaxInstances:最大連接請求。設定服務器於同一時間內可以處理的程序有幾筆,若服務器運行類型設為standalone的話,可設低一點,以避免黑客的DoS攻擊。
User:指明運行FTP服務器的用戶名稱。
Group: 指明運行FTP服務器的用戶組名稱。
<Directory /*> 登入時想進入的目錄位置 (/*是通配符合),AllowOverwrite 表示是否允許客戶端覆蓋文件,這樣是不安全的應當選擇off。
</Anonymous> 是否建立匿名FTP站點。除非需要請刪除這個選型。
 DisplayLogin welcome.msg 設置ftp登陸歡迎信息文件。

    3.配置實例

建立一個單機(standalone)模式的FTP服務器:
 建立配置文件如下:
ServerName “FTP Server”
ServerType standalone
DefaultServer on
Port 21
Umask 027
MaxInstances 30
User nobody
Group nogroup
<Directory /*>
AllowOverwrite off
</Directory>

使用su命令切換為root用戶。
在/etc/rc.d/init.d目錄中安裝啟動腳本:cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d
  /init.d/proftpd
添加一個新組:groupadd nogroup。
建立符號鏈結讓FTP服務器隨啟動自動啟動:ln -/etc/rc.d/init.d/proftpd /etc/rc.d/rc3.d/S95proftpd 
測試連接情況:從客戶端測試proftpd是否正常運行:
  
C:WINDOWS>ftp 192.168.2.33
  Connected to 192.168.2.33.
  220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn]
  User (192.168.2.33:(none)): ideal
  Password:
  230 User ideal logged in.
  ftp>

ProFTPD的控制命令:/etc/rc.d/init.d/proftpd stop 關閉服務器
                       /etc/rc.d/init.d/proftpd start 啟動服務器
                       /etc/rc.d/init.d/ proftpd reload 重新加載修改後的配置文件etc/proftpd.conf並且啟動服務器。

    4.建立一個安全的匿名ProFTPD站點

    如果人們只需要從FTP服務器等到一些小文件(幾兆),可以使用Apache web服務器代替匿名FTP站點。如果要通過一個匿名賬號頻繁上傳、下載文件,就要建立一個安全的ProFTPD服務器。下面是配置文件/etc/proftpd.conf內容(其中incoming目錄容許用戶上傳文件):
<Anonymous ~ftp>
User ftp
Group ftp
RequireValidShell off
UserAlias anonymous ftp
MaxClients 40
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
<Limit READ>
DenyAll
</Limit>
</Directory>
</Anonymous>

    根據以上內容建立的ProFTPD服務器會為自動連接到匿名ProFTPD服務器的用戶創建一個chroot限制,用戶的主目錄為站點的根目錄。下面解釋主要配置指令的作用:
User 和 Group:這兩個指令確保User ftp和Group ftp擁有所有匿名會話。
RequireValidShell:由於在/etc/passwd中沒有用戶FTP的有效列表,所以該指令說明ProFTPD允許User ftp的匿名會話。
UserAlias:該指令把anonymous賦予FTP賬號,以便所有用戶可以使用ftp和anonymous作為用戶名登錄匿名FTP服務器。
MaxClients:這裡限制匿名連接數目是40,你可以根據系統負載設定連接數目。
<Directory>容器:這些容器給定目錄的各種限制:
第一個目錄容器對每個用戶和每個目錄禁止寫權限(包括上傳、刪除和修改)。
第二個目錄容器在incoming子目錄中給每個用戶寫權限。
最後一個Limit指令確保在incoming子目錄中上傳文件的用戶不能查看和恢復目錄中的文件。

 

Copyright © Windows教程網 All Rights Reserved