前言
Pure-ftpd提供了一個輕量級、快速、多語言、具備基本功能特性的FTPServer配置方案。本文展示瞭如何在CentOS7.x上安裝和配置Pure-ftpd,並在此過程中闡述PUre-Ftpd的設計特性。
安裝
首先需要開啟epel,才有pure-ftpd的源,一條命令安裝好:
yum -y install epel-release && yum -y install pure-ftpd
複製程式碼
配置
不同於其他的多數守護程式(daemon),Pure-FTPd 的配置比較特別:它不讀取任何的配置檔案,配置選項都是通過命令列引數來實現的。例如:引數 `-H` 被設計為通過避免 DNS 查詢來加快伺服器的速度。要啟用該特性,我們只需要將其加到命令列中: pure-ftpd -H 。備選的長引數也被支援的,下面是一個等價的命令 pure-ftpd –dontresolve
針對喜歡配置檔案的使用者,Pure-FTPd 官方給出了一種方案:通過一個封裝(wrapper)工具,將配置檔案解析並將其轉換成命令列引數。首先根據自己的需要編輯配置檔案 pure-ftpd.conf,而後通過下面的命令啟動 pure-config.pl /etc/pure-ftpd.conf。pure-config.pl 是一個 perl 指令碼,它根據配置檔案採用合適的命令列選項來呼叫 pure-ftpd
以上段落是抄的。原文已經掛了………………
所以我們需要先配置一下pure-ftpd.conf 來預定義一下命令列引數,個人推薦以下配置:
ChrootEveryone yes //鎖定所有使用者到家目錄中
# TrustedGID 100 //信任組ID100,可以不鎖定
MaxClientsNumber 50 //最大的客戶端數量
MaxClientsPerIP 8 //同一個IP允許8個連結
DisplayDotFiles no //不顯示隱藏檔案
AnonymousOnly no //只允許匿名使用者
NoAnonymous yes//不允許匿名使用者
DontResolve yes //禁止反向解析
MaxIdleTime 10 //最大空閒10分鐘
# LDAPConfigFile /etc/pureftpd-ldap.conf //LDAP配置檔案目錄
# MySQLConfigFile /etc/pureftpd-mysql.conf//MySQL配置檔案目錄
# PGSQLConfigFile /etc/pureftpd-pgsql.conf //PGSQL配置檔案目錄
PureDB etc/pure-ftpd/pureftpd.pdb //虛擬使用者資料庫,CentOS下預設位置
# UnixAuthentication yes //主機認證
LimitRecursion 2000 10 //別表最大顯示2000個檔案,最深8個目錄
AnonymousCanCreateDirs no //是否允許匿名使用者建立目錄
#MaxLoad 4 //最多可下載的數量
# PassivePortRange 30000 50000 //主動連線的埠範圍
ForcePassiveIP 192.168.0.1 //這個地址總是直到匿名目錄
# AnonymousRatio 1 10 //匿名使用者上傳下載速度比率
# UserRatio 1 10 //使用者上傳下載速度比率
# Bind 127.0.0.1,21 //繫結IP和埠
# AnonymousBandwidth 8 //匿名使用者頻寬8KB
# UserBandwidth 8 //使用者頻寬8KB
Umask 133:022 //檔案和目錄的umask
MinUID 1000 //使用者ID至少要大於1000才能登陸
AllowUserFXP no //是否允許使用者使用FXP協議登陸
AllowAnonymousFXP no //是否允許匿名使用者使用FXP協議
ProhibitDotFilesWrite no //是否允許寫入點檔案
ProhibitDotFilesRead no //是否允許讀取點檔案
AnonymousCantUpload yes //不允許匿名使用者上傳
#NoChmod yes //不允許使用者改變許可權
#KeepAllFiles yes //允許使用者斷點續傳
#Quota 1000:10//磁碟配額
MaxDiskUsage 80 //磁碟的最大利用率
#NoRename yes //不允許自動重新命名
IPV4Only yes //只允許使用IPV4協議
ClientCharset utf-8 //客戶端預設編碼
複製程式碼
其實在CentOS下,/etc/pure-ftpd/
下存在一個預設的pure-ftpd.conf
,每一行都有詳盡的註釋,有時間可以閱讀一下。
許可權與使用者
首先我們需要新建一個使用者,此使用者作為pure-ftpd虛擬使用者的依託使用者,此使用者的home directory也將作為FTP root,當然你新建目錄的時候也可以不指定home directory,並在建立完畢以後將FTP root chown給此使用者。
groupadd ftpgroup //新建系統組
useradd -g ftpgroup -M -s /sbin/nologin ftpadmin //新建一個FTP使用者,不建立使用者目錄,假定已經存在一個FTP root作為FTP的根目錄。
chown –R ftpuser:ftpgroup ftproot/ //把FTP目錄的所屬使用者和組改為虛擬使用者所依託的系統使用者和組
pure-pw useradd puser –u ftpuser –d /ftproot –m //命令格式很好懂,pure-pw 命令使用useradd 需要新增的使用者名稱, -u標明虛擬使用者並且與系統使用者許可權關聯,-d指定了系統使用者Home目錄中的子目錄,且被限制在這個子目錄裡面(此處是否被限制與上文的conf檔案設定相關)如果需要訪問系統使用者的HOME Directory,則直接使用引數 -D,-m則寫入使用者資料庫,使用者設定即時生效,無需重啟程式。
pure-config.pl etc/pure-ftpd/pure-ftpd.conf &//後臺啟動程式。
複製程式碼
此處,我們新建了一個FTPadmin使用者,此使用者對FTP ROOT擁有所有許可權,如果需要一個只讀使用者,需要新建一個在ftpgroup內的使用者,然後再使用pure-pw建立一個依託此使用者的虛擬使用者即可。即pure-pw虛擬使用者對FTP目錄的操作許可權與其依託的系統使用者對FTP目錄的許可權保持一致。