PureFTPd是一款專注于程序健壯和軟件安全的免費FTP服務器軟件,在此,我們詳細介紹一下Centos下安裝和配置PureFTPd的方法:
1、下載
#cd /usr/local/src/tarbag
#wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.22.tar.gz
2、解壓
#tar –xzvf pure-ftpd-1.0.22.tar.gz –C ../software/
3、編譯和安裝
#cd pure-ftpd-1.0.22
#.configure /
–prefix=/usr/local/pureftpd / //pureftpd安裝目錄
–with-everything / //安裝幾乎所有的功能,包括altlog、cookies、throttling、ratios、ftpwho、upload script、virtual users(puredb)、quotas、virtual hosts、directory aliases、external authentication、Bonjour、privilege separation。
–with-cookie / //當用戶登錄時顯示指定的橫幅
–with-diraliases / //支持目錄別名,用快捷方式代cd命令
–with-extauth / //編譯支持擴展驗證的模塊,大多數用戶不使用這個選項
–with-ftpwho / //支持pure-ftpwho命令,啟用這個功能需要更多的額外內存
–with-language=english / //修改服務器語言,默認是英文,如果你要做修改,請翻譯‘src/messages_en.h’文件
–with-ldap / //LADP目錄支持,需要安裝openldap
–with-minimal / //FTP最小安裝,最基本的功能
–with-mysql / //MySQL支持,如果MySQL安裝在自定義目錄上,你需要使用命令—with-mysql=/usr/local/mysq這類
–with-nonroot / //不需要root用戶就可以啟動服務
若出現configure: error: liblber is needed for LDAP support,需安裝openldap-devel
若出現configure: error: Your MySQL client libraries aren’t properly installed, 需要安裝mysql-devel
出現類似configure: error: Your MySQL client libraries aren’t properly installed 的錯誤,請將mysql目錄下的 include/mysql下的mysql.h文件以及lib/mysql下的全部文件,連接(直接復制過去或許也可)到 /usr/lib 目錄下
#make && make install
4、安裝配置文件
#cd /usr/local/src/software/pure-ftpd-1.0.22 //切換到源碼目錄
#cd configura-files //切換到這個目錄
#chmod 755 pure-config-pl //讓用戶有完全權限(因為默認沒有執行權限)
#cp pure-config-pl /usr/local/pureftpd/bin //把執行文件復制到bin目錄下
#mkdir /usr/local/pureftpd/etc //新建FTP的配置文件夾目錄
#cp pure-ftpd.conf /usr/loca.l/pureftpd/etc //復制ftp配置文件到etc中
#cd .. //切換到/pure-ftpd-1.0.22目錄中
#cp pureftpd-ldap.conf /usr/local/pureftpd/etc //相關配置文件復制到etc中
#cp pureftpd-mysql.conf /usr/local/pureftpd/etc //相關配置文件復制到etc中
#cp pureftpd-pgsql.conf /usr/local/pureftpd/etc //相關配置文件復制到etc中
5、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 /usr/local/pureftpd/etc/pureftpd.pdb //虛擬用戶數據庫
# UnixAuthentication yes //主機認證
LimitRecursion 2000 8 //別表最大顯示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 99 //磁盤的最大利用率
#NoRename yes //不允許自動重命名
IPV4Only yes //只允許使用IPV4協議
6、新建虛擬用戶
注意:新建虛擬用戶之前需要創建一個組合用戶(屬于操作系統上的)。
#groupadd –g 1000 ftpgroup //新建一個指定組ID為1000的系統組
#useradd –g 1000 –u 1000 –d /dev/null –s /sbin/nologin ftpuser //新建用戶ID1000加入ftpgroup中
#cd /usr/local/pureftpd/bin //切換到bin目錄中
#./pure-pw useradd puser –u ftpuser –d /www/ftptest –m
//pure-pw useradd 虛擬用戶名 –u 寄生到系統用戶名 –d FTP目錄 –m(把用戶密碼加入PDB數據庫中,不需要重啟FTP)
#cd /www //切換到WWW中
#chown –R ftpuser:ftpgroup ftptest //把FTP目錄的所屬用戶和組改為虛擬用戶所依托的系統用戶和組
7、啟動測試
#/usr/local/pureftpd/bin/pure-config-pl /usr/local/pureftpd/etc/pure-ftpd.conf
Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -E -fftp -H -I10 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L2000:8 -s -U133:022 -u1000 -i -Z-4
注:如果出現running說明啟動成功。
接下來ftP連接進行測試
8、pureftpd只允許單個ip登陸
#cd /usr/local/pureftpd/sbin
#./pure-pw usermod puser –r 218.66.36.119 –m
(備注:-R 只允許的IP地址,其他任何IP地址都會拒絕掉)
#./pure-pw usermod pure –r “”
(-r 加上””會把之前允許的都清空掉,這樣以來所有的IP都可以訪問ftp)
9、查看用戶列表
# ./pure-pw list
10、查看用戶詳細設置
#./pure-pw show puser
(若出現pureftpd 530 Sorry, but I can’t trust you錯誤信息,再配置步驟和配置文件都正確的情況下,可嘗試重新下服務器,觀察此問題能否解決)
11:rhel下pureftpd自啟動的實現
# cd /usr/local/src/software/pure-ftpd-1.0.22/contrib/
# ls
Makefile Makefile.in pure-vpopauth.pl suse.init
Makefile.am pure-stat.pl redhat.init xml_python_processors.txt
# cp redhat.init /etc/init.d/pureftpd
# chmod 755 /etc/init.d/pureftpd
# chkconfig –add pureftpd
# chkconfig pureftpd on
# service pureftpd restart
Stopping pure-config.pl:
Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd –daemonize
-A -c50 -B -C10 -E -fftp -H -I10 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb
-s -U133:022 -u1000 -R -4
若出現錯誤,則檢查/etc/init.d/pureftpd啟動腳本中定義的路徑是否正確.
新聞熱點
疑難解答