Pureftpd操作指南

古大官人發表於2019-03-01

前言

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目錄的許可權保持一致。

相關文章