1.軟體下載安裝
[root@chenghy ~]# cd /root[root@chenghy ~]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz[root@chenghy ~]# tar zxvf proftpd-1.3.4c.tar.gz[root@chenghy ~]# cd proftpd-1.3.4c[root@chenghy ~]# ./configure --prefix=/usr/local/proftpd[root@chenghy ~]# make[root@chenghy ~]# make install
2.修改設定檔
[root@chenghy ~]# vim /usr/local/proftpd/etc/proftpd.confServerName "chenghy's FTP Server"ServerType standalone # 以獨立進程方式運行DefaultServer onPort 21 # FTP連接埠Umask 002 # 許可權,建議設定為002UseReverseDNS off # 禁止DNS反查IdentLookups off # 禁止DNS反查ServerIdent off # 隱藏軟體版本資訊AllowRetrieveRestart on # 下載斷點續傳AllowStoreRestart on # 上傳斷點續傳## 虛擬使用者認證資訊AuthOrder mod_auth_file.c # 只允許虛擬使用者登陸AuthUserFile /usr/local/proftpd/etc/ftp.usersAuthGroupFile /usr/local/proftpd/etc/ftp.groupDefaultRoot ~ # 將使用者限定在根目錄下PassivePorts 20000 30000 # 被動模式連接埠段SystemLog /var/log/proftpd/proftpd.log # 軟體日誌TransferLog /var/log/proftpd/proftpd.xfer.logLogFormat default "%h %u %t %D \"%r\" %s %b" # 日誌格式ExtendedLog /var/log/proftpd/access.log WRITE,READ default # 訪問日誌MaxInstances 250 # 允許最大串連MaxClients 20 # 最大使用者數MaxLoginAttempts 3 # 最大嘗試串連次數TimeoutLogin 30 # 身分識別驗證逾時TimeoutIdle 120 # 發獃逾時TimeoutNoTransfer 300 # 無資料轉送逾時User nobody # 定義ftp以哪個使用者身份運行Group nobody # 定義ftp以哪個使用者組身份運行<Directory ~/>AllowOverwrite on # 允許寫入覆蓋 <Limit LOGIN CWD RETR READ DIRS> # 設定虛擬使用者讀許可權 AllowALL </Limit> <Limit ALL> # 設定omd使用者所有許可權 Order allow,deny AllowUser omd DenyALL </Limit></Directory>
3.添加虛擬使用者和組
[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=bsmp --home=/home/omd/file/ --uid=2001 --gid=2000 --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftp.users[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=omd --home=/home/omd/ --uid=2002 --gid=2000 --shell=/sbin/nologin --file=/usr/local/proftpd/etc/ftp.users[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --group --name=myftp --gid=2000 --member=bsmp --member=omd --file=/usr/local/proftpd/etc/ftp.group
4.將使用者目錄設定許可權
[root@chenghy ~]# chown -R 2002:2000 /home/omd/####下面兩行用來刪除使用者和組########### [root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --passwd --name=bsmp --delete-user --file=/usr/local/proftpd/etc/ftp.users[root@chenghy ~]# /usr/local/proftpd/bin/ftpasswd --group --name=myftp --delete-group --file=/usr/local/proftpd/etc/ftp.group
5.將proftpd添加到系統服務
按照網上的資料修改/etc/rc.d/init.d/proftpd檔案後發現配置不成功,後來自己修改了一下此檔案完成了配置
[root@chenghy ~]# vim /etc/rc.d/init.d/proftpd#!/bin/sh# Source function library.. /etc/rc.d/init.d/functionsRETVAL=0start() { echo -n $"Starting proftpd : " daemon /usr/local/proftpd/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf 2>/dev/null# daemon命令是/etc/rc.d/init.d/functions中內建的 RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd}stop() { echo -n $"Shutting down proftpd : " killproc proftpd# killproc命令是/etc/rc.d/init.d/functions中內建的 RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd}# See how we were called.case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: proftpd { start | stop | restart }"esac[root@chenghy ~]# chmod 755 /etc/rc.d/init.d/proftpd[root@chenghy ~]# chkconfig add proftpd[root@chenghy ~]# chkconfig --level 35 proftpd on[root@chenghy ~]# service proftpd start
6.防火牆設定
只允許主動模式訪問添加下面的第①、②條,只允許被動模式訪問添加下面的②、③條,兩種模式都允許添加下面①、②、③條。
[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20 -j ACCEPT[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT[root@chenghy ~]# iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20000:30000 -j ACCEPT