Tag: vsftp

VsFTPD自动安装脚本

Posted by – 2010-07-20

虽然平时配置一个ftp要不了5分钟,但写完脚本才发现,浪费的时间实现太多了,脚本一般半分钟就装好了。
本脚本在CentOS 和 Redhat Enterprise环境中测试通过。有空再测其它发行版。
脚本中用到了以下几个东西:
shell检查linux发行版;
shell向文本写东西;
shell生成随机密码;
sed输出匹配行的下一行;
……
本文采用的是虚拟用户方式
具体内容如下:

#----------------------------引用文字-开始----------------------------
#!/bin/bash
# VsFTPD Virtual User Configuration
# Author: 楚霏
# Company: chengyongxu.com
# Create Date: 2010-07-20
# Last Update Date: 2010-07-20 17:36
#################################################
#
# 在这一部分定义相关变量
#
#################################################
YUM_INSTALL_LIST="vsftpd db4 db4-tcl db4-utils"
APT_INSTALL_LIST="vsftpd db4.6-util"

# 通常只需要编辑以下两个变量
FTP_USER=www
FTP_HOME=/www

VSFTPD_BASE_DIR=/etc/vsftpd

#################################################
#
# 检查系统环境,并安装所需软件包
#
#################################################
# 检查是否以ROOT用户执行本脚本
[ `id -u` -ne '0' ] && echo 'Must be root!' && exit

# 检查发行版是否为本脚本所支持
[ `uname -i` = 'x86_64' ] && PLATFORM='x86_64' || PLATFORM='i386'
if cat /etc/issue|grep '4.' ;then
        OS=4
elif cat /etc/issue|grep '5.';then
        OS=5
else
        echo 'Do not support this system ' && exit
fi

DISTRIBUTION=`lsb_release -i | awk '{print $3}'`
case "$DISTRIBUTION" in
*CentOS*|*"Red Hat"*|*Fedora*)
    yum -y install $YUM_INSTALL_LIST
    ;;
*Debian*|*Ubuntu*)
    apt-get -y install $APT_INSTALL_LIST
    ;;
*)
    echo 'Do not support this distribution !' && exit 0
    ;;
esac

#################################################
#
# 创建FTP用的系统用户
#
#################################################
# 检查ftp要使用的用户是否存在
EXISTS_USER=`grep -E "^\<$FTP_USER\>" /etc/passwd |awk -F: '{print $1}'`
if [ "$EXISTS_USER" != "$FTP_USER" ]
then
        useradd -u 78 $FTP_USER -d $FTP_HOME -s /sbin/nologin
fi 

# 检查ftp用户的家目录是否正确
if [ "$EXISTS_USER" = "$FTP_USER" ]
then
       usermod -d $FTP_HOME $FTP_USER
fi

#################################################
#
# 创建FTP的目录和文件
#
#################################################
# 创建安装目录
if [ ! -d $VSFTPD_BASE_DIR ]
then
        mkdir -p $VSFTPD_BASE_DIR
fi

# 把FTP的系统用户写入
echo "$FTP_USER" >> $VSFTPD_BASE_DIR/vsftpd.chroot_list

# 创建日志文件
touch /var/log/vsftpd.log

# 创建虚拟用户的配置文件路径目录
mkdir -p $VSFTPD_BASE_DIR/user_config

# 创建密码文件, 单行为用户名, 双行为密码
touch $VSFTPD_BASE_DIR/passwd.txt

#################################################
#
# 修改配置文件
#
#################################################
# 写入测试用户和密码
echo ftpuser1 >> $VSFTPD_BASE_DIR/passwd.txt
echo `< /dev/urandom tr -dc A-Za-z0-9 | head -c 20` >> $VSFTPD_BASE_DIR/passwd.txt

# 修改PAM认证文件
echo "    auth       required     pam_userdb.so db=$VSFTPD_BASE_DIR/user_passwd" > /etc/pam.d/vsftpd
echo "    account       required     pam_userdb.so db=$VSFTPD_BASE_DIR/user_passwd" >> /etc/pam.d/vsftpd

