配置chkconfig脚本

Proftpd的init.d脚本位于Proftpd源代安装包contrib/dist/rpm制并改名到/etc/init.d/proftpd即可。

contrib/dist/rpm/proftpd.init.d

注意:源代里面的安装包由于路径问题,无法行,实际操作,修改相部分。

------------------------/etc/init.d/proftpd---------------------------------

#!/bin/sh

#


# Startupscript for ProFTPD

#

#chkconfig: - 85 15

#description: ProFTPD is an enhanced FTP server with a focus towards \

#              simplicity, security, and ease ofconfiguration. \

#              It features a very Apache-likeconfiguration syntax, \

#              and a highly customizable serverinfrastructure, \

#              including support for multiple'virtual' FTP servers, \

#              anonymous FTP, andpermission-based directory visibility.

#processname: proftpd

# config:/usr/local/etc/proftpd.conf

# pidfile:/usr/local/var/proftpd.pid


### BEGININIT INFO

#Provides: proftpd ftpserver

#Required-Start: $local_fs $network $named $remote_fs

#Required-Stop: $local_fs $network $named $remote_fs

#Default-Stop: 0 1 6

#Short-Description: ProFTPd FTP Server

#Description: ProFTPd is an enhanced FTP server with a focus towards

#       simplicity, security, and ease ofconfiguration.

#       It features a very Apache-likeconfiguration syntax,

#       and a highly customizable serverinfrastructure,

#       including support for multiple 'virtual'FTP servers,

#       anonymous FTP, and permission-baseddirectory visibility.

### ENDINIT INFO


# Sourcefunction library.

./etc/rc.d/init.d/functions


# Sourcenetworking configuration.

./etc/sysconfig/network


# SourceProFTPD configuration.

PROFTPD_OPTIONS=""

if[-f /etc/sysconfig/proftpd ];then

./etc/sysconfig/proftpd

fi


# Checkthat networking is enabled.

[ ${NETWORKING}="no"]&&exit1


# Makesure the binary is present.

##修改sbin/proftpd路径

[-x /usr/local/sbin/proftpd ]||exit5

##添加下面一行

PATH=$PATH:/usr/local/sbin:/usr/local/bin/

RETVAL=0

prog="proftpd"


start(){

        echo -n $"Starting$prog: "

        daemon proftpd $PROFTPD_OPTIONS 2>/dev/null

        RETVAL=$?

        echo

##修改lock/proftpd路径

[ $RETVAL -eq 0]&& touch /usr/local/var/lock/proftpd

}


stop(){

        echo -n $"Shuttingdown $prog: "

        killproc proftpd

        RETVAL=$?

        echo

##修改lock/proftpd路径

[ $RETVAL -eq 0]&& rm -f /usr/local/var/lock/proftpd

}


# See howwe were called.

case"$1"in

        start)

                start

;;

        stop)

                stop

;;

        status)

                status proftpd

                RETVAL=$?

;;

        restart)

                stop

                start

;;

try-restart|condrestart)

##修改lock/proftpd路径

if[-f /usr/local/var/lock/proftpd ];then

                         stop

                         start

fi

;;

        reload|force-reload|reread)

                echo -n $"Re-reading$prog configuration: "

                killproc proftpd -HUP

                RETVAL=$?

                echo

;;

        suspend)

                hash ftpshut >/dev/null2>&1

if[ $?=0];then

if[ $# -gt 1 ];then

                                  shift

                                  echo -n "Suspendingwith '$*'"

                                  ftpshut "$@"

                                  RETVAL=$?

else

                                  echo -n "SuspendingNOW"

                                  ftpshut now "Maintenancein progress"

                                  RETVAL=$?

fi

else

                         echo -n "Noway to suspend"

                         RETVAL=1

fi

                echo

;;

        resume)

if[-f /etc/shutmsg ];then

                         echo -n "Allowingsessions again"

                         rm -f /etc/shutmsg

else

                         echo -n "Wasnot suspended"

                         RETVAL=2

fi

                echo

;;

*)

                echo -n "Usage:$prog

start|stop|restart|try-restart|reload|status|reread|resume"

                hash ftpshut

if[ $?=1];then

                         echo '}'

else

                         echo '|suspend}'

                         echo 'suspendaccepts additional arguments, which are passed to ftpshut(8)'

fi

exit2

esac


exit $RETVAL

然后行命令添加并启用Proftpd

chkconfig --addproftpd

chkconfigproftpd on

serviceproftpd start

配置日志

由于Linux本身出于安全考,限制用可操作的文件的大小。个程序都只能操作大小不超2G的文件。使用者可以选择修改Linuxulimit信息。增大个大小,或取消限制。但是,作者建是乖一点,做个日志档。

proftpd开发写好了RedHat行版中使用的logrotate配置文件,位于contrib/dist/rpm/目中,制到/etc/logrotate.d/中并改名即可。

contrib/dist/rpm/proftpd.logrotate

,要根据实际情况修改路径信息。修改的文件如下

#修改路径

/usr/local/var/proftpd/log/*.log/var/log/xferlog {

   compress

   missingok

   notifempty

   sharedscripts

   postrotate

       #修改路径

       test -f /usr/local/var/lock/proftpd&& /usr/bin/killall -HUP proftpd || :

   endscript

}

配置xinetd (可

如果使用xinetd管理proftpd需要配置部分内容,否可以跳不看。但话说回来,看看也没什,哈哈~

在服负载不很重的情况下,省服源。往往使用xinetd管理proftpd。使用xinetd也能加器的安全,可以有效阻止DDOS

首先修改proftpd.conf文件ServerType部分的standaloneinetd,其次,检查xinetd是否安装,没安装就安装先。

yum install xinetd -y

安装好xinetd后,制配置文件contrib/dist/rpm/xinetd到/etc/xinetd.d/目并改名proftpd。文件内容照常修改如下

# default:off

#description: The ProFTPD FTP server

serviceftp

{

       flags           = REUSE

       socket_type     = stream

       wait            =no

       user            = root

#修改下面一行

       server          =/usr/local/sbin/in.proftpd  

#添加下面一行

       server_args      =-c /etc/proftpd.conf

#掉下面两行

#log_on_success  += DURATION

#log_on_failure  += USERID

       nice            =10

       disable         =no

}

最后明一下,使用xinetd管理proftpd言模工作不正常,有可能是一个bug。最好使用standalone模式吧。

配置防火

需要20,21,60000-65535端口。

-A INPUT -m state --state NEW -mmultiport -p tcp --dport 20,21-d 10.1.10.168-j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 60000:65535-d 10.1.10.168-j ACCEPT

合网管理,配置nat地址映射,配置防火区域策略允2021端口通。在支持ASPF的防火置域启用detect ftp,其他防火墙设置相策略以支持ftp的被动传输模式。


转————http://www.xiyang-liu.com/2012/11/install-proftpd-in-centos/