Pure-ftpd介紹 node
PureFTPd是一款免費、安全、符合國際標準的FTP 服務器軟件,具有高效性和易用性。虛擬帳戶、系統帳戶及匿名帳戶登錄支持,多種認證方式支持,磁盤配額支持,上傳下載速率限制支持,訪問IP限制支持,Mysql數據結合使用存儲ftp虛擬帳戶支持等等,獨特的實用功能爲我的用戶和託管服務提供商提供優質的定製化ftp配置選擇。 mysql
源碼下載及安裝 ios
a. libiconv庫安裝---用戶編碼轉換(爲後面的with-rfc2640參數準備) sql
cd /usr/local/src 數據庫
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 安全
tar -jxvf libiconv-1.14.tar.gz 服務器
cd libiconv-1.14 cookie
./configure --prefix=/usr 併發
make&&make check 測試
make install
b. pure-ftpd源碼安裝
cd /usr/local/src
wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
cd /usr/local/src/pure-ftpd-1.0.36
./configure --prefix=/usr/local/pure-ftpd/ --with-everything --with-altlog --with-puredb --with-ftpwho --with-mysql –with-throttling –with-ratios –with-quotas –with-virtualhosts –with-virtualchroot –with-sysquotas –with-cookie --with-rfc2640 --with-language=simplified-chinese
其中config參數表以下,供參考:
–prefix=PREFIX 指定安裝目錄
–with-sysquotas 使用系統磁盤配額 (非虛擬)
–with-altlog 支持選擇日誌格式(相似Apache)
–with-puredb 支持虛擬用戶 (FTP登錄用戶而非系統用戶)
–with-extauth 支持擴展驗證模塊
–with-pam 啓用PAM驗證支持 (默認=禁用)
–with-cookie 啓用Cookie支持 (-F 選項)
–with-throttling 支持帶寬控制 (默認=禁用)
–with-ratios 支持 上傳/下載 速度控制
–with-quotas 支持 .ftpquota 文件(指定磁盤配額使用)
–with-ftpwho 支持pure-ftpwho(查看在線用戶的程序)
–with-largefile 支持大於2G的文件
–with-welcomemsg 支持 welcome.msg 向後兼容(已通過時)
–with-uploadscript 上傳後容許執行外部腳本 (測試階段)
–with-virtualhosts 在不一樣的IP地址提供虛擬服務器功能
–with-virtualchroot 容許在chroot的環境下經過符合鏈接跳轉到外部
–with-diraliases 啓用目錄別名
–with-nonroot 普通模式或者說是限制模式. 若是你在該服務器上沒有root權限那只有啓用該項
–with-peruserlimits 支持每一個用戶的併發限制
–with-language= 語言支持< english | traditional-chinese | simplified-chinese>
–with-ldap 在LDAP目錄中提供用戶數據庫
–with-mysql 在MySQL數據庫中存放用戶數據
–with-pgsql 在PostgreSQL數據庫中存放用戶數據
–with-privsep 啓用權限分離
–with-tls 啓用 SSL/TLS 支持 (測試階段, 須要安裝 OpenSSL)
–with-certfile= 證書文件 (默認目錄: /etc/ssl/private/pure-ftpd.pem)
–with-rfc2640 啓用兼容 RFC 2640 支持(UTF-8 編碼的文件名,須要安裝iconv)
–with-everything 啓用大多數選項,編譯完功能版本的服務器端。
make&&make check
make install
注意:這裏在編譯的時候,若是你在這操做以前還沒有安裝mysql,那麼會報錯,錯誤及解決辦法以下:
錯誤: configure: error: libmysqlclient is needed for MySQL support
解決方法: yum install mysql-devel
拷貝pure-ftpd配置文件
mkdir /usr/local/pure-ftpd/etc
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/ # 配置文件拷貝到/etc目錄下
cp /usr/local/src/pure-ftpd-1.0.36/purepureftpd-mysql.conf /usr/local/pure-ftpd/etc
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
彷佛make install忘記了將這個文件複製到相應的目錄了,咱們只有手動本身作了
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl # 設置相應的權限
系統集成
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/* .
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/
c. Mysql YUM安裝(我這偷懶,懼怕解決依賴問題,直接YUM)
rpm -aq |grep mysql
rpm -e --nodeps mysql 或者 yum remove 上面列出來的系統老的mysql安裝文件,好比 yum remove mysql mysql-server mysql-libs mysql-devel
rpm qa|grep mysql 查看老的mysql是否已經卸載徹底,若無,則採用find / -name "mysql" 找到關聯文件用 rm強制刪除
yum install mysql mysql-server mysql-devel mysql-libs;
3. 創建用於pureftpd認證用戶的系統信息
虛擬用戶則可以更好的控制訪問權限,虛擬用戶是和Linux系統用戶關聯的獨立的帳戶系統。因此在建立虛擬用戶以前最好先建立一個系統的帳戶和組。
[root@localhost /]# groupadd -g 2000 pureftp
[root@localhost /]# useradd -u 2000 -g pureftp -d /var/pureftp -s/sbin/nologin pureftp
4. 修改pure-ftp.conf
ChrootEveryone yes # 啓用chroot
BrokenClientsCompatibility yes # 兼容不一樣客戶端
Daemonize yes # 後臺運行
MaxClientsNumber 50 #服務器併發鏈接數
MaxClientsPerIP 5 # 每一個ip最大鏈接數
VerboseLog yes # 記錄日誌
DisplayDotFiles no # 顯示隱藏文件
AnonymousOnly no # 只容許匿名用戶訪問
NoAnonymous yes # 不容許匿名用戶鏈接
SyslogFacility ftp # 將日誌在syslog日誌中顯示
DontResolve yes # 不進行客戶端DNS解析
MaxIdleTime 15 # 最大空閒時間
#MySQLConfigFile /usr/local/pure-ftpd/etc/pureftpd-mysql.conf #Mysql虛擬用戶配置檔,在還沒有弄好Mysql虛擬帳戶時先註銷,稍後開啓
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb # 用戶數據庫文件
LimitRecursion 10000 8 # 瀏覽限制,文件10000,目錄8層
AnonymousCanCreateDirs no # 匿名用戶能夠建立目錄
MaxLoad 4 # 超出負載後禁止下載
PassivePortRange 50000 51000 # 被動模式端口範圍
#AnonymousRatio 1 10 # 匿名用戶上傳/下載比率
UserRatio 1 10 # 全部用戶上傳/下載比率
AntiWarez yes # 禁止下載匿名用戶上傳但未經驗證的文件
#AnonymousBandwidth 200 # 匿名用戶帶寬限制(KB)
UserBandwidth 8 # 全部用戶最大帶寬(KB)
Umask 133:022 # 建立文件/目錄默認掩碼
MinUID 100 # 最大UID限制
AllowUserFXP yes # 用戶進行FXP傳輸
AllowAnonymousFXP no # 對匿名用戶和非匿名用戶容許進行匿名 FXP 傳輸
ProhibitDotFilesWrite no # 不能刪除/寫入隱藏文件
ProhibitDotFilesRead no # 禁止讀取隱藏文件
AutoRename yes # 有同名文件時自動從新命名
AnonymousCantUpload yes # 不容許匿名用戶上傳文件
AltLog clf:/var/log/pureftpd.log # clf格式日誌文件位置
MaxDiskUsage 99 # 當磁盤使用量打到99%時禁止上傳
PIDFile /var/run/pure-ftpd.pid #pureftp的PID
CreateHomeDir yes # 若是虛擬用戶的目錄不存在則自動建立
CustomerProof yes # 防止命令誤操做
FileSystemCharset UTF-8 #服務器以UTF-8格式
ClientCharset gb2312 #客戶端gb2312
未完待續.....