# 编辑vsftpd的配置文件
> $VSFTPD_BASE_DIR/vsftpd.conf && echo "已删除默认配置"
echo "\
listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to Ismole FTP servers
pam_service_name=vsftpd
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
guest_enable=YES
guest_username=$FTP_USER
user_config_dir=$VSFTPD_BASE_DIR/user_config\
" >> $VSFTPD_BASE_DIR/vsftpd.conf

# 为虚拟用户创建家目录和配置文件
if [ ! -d $FTP_HOME/wwwroot/ftpuser1 ]
then
        mkdir -p $FTP_HOME/wwwroot/ftpuser1
        chown -R $FTP_USER $FTP_HOME
fi

echo "\
local_root=$FTP_HOME/wwwroot/ftpuser1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES\
" >> $VSFTPD_BASE_DIR/user_config/ftpuser1

#################################################
#
# 创建虚拟用户密码认证数据库文件,并写成脚本
#
#################################################
case "$DISTRIBUTION" in
*CentOS*|*"Red Hat"*|*Fedora*)
    echo "\
if [ -e $VSFTPD_BASE_DIR/user_passwd.db ]
then
        rm -f $VSFTPD_BASE_DIR/user_passwd.db
fi
db_load -T -t hash -f $VSFTPD_BASE_DIR/passwd.txt $VSFTPD_BASE_DIR/user_passwd.db\
" >> $VSFTPD_BASE_DIR/db_load.sh
    ;;
*Debian*|*Ubuntu*)
    echo "\
if [ -e $VSFTPD_BASE_DIR/user_passwd.db ]
then
        rm -f $VSFTPD_BASE_DIR/user_passwd.db
fi
db4.6_load -T -t hash -f $VSFTPD_BASE_DIR/passwd.txt $VSFTPD_BASE_DIR/user_passwd.db\
" >> $VSFTPD_BASE_DIR/db_load.sh
    ;;
*)
    echo 'Do not support this distribution !!' && exit
    ;;
esac

chmod 500 $VSFTPD_BASE_DIR/db_load.sh
$VSFTPD_BASE_DIR/db_load.sh

#################################################
#
# 启动并测试
#
#################################################
/etc/init.d/vsftpd start

# 验证登录
echo "测试用户名是: ftpuser1"
# 显示出匹配行的下一行,也就是密码
echo "测试用户密码是: `sed -n '/ftpuser1/{n;p;}' $VSFTPD_BASE_DIR/passwd.txt`"
echo "测试无误的话别忘了删除测试用户,Good luck ! "
#----------------------------引用文字-结束----------------------------

Chinaitlab 8cd linux教程笔记_系统管理部分

Posted by – 2009-02-27

############################
#Chinaitlab 8cd linux教程笔记_系统管理部分#
############################

<05>
    ifconfig eth0 11.22.33.44 netmask 255.0.0.0
    route改网关
    route add default gw 1.1.1.1
    用户环境
      语言环境/etc/sysconfig/i18n
      locale
      LANG=zh_CN.gbk	#设置语言环境
    硬件信息/etc/sysconfig/hwconf
    自动识别新硬件service kudzu start
    ntsysv	#redhat,centos配置服务
<06>管理磁盘文件系统
    eject#弹出光驱
    eject -t#收回光驱
    mount -o <选项> 设备 挂载点。如mount -o iocharset=gbk /dev/sda3 /d #-o gbk也可
<07>文件系统维护
    fsck -t ext2 = fsck.ext2
    用mount -o userquota,grpquota /dev/sdb3 /mnt/d#只能在分区上做,最好单用户模式
<09>Automounter
    主配置文件/etc/auto.master
    映射文件/etc/auto.misc
<10>samba
    三个包samba;samba-client;samba-common
<15>安全的动态磁盘策略
    Linux内核可以模拟RAID只能模拟RAID0,1,4,5
    需要应用软件raidtools。配置文件/dev/raidtab
