linux proftp配置 目的:配置一個穩定、功能要求不高的ftp伺服器。新增一個使用者,該使用者限制在預設目錄下,有可讀可寫入權限。 www.2cto.com 原因:公司伺服器上臨時需要添加ftp服務,redhat8.0上內建wu-ftp和vsftp,wu-ftp自身有安全問題,vsftp效能和安全都很好,但配置的參數比較多,所有還是選用了proftpd軟體及環境:proftpd-1.2.9.tar.gz(這裡我們使用的源碼包)+redhat8.0 proftpd的:www.proftpd.orgProFTP的設定:1、解壓proftpdtar xvzf proftpd-1.2.9.tar.gz2、安裝proftpdcd proftpd-1.2.9#將proftpd安裝到/usr/local/proftpd目錄下./configure --prefix=/usr/local/proftpdmakemake install#到此proftpd安裝完畢3、建立一個目錄,並賦予777許可權 www.2cto.com mkdir /usr/local/proftpd/pubftpchmod 777 /usr/local/proftpd/pubftp4、建立一個使用者pubftpuseradd pubftp5、修改該使用者的預設登陸目錄vi /etc/passwd找到pubftp使用者所在的行,修改預設登陸目錄到第3步建立的目錄上例如:pubftp:x:504:504::/usr/local/proftpd/pubftp:/bin/bash6、修改proftpd.conf設定檔編輯/usr/local/proftpd/etc/proftpd.conf,找到“Group nobody”,改為“Group nobody”,因為RedHat Linux8.0中沒有“nobody”這個組。在proftpd.conf加入 DefaultRoot ~ 一句,這一句就將ftp使用者限制在自己的目錄下。7、啟動proftpd,並設定proftpd為自啟動(伺服器重啟,proftpd服務將自動載入)#啟動/usr/local/proftpd/sbin/proftpd#加為自啟動cp /usr/local/proftpd/sbin/proftpd /etc/init.d/proftpd8、測試ftp是否正常#在伺服器端,查看21連接埠是否已經啟動netstat -an|grep LISTEN#用戶端,查看ftp是否能正常串連ftp 192.168.0.1如果一切都正常的化,那這個ftp伺服器就已經配置好了:) 附錄1:FAQ1、Proftpd如何限速和設定發獃退出?可以使用:RateReadBPS RateReadFreeBytesRateWriteBPS RateWriteFreeBytes來限制下載和上傳速度:RateReadBPS和RateWriteBPS限制下載和上傳的速率RateReadFreeBytes和RateWriteFreeBytes限制當使用者現在這麼多資料量以後再進行限速,這樣可以實現對於小檔案不限速,而大檔案限速。 TimeoutIdle -- 設定空閑連線逾時時鐘TimeoutLogin -- 設定空閑登陸逾時時鐘TimeoutNoTransfer -- 設定當沒有資料轉送時的逾時時鐘TimeoutStalled -- 設定被阻塞的下載的逾時時鐘2、proftpd如何?磁碟限額 首先編譯的時候指定--with-modules的時候要包含mod_quota。然後在設定檔中使用:Quotas onQuotaCalc onDefaultQuota 8000QuotaBlockSize 1024QuotaBlockName kb就可以實現磁碟限額。其中DefaultQuota說明使用者只能用8000個block,而QuotaBlockSize則指明每個block大小是1024byte也就是1k。QuotaBlockName只在提示中出現,告訴使用者block的單位。3、如何設定proftpd的服務進程數如果機器硬體設定不是非常好,或者為了防止DoS攻擊,有時候需要限制proftpd所能提供的同時串連數。在standalone情況下,可以設定:MaxInstances 100這樣就能限制當外界的所有串連數到100的時候,proftpd將禁止新串連。4、Proftpd如何限制每個用戶端機器的同時串連 只要在設定檔裡面使用:MaxClientsPerHost 10這樣限制用戶端機器最多隻能10個串連。用在匿名使用者的配置中特別有用,有效地防止了某個用戶端大量佔用了其他人的串連數。5、Proftpd如何限制某個使用者的同時串連數 Proftpd 1.2.7rc1以後提供了一個新參數-MaxClientsPerUser。在設定檔中添加下列參數:MaxClientsPerUser 5這樣就能限制每個使用者只能同時有5個串連,使用例如flashget等下載工具的時候就最多隻能分成5塊下載。6、Proftpd如何提供續傳功能 如果要支援下載續傳,那麼必須指定:AllowRetrieveRestart on如果要支援上傳續傳,那麼必須指定:AllowOverwrite onAllowStoreRestart on必須同時指定AllowOverwrite和AllowStoreRestart的原因是由於重新上傳或者續傳也是屬於覆蓋檔案。同時記得不要同時使用HiddenStor和AllowStoreRestart。7、proftpd如何允許以root身份登入 在設定檔中使用下面的配置:RootLogin on 8、如何縮短串連到proftpd服務的時間在proftpd.conf裡面加入兩行:UseReverseDNS offIdentLookups off防止proftpd進行DNS反查以及對使用者端進行ident確認。附錄2:一個proftpd.conf的例子# This is a basic ProFTPD configuration file (rename it to# 'proftpd.conf' for actual use. It establishes a single server# and a single anonymous login. It assumes that you have a user/group# "nobody" and "ftp" for normal operation and anon.ServerName "ProFTPD Default Installation"ServerType standalone #設定FTP以Standalone模式運行,而不是以dameon模式 DefaultServer onDefaultRoot ~ #將使用者限制在預設目錄下UseReverseDNS off #防止proftpd進行DNS反查以及對使用者端進行ident確認IdentLookups off# Port 21 is the standard FTP port.Port 21 #FTP服務預設佔用的連接埠# Umask 022 is a good standard umask to prevent new dirs and files# from being group and world writable.Umask 022 #預設使用者許可權設定# To prevent DoS attacks, set the maximum number of child processes# to 30. If you need to allow more than 30 concurrent connections# at once, simply increase this value. Note that this ONLY works# in standalone mode, in inetd mode you should use an inetd server# that allows you to limit maximum number of processes per service# (such as xinetd)MaxInstances 30# Set the user and group that the server normally runs at.User nobody #設定FTP服務以nobody運行Group nobody# Normally, we want files to be overwriteable.<Directory /*> AllowOverwrite on</Directory># A basic anonymous configuration, no upload directories.<Anonymous ~ftp> User ftp #匿名登入使用ftp使用者 Group ftp #匿名登入使用ftp組 # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp #給ftp使用者anonymous的別名,使得anonymous登入就是ftp使用者登入