1、系统和软件信息
1.1、系统信息
[root@izwz9g7tzzao036f4e9dqvz tools]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@izwz9g7tzzao036f4e9dqvz tools]# uname -r
3.10.0-514.16.1.el7.x86_64
1.2、ftp软件
proftpd-1.3.6
下载地址:ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz
2、安装和配置脚本
说明:ftp软件和脚本放在/home/zyb/tools下
#! /bin/bash
# function :install proftpd
SOFT=/home/zyb/tools
INSTALL_PATH=/usr/local
VERSION=proftpd-1.3.6
USER_NAME=www201
function proftpd_install(){
[ -d $SOFT ] && cd $SOFT || exit 1
tar -xf $VERSION.tar.gz
cd $VERSION
./configure --prefix=${INSTALL_PATH}/$VERSION >>proftpd_install.log
[ $? -eq 0 ] && echo "configure OK" || exit 1
make && make install >>proftpd_install.log
[ $? -eq 0 ] && echo "install proftpd success !" || exit 1
ln -s ${INSTALL_PATH}/$VERSION ${INSTALL_PATH}/proftpd
}
function proftpd_config()
{
groupadd pftp
useradd pftp -s /sbin/nologin -M -g pftp
cat >$INSTALL_PATH/$VERSION/etc/proftpd.conf <<EOF
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 22001
# Don't use IPv6 support by default.
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
UseReverseDNS off # 禁止DNS反查
IdentLookups off # 禁止DNS反查
ServerIdent off # 隐藏软件版本信息
AllowRetrieveRestart on # 下载断点续传
AllowStoreRestart on # 上传断点续传
## 虚拟用户认证信息
AuthOrder mod_auth_file.c # 只允许虚拟用户登陆
AuthUserFile /usr/local/proftpd/etc/ftp.users
DefaultRoot ~ # 将用户限定在根目录下
PassivePorts 20000 30000 # 被动模式端口段
SystemLog /var/log/proftpd.log # 软件日志
TransferLog /var/log/proftpd.xfer.log
LogFormat 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 121 # 发呆超时
TimeoutNoTransfer 300 # 无数据传输超时
User pftp # 定义ftp以哪个用户身份运行
Group pftp # 定义ftp以哪个用户组身份运行
RequireValidShell off
<Directory ~/>
AllowOverwrite on # 允许写入覆盖
<Limit ALL> # 设置虚拟用户读权限
AllowALL
</Limit>
</Directory>
EOF
}
function add_user(){
#创建虚拟用户
$INSTALL_PATH/$VERSION/bin/ftpasswd --passwd --name=${USER_NAME} --uid=2001 --gid=2001 --home=/home/wwwroot --shell=/bin/false --file=/usr/local/proftpd/etc/ftp.users
#proftpd启动
$INSTALL_PATH/$VERSION/sbin/proftpd
netstat -nlupt|grep proftpd
}
#调用
proftpd_install
proftpd_config
add_user