<17>LVM逻辑
<21>ftp服务器
    FTP=File Transfer Protocol(PFC959)
    专门用来上传或者下载文件的协议,使用两个通信通道(massage&data)
    安装vsftpd
    环境freebsd6.3
    1.下载源代码vsftpd-2.0.7.tar.gz
    2.编译源代码,可以参考帮助文件(INSTALL)
      #tar zxvf vsftpd-2.0.7.tar.gz
      #cd vsftpd-2.0.7
      #make
      #make install
    3.安装配置
      #mkdir /usr/share/empty
      #cp vsftpd.conf /etc
      #cp RedHat/vsftpd.pam  /etc/pam.d/ftp
??????#cp -R ../security /lib/security			//否则会提示找不到/lib/security/pam_listfile.so
    4.编辑配置文件
      #echo "listen=YES" >> /etc/vsftpd,conf
    5.启动服务器
      #/usr/sbin/vsftpd &|tee /etc/rc.d/vsftpd.sh	//具体路径视实际情况
      #echo "/usr/sbin/vsftpd &" > /etc/rc.d/vsftpd.sh	//建自启动文件
      #netstat -tnl					//检查端口
    6.a.匿名ftp
      #mkdir /var/ftp/
      #pw useradd -d /var/ftp ftp
      #chown root /var/ftp
      #chmod og-w /var/ftp
    ################################
    vsftpd配置文件
    #anonymous_enable=YES
    local_enable=YES
    #write_enable=YES
    #local_umask=022
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES
    dirmessage_enable=YES			//允许使用目录的消息
    xferlog_enable=YES
    connect_from_port_20=YES
    #chown_uploads=YES
    #chown_username=whoever
    #xferlog_file=/var/log/vsftpd.log
    #xferlog_std_format=YES
    #idle_session_timeout=600
    #data_connection_timeout=120
    #nopriv_user=ftpsecure
    #async_abor_enable=YES
    #ascii_upload_enable=YES
    #ascii_download_enable=YES
    #ftpd_banner=Welcome to blah FTP service.
    #deny_email_enable=YES
    #banned_email_file=/etc/vsftpd.banned_emails
    #chroot_list_enable=YES
    #chroot_list_file=/etc/vsftpd.chroot_list
    #ls_recurse_enable=YES			//允许客户端使用ls -R命令
    listen=YES
    ################################
    Chroot环境
    /etc/vsftpd.conf
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list
    /etc/vsftpd.chroot_list
    user1
    user2
    ################################
    用户控制
    /etc/ftpusers	#默认这里的用户拒绝登录,但可以通过修改/etc/pam.d/ftp中
			 sense值为allow,就表示只允许登录的用户

<24>增强系统的安全性
    安全要求
	a.机密性confidentiiality
	b.完整性integrity
	c.抗否认性non-repudiation
	d.可用性availability
    安全策略
	物理,起动,登陆,运行,通信,网络服务
    职责
	跟踪应用软件发布网站,及时为软件升级,打补丁,订阅安全邮件列表
	安全网站:www.cert.org
		  www.securityfocus.org
	sftp/ftps,imaps,smtps,https,ssh
<25>用户认证
    Linux-PAM认证模块Pluggable Authentication Modules for Linux
    PAM(libpam.so) /etc/pam.d/
    PAM服务文件格式
	Module-type:auth(认证),account(检查账号),session(会话),pawwword
	Control-flag:required(必须通过),requisite(必须成功,失败还有机会),sufficient(一个足够),
optional()
<26>常用PAM模块
	pam_access,so控制访问者的地址与账号名称
	pam_listfile.so控制访问者的账号名称或登陆位置
	pam_limits.so控制为用户分配的资源
	pam_rootok.so对管理员(uid=0)无条件通过
	pam_userdb,so设定独立用户账号数据库认证
    升级软件    #chroot_list_enable=YES
    #chroot_list_file=/etc/vsftpd.chroot_list
	a.浏览软件发布站点,寻找更新记录与说明
	b.下载最新的软件包
	c.若有补丁,最好下载最新的补丁包
	d.若有数字签名或者MD5校验文件,应该一起下载。可用gpg --verify XXXX.asc来校验
	e.编译安装升级。
	  ./configure --help | less
    内核打补丁
	a,下载补丁patch-XXXX,gz
	b.校验,
	    #vi kernel,pubkey
	    #gpg --import kernel.pubkey
	    #gpg --verify patch-XXXX,gz
	c.打
	    #tar xcjf linux-2.4.26.tar,bz2
	    #bzcat patch-XXXX.bz2 | patch -p0
	    #mv linux-2.4.26 linux-2.4.27
	d.编译新内核替换旧内核
	    #cd linux-2.4.27;make menuconfig
	    #make dep bzImage modules modules_install install
<28>网络安全
      包过滤(filter)
      ################################
      例:
      #iptables -F
      #iptables -A INPUT -p tcp -dport 22 -p  -j ACCEPT
      #iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
      #iptables -L -n --line-number
      #iptables -P INPUT DROP
      #iptables -P OUTPUT DROP
      #iptables -P FORWORD DROP
      #iptables-save > /etc/sysconfig/iptables或者service iptables save
      ################################
      #iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
      #iptables -A INPUT -p udp --sport 53 -j ACCEPT
      ################################
      #iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
      #^IN^OUT
      ################################
      #iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT
      #iptables -A OUTPUT  -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
      ################################
      #iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 3 --logprefix "IPTABLES:"
      #echo -e "n#log firewallnkern.=errtttttt/var/log/firewall.log" >> /etc/syslog.conf
      #service syslog restart
      ################################
      #echo 1 > /proc/sys/net/ipv4/ip_forward		//打开转发链
      #vi /etc/sysctl.conf				//改为1,永远打开
      #iptables -t nat -L -n
      #iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to source 1.1.1.1
      #iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE //伪装
<31>DNS服务器
<38>WEB服务器
      LAMP的局限性
	  客户端向服务器提交数据不经过加密,容易被第三方窃取
      Alias /doc "/usr/share/doc"
      目录配置文件
      虚拟主机配置
	  Errorlog logs/***.log
	  Customlog logs/***.access.log common
	  NameVirutalhost和Virtualhost 3处值一致
	  默认访问第一个虚拟主机
      激活SSL模块
	  创建私钥和证书文件
	  #mkdir /etc/ssl.crt /etc/ssl.key
	  #openssl genrsa -out /etc/ssl.key/server.key 1024
	  #openssl req -new -x509 -key /etc/ssl.key/server.key -out /etc/ssl.crt/server.crt

转贴:VSFtp配置文档翻译

Posted by – 2009-01-13

作者:彭席汉 http://blog.chinaunix.net/u1/33677

名称

Vsftpd.conf vsftpd的配置文件


描述


Vsftpd.conf用于控制vsftpd守护程序的各项功能。默认状态下,vsftpd的配置文件是/etc/vsftpd.conf。但是它可以通过传递一个命令行参数给vsftpd来修改,这个命令行参数就是vsftpd配置文件的路径。这个功能很有用,因为你可能希望使用高级inetd例如xinetd来启动vsftpd,并且每个虚拟主机具有不同的配置文件。


格式


Vsftpd.conf的格式非常简单。每一行或者是注释或者是命令。注释行以#开头并且被忽视。一个命令行具有如下的格式:


option=value


特别要注意的是“option”,“=”以及“value”之间不允许出现任何空格。


每项设置都有一个默认值,可以通过配置文件进行修改。


BOOLEAN选项


以下是boolean选项的一个清单。Boolean选项的值可以被设置为YES或者NO


allow_anon_ssl


只有当ssl_enable选项激活才能启动此选项。如果被设置成YES,匿名用户将被允许


使用安全SSL连接。



默认:NO


anon_mkdir_write_enable


如果被设置成YES,匿名用户在特定的条件下允许创建新的目录。要使此选项有效,选项write_enable必须被激活,并且匿名ftp用户在父目录下必须有写的权限。



默认:NO


anon_upload_enable


如果被设置成YES,匿名用户在特定的条件下被允许上传文件。要使此选项生效,write_enable选项必须被激活,并且匿名ftp用户在上传目录下必须具有写的权限。对于要上传的虚拟用户来说这个设置也是必须的;默认状态下,虚拟用户赋以匿名用户的优先级。



默认:NO


anon_world_readable_only


当此选项被激活,匿名用户只允许下载全局可读的文件。这就意味着ftp用户拥有自己的文件,尤其是在上传的场合下。



默认:YES


anonymous_enable


控制是否允许匿名用户登录。如果被激活,“ftp”和“anonymous”都被视为匿名登录。



默认:YES


ascii_download_enable


当被激活,下载时将以ASCII模式的数据传输。



默认:NO


ascii_upload_enable


当被激活,上传时将以ASCII模式的数据传输。



默认:NO


async_abor_enable


当被激活,一个名为“async ABOR”的特殊命令将被激活。只有当不正常的客户端才会使用这个功能。还有就是这个功能非常不好用,所以默认状态下它是被禁止掉的。不幸的是,如果没有这个功能,一些FTP客户端在取消传输时会挂掉,因此你可能想激活它。



默认:NO


background


当被激活,并且vsftpd以“监听”的模式启动,vsftpd将在后台运行监听进程。也就是说控制端立即返回到启动vsftpdshell



默认:NO


check_shell


注意!此选项只对non-PAM编译的vsftpd有效。如果此选项被禁止,对于本地用户登录,vsftpd将不会去检查/etc/shells以判断它是否有一个合法的用户shell



默认:YES


chmod_enable


当被激活,就可以使用SITE CHMOD命令。注意!此选项仅应用于本地用户。匿名用户不允许使用SITE CHMOD命令。


默认:YES


chown_uploads


如果激活,所有的匿名用户上传的文件的所有者将会被改变为由chown_username选项确定的用户。从管理员也许还有安全的角度看,这个选项是有用的。



默认:NO


chroot_list_enable


如果被激活,你要提供一份本地用户的清单,他们被锁定在虚根(进入FTP后,PWD一下,看到的当前目录就是虚根。是FTP的根目录,并非FTP服务器系统的根目录)。如果chroot_local_user选项被设置成YES,该选项的含义稍微有点不同。在这种情况下,用户清单列出的是不被锁定在虚根下的用户。默认状态下,包含这张清单的文件是/etc/vsftpd.chroot_list,但是你可以通过chroot_list_file选项来修改它。



默认:NO


chroot_local_user


如果被设置成YES,本地用户在登录后将被锁定在虚根的home目录下。警告:此选项有安全的预示,尤其是当用户具有上传和shell访问的权限。只有当你了解你正在做什么的情况下,激活此选项。要指出的是这些安全预示不是vsftpd所特有的,它们应用于所有的把本地用户锁定虚根下的FTP daemon中。



默认:NO


connect_from_port


此选项控制PORT类型的数据连接是否使用服务器上的20号端口(ftp-data)。由于安全性的原因,一些客户坚持使用这个端口。相反,禁止这个选项将使vsftpd运行起来烧了一点特殊性。



默认:NO


deny_email_enable


如果激活,你要提供匿名用户的密码e-mail表以拒绝以这些密码登录的用户。默认状态下,包含这张表的文件是/etc/vsftpd.banned_emails,但是你可以通过设置banned_email_file来修改它。



默认:NO


dirlist_enable


如果设置成NO,所有的列表命令将被拒绝。



Default:YES


dirmessage_enable


如果被激活,当FTP服务器的用户第一次进入一个新目录后将显示信息。默认状态下,会在这个目录下查找.message文件,但是也可以通过设置message_file选项来修改它。



默认:NO




download_enable


如果设置成NO,所有的下载请求将被拒绝。



默认:YES


dual_log_enable


如果被激活,可以同时产生两个日志文件,默认是/var/log/xferlog/var/log/vsftpd.log。前者是wu-ftpd各式的日志,可以被标准的工具解析。后者是vsftpd专用格式日志。



默认:NO


force_dot_files


如果被激活,即使“a”标志没有被客户使用也会显示以“.”开头的文件和目录。但是不会显示“.”和“..”。



默认:NO


force_anon_data_ssl


只有当激活ssl_enable选项后才能启用。如果被激活,所有的匿名登录必须使用一个安全的SSL连接来发送和接受数据。



默认:NO


force_anon_logins_ssl


只有当ssl_enable选项被激活后才能应用此选项。如果被激活,所有的匿名登录在发送密码时必须使用安全SSL连接。



默认:YES


force_local_data_ssl


只有当ssl_enable选项被激活后才能应用此选项。如果被激活,所有的非匿名登录必须使用一个安全的SSL连接来发送和接受数据。



默认:YES


force_local_login_ssl


只有当ssl_enable选项被激活后才能应用此选项。如果被激活,所有非匿名登录在发送密码的时候必须使用安全SSL连接。



默认:NO


guest_enable


如果被激活,所有的非匿名登录被视为“guest”登录。这个guest登录将被映射为guest_username设置里指定的用户。



默认:NO


hide_ids


如果被激活,在目录列表里的用户和组信息将被显示为“ftp”。



默认:NO


listen


如果被激活,vsftpd将运行在独立(standalone)模式下。这就意味着vsftpd不可以从inetd之类的服务中启动。相反,vsftpd直接执行一次后,它自己将会负责监听和处理连接请求。



默认:NO


listen_ipv6


类似于listen参数,只不过vsftpd将监听IPv6的套接字而不是IPv4的。这个参数与listen参数是互斥的。



默认:NO


local_enable


这个参数控制是否允许本地用户登录。如果被激活,在/etc/passwd里的普通用户帐号被用来登录。要使非匿名登录包括虚拟用户登录生效必须激活此选项。



默认:NO


lock_upload_files


当被激活,所有的上传文件都会具有一个写锁。所有的下载文件都会具有一个共享的读锁。警告!在激活此选项之前,要注意的是恶意的读用户会让对文件进行添加的写用户处于饥饿状态。



默认:NO


log_ftp_protocol


当被激活,所有的FTP请求和响应在xferlog_std_format没有被激活的情况下将被记录,这些信息对于调试有用。



默认:NO


ls_recurse_enable


当被激活,这个设置允许使用“ls -R”命令。这有点安全风险,因为在一个大的站点的顶层目录下使用“ls -R”命令将使用大量的资源。


默认:NO


mdtm_write


当被激活,将允许MDTM去设置文件的修改次数(要受到通常的访问检查限制)。



默认:YES


no_anon_password


当被激活,vsftpd将不要求匿名用户输入密码—匿名用户将直接登录。



默认:NO


no_log_lock


当被激活,在写log文件时将阻止vsftpd把文件锁住。此选项通常情况下不被激活。它存在于工作区操作系统中,例如Solaris/Veritas混合文件系统,在这种情况下当试图锁住日志文件时有时会出现挂起的现象。



默认:NO


one_process_model


如果你用的是Linux 2.4内核,可能就会用不同安全模式,即一个连接对应一个进程。它是一个不太严格的安全模型,但是会提高性能。如果你清楚自己做什么,并且你的站点支持大量的同时访问,在这种情况下,你可能想激活此选项。



默认:NO


passwd_chroot_enable


如果连同chroot_local_user一起被激活,那么虚根用户的位置根据不同的用户而确定。每个用户虚根位置是从/etc/passwd中的父目录字符串中获取的。



默认:NO


pasv_addr_resolve


如果你想在pasv_address选项中使用主机名,就要激活它。



默认:NO


pasv_enable


如果你要禁止PASV这种获取数据连接的方法,要将此选项关掉。



默认:


pasv_promiscuous


如果你想关掉PASV安全检查,就要设置此选项为YESPASV安全检查能确保来源于同一个IP地址的数据连接作为控制连接。只有当你清楚你在作什么的时候才能激活这个选项!仅在一些形式的安全隧道机制中使用,或者是为了更好的支持FXP



默认:NO


port_enable


如果你想禁止通过PORT的方法获得数据连接,将此选项设置成NO



默认:YES


port_promiscous


如果你想禁止PORT安全检查,就要设置此选项为YES。这个PORT安全检查确保对外出去的数据连接只能用于客户端。只有当你清楚自己在作什么的时候才能激活此选项。



默认:NO


run_as_launching_user


如果你想以启动vsftpd的用户来运行vsftpd就要设置此选项为YES。这在不能以root用户访问系统时非常有用。强烈警告!除非你非常清楚你正在做什么,否则不要激活此选项,因为对这个选项的草率使用会导致严重的安全问题。特别是,当设置了这个选项后,vsftpd没有也不能使用虚根技术来限制文件访问。可以用deny_file选项来替代,但是效果不好,可靠性不能与虚根技术相比,而且不可靠。如果使用了此选项,其他选项的应用就会产生很多限制。例如,需要优先权的选项如非匿名登录,改变上传文件拥有者,连接20端口以及从小于1024号的端口监听都不会工作。其他选项也会受到影响。



默认:NO


secure_email_list_enable


当匿名登录时,如果你想只允许以设定的e-mail密码表中的密码登录,就要将此选项设置成YES。当对低安全级别的内容进行访问限制,这个选项是一个非常有用的低安全限制方法。而且不需要使用虚拟用户。当此选项被激活后,匿名用户如果不在email_password_file设定的文件中将北拒绝登录。这个密码文件的格式是一行一个密码,没有多余的空格。默认的文件名是/etc/vsftpd.email_passwords



默认:NO


session_support


这个选项控制vsftpd是否对登录维护会话。如果vsftpd正在维护会话,它将试图更新utmp以及wtmp。另外,如果使用PAM来鉴别时,此选项会打开一个pam_session,并且直到签出时才关闭。如果不需要会话日志,你可能会关闭此选项,并且你希望让vsftpd获得更多的机会以更少的进程或者更少的权限来运行。注意:utmpwtmp支持只有当PAM激活了编译才有效。



默认:NO


setproctitle_enable


如果被激活,vsftpd将会在系统进程表中显示会话状态信息。也就是说,报告的进程名将被改为显示一个vsftpd会话正在进行什么操作(空闲,下载等)。出于安全目的,你最好关闭此选项。



默认:NO
ssl_enable

如果被激活并且vsftpd编译时选择了OpenSSLvsftpd将通过SSL来支持安全连接。这个选项应用于控制连接以及数据连接。你还需要一个支持SSL的客户端。注意!只有你需要时才激活它。Vsftpd对于OpenSSL库的安全性不做任何保证。激活了此选项就表明你相信所安装的OpenSSL库的安全性。

默认:NO

ssl_sslv2

只有当ssl_enable选项被激活后才能启用此选项。如果被激活,将允许SSL v2协议连接。优先选择TLS v1连接。

默认:NO

ssl_sslv3

只有当ssl_enable选项被激活后才能启用。如果被激活,将允许SSL v3协议连接。优先选择TLS v1连接。

默认:NO

ssl_tlsv1

只有当ssl_enable选项被激活后才能启用。如果被激活,将允许TLS v1协议连接。优先选择TLS v1连接。

默认:YES

syslog_enable

如果被激活,原来输出到/var/log/vsftpd.log文件中的日志将被输出到系统日志中去。由FTPD完成日志的纪录。

默认:NO

tcp_wrappers

如果被激活,并且vsftpd编译的时候选择了支持tcp_wrapper,则连接请求将通过tcp_wrappers访问控制所反馈。而且,基于每个IP的配置有这样的机制,即如果tcp_wrappers设置了VSFTPD_LOAD_CONF环境变量,那么vsftpd会话将试图从这个环境变量指定的文件中加载配置。

默认:NO

text_userdb_names

默认情况下,在目录表中用户和组ID是用数字表示的。激活此选项可以用文字来表示。出于性能的原因,这个选项通常是关闭的。

默认:NO

tilde_user_enable

如果被激活,vsftpd将解析诸如~chris/pics的路径名,也就是说一个tilde后面跟一个用户名。

默认:NO

use_localtime

如果被激活,vsftpd在目录表中显示的是你本地时区的时间。默认显示的是GMT时间。MDTM FTP命令返回的时间也是受此选项控制的。

默认:NO

use_sendfile

这是一个内部设置,用于测试在你的平台上使用send-file()系统调用所带来的相关好处。

默认:YES

user_listdeny

userlist_enable被激活后,这个选项将被检查。如果设置成了NO,则没有在userlist_file指定的文件中显式列出的用户名将被拒绝登录,并且是在要求用户输入密码之前被拒绝的。

默认:YES

userlist_enable

如果被使能,vsftpd将会从由userlist_file指定的文件中加载用户名列表。如果用户试图以文件中的用户名登录,在被要求输入密码之前就会被系统拒绝。这在防止明文传送密码时有用。另见userlist_deny

默认:NO

virtual_use_local_privs

如果被激活,虚拟用户将使用与本地用户一样的权限。默认情况下,虚拟用户将使用与匿名用户同样的权限,其限制要严格一点。

默认:NO

write_enable

这个选项控制是否允许改变文件系统的FTP命令,如STOR,DELE,RNFR,RNTO,MKD,RMD,APPE以及SITE等。

默认:NO

xferlog_enable

如果被激活,一个日志文件将详细记录上传和下载的情况。默认情况下,这个文件是/var/log/vsftpd.log,但是可以使用vsftpd_log_file设置来修改。

默认:NO

xferlog_std_format

如果被激活,日志文件将以标准的xferlog格式来记录,在wu-ftpd中也使用这种格式。这个选项可以有助于使用传送统计分析工具。默认的格式更易读,但是,这种格式的日志文件默认存放在/var/log/xferlog,但是你可以通过xferlog_file设置来修改。

默认:NO

NUMERIC选项

以下是数字选项列表。一个数字选项必须是设置成非负整数。支持八进制以便输入屏蔽位选项。输入八进制值的时候,必须以数字0开始。

accept_timeout

客户端采用PASV方式连接时的超时时间,以秒为单位。

默认:60

anon_max_rate

匿名用户的最大传输速度,以字节/秒为单位。

默认:0(无限制)

anon_umask

匿名用户创建文件的权限位。注意!如果采用八进制数值设置,记住以“0”开始,否则数值会被作为十进制来处理。

默认:077

connect_timeout

远程客户端响应PORT类型的数据连接时的超时时间,以秒为单位。

默认:60

data_connection_timeout

这是我们允许数据连接处于没有任何活动状态的最大超时数,以秒为单位。如果超时时间到,则远程客户端被断开。

默认:300

delay_failed_logins

在报告连接失败前停留的秒数。

默认:1

delay_successful_logins

在允许一个成功连接前停留的秒数。

默认:0

file_open_mode

上传文件创建时的权限。你如果想把上传文件设置成可执行,则就要将此值修改成0777

默认:0666

ftp_data_port

PORT类型数据连接的发起端口号。

默认:20

idle_seesion_timeout

在两个FTP命令之间,远程客户端需要花费的最大时间,以秒为单位。如果超时了,则远程客户端被断开。

默认:300

listen_port

如果vsftpd运行于独立模式,这个选项指定监听FTP连接的端口。

默认:21

local_max_rate

本地授权用户最大允许的数据传输速率,以字节/秒为单位。

默认:0(无限制)

local_umask

本地用户创建文件的权限设置。注意!如果你以八进制数值指定,则要数字“0”开始,否则以十进制数值处理。

默认:077

max_clients

如果vsftpd运行于独立模式,则此选项设置连接的最大用户数。超过此数值的连接将返回一个错误信息。

默认:0(无限制)

max_login_fails

连接的最大失败数,达到这个数值后,会话将被关闭。

默认:3

max_per_ip

如果vsftpd运行于独立模式,此选项设置同一个IP源地址所能连接的最大数目。如果超过此数目将返回一个错误信息。

默认:0(无限制)

pasv_max_port

分配给PASV类型的数据连接的最大端口数。可以指定一个小范围的端口号有利于设置防火墙。

默认:0(使用任何端口)

pasv_min_port

分配给PASV类型数据连接的最小端口数。可以指定一个小范围的端口有利于设置防火墙。

默认:0(使用任何端口)

trans_chunk_size

你可能不会去修改此选项值,但是如果设置成诸如8192这样的值时会产生更加平滑的带宽限制。

默认:0(由vsftpd选择一个合适的值)