You are on page 1of 5

即时 Linux 1+1+1 工程

首先是最基本的配置,请看我的/etc/vsftpd/vsftpd.conf

###############################################################################

#接受匿名用户

anonymous_enable=YES

#匿名用户 login 时不询问口令

no_anon_password=YES

#接受本地用户

local_enable=YES

#可以上传(全局控制).若想要匿名用户也可上传则需要设置 anon_upload_enable=YES,若想要匿名用户可以建立
目录则需要设置 anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项.

write_enable=YES

#本地用户上传文件的 umask

local_umask=022

#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过 xferlog_file 选项修改

xferlog_enable=YES

#日志使用标准 xferlog 格式

xferlog_std_format=YES

#login 时的欢迎信息

royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程

ftpd_banner=Welcome to KingArthur's FTP service.

#设置的话将覆盖上面的 ftpd_banner 设置,用户 login 时将显示/etc/vsftpd/banner 中的内容

banner_file=/etc/vsftpd/banner

#为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(,默认为.message)的内容

dirmessage_enable=YES

#本地用户 login 后所在目录,若没有设置此项,则本地用户 login 后将在他的 home 目录(/etc/passwd 的第六个字段)


中.匿名用户的对应选项是 anon_root

local_root=/var/ftp

#设置为 YES 则下面的控制有效

chroot_list_enable=YES

#若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被 chroot 在登录后


所在目录中,无法离开.如果为 YES,则所记录的用户将不被 chroot.这里选择 YES.

chroot_local_user=YES

#若设置为 YES 则记录在 userlist_file 选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法 login,并且将检察


下面的 userlist_deny 选项

userlist_enable=YES

#若为 NO,则仅接受记录在 userlist_file 选项指定文件(默认是/etc/vsftpd.user_list)中的用户的 login 请求.若为 YES


则不接受这些用户的请求.

userlist_deny=NO

#注意!!!vsftpd 还要检察/etc/vsftpd.ftpusers 文件,记录在这个文件中的用户将无法 login!!

royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程

#服务器以 standalong 模式运行,这样可以进行下面的控制

listen=YES

#匿名用户的传输比率(b/s)

anon_max_rate=51200

#本地用户的传输比率(b/s)

local_max_rate=512000

#可接受的最大 client 数目

max_clients=100

#每个 ip 的最大 client 数目

max_per_ip=5

connect_from_port_20=YES

tcp_wrappers=YES

pam_service_name=vsftpd

##############################################################################

下面是我的/etc/vsftpd.user_list

##############################################################################

royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程

ftpuser

anonymous

##############################################################################

/etc/vsftpd.ftpusers 可以使用系统自带的文件

/etc/vsftpd.chroot_list 内容为空

接着建立系统用户 ftpuser,将他加入 ftp 组并将/etc/passwd 中他的记录的最后一个字段改成/sbin/nologin(禁止本地


登录).

设置/var/ftp 的所有者和所有组为 root,权限为 755

设置/var/ftp/pub 的所有者为 root,所有组为 ftp,权限为 775

至此 vsftpd 的基本配置就完成了.这里我们接受匿名用户 anonymous 和本地用户 ftpuser 的请求.anonymous 只能


下载,ftpuser 可以下载和上传.他们登录后均在/var/ftp 目录下且无法离开这个目录(被 chroot 了).ftpuser 可以在
/var/ftp/pub 目录中建立目录和上传文件,上传文件的权限为 755(设置了 local_umask=022).匿名用户的传输比率为
50kb/s,ftpuser 的传输比率为 500kb/s.可联接的最多客户数为 100,每 ip 可联接的最多客户数为 5.

如果需要使本地用户 ftpput 可以 login,只需要将他加入/etc/vsftpd.user_list,要使他可以上传,只需将他加入 ftp 组.

接着我们可以在/var/ftp 下的各个目录(包括/var/ftp)下建立.message 文件,这样用户进入这个目录时 vsftpd 将显


示.message 的内容,你可以在这里面写上欢迎信息或者注意事项等等.另外可以编辑/etc/vsftpd/banner,建立 login 时
的欢迎信息,让你的 ftp 更加个性化.

下面我们使用 quota 为 ftpuser 加入磁盘限额,避免恶意用户用垃圾数据塞满你的硬盘.

假设/var/ftp 在根分区/(/dev/hda5)中,则将/etc/fstab 中根分区的记录的第 4 个字段改成 defaults,usrquota,这样这条记


录看起来类似这样:

LABEL=/ / ext3 defaults,usrquota 1 1

royhuan@thizlinux.com.cn
即时 Linux 1+1+1 工程

接着重启系统后输入下列命令:

quotacheck -acu #检查启用了配额的文件系统,并为每个文件系统建立一个当前磁盘用来的表

quotacheck -avu #生成每个启用了配额的文件系统的当前磁盘用量表

edquota ftpuser #为用户 ftpuser 设置磁盘配额

这时系统会在默认文本编辑器(vi)中打开配额文件,显示类似这样:

Disk quotas for user ftpuser (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/hda5 0 0 0 0 0 0

第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数。随后的两列用来设置用户在该文
件系统上的软硬块限度。inodes 列显示了用户当前使用的 i 节点数量。最后两列用来设置用户在该文件系统上
的软硬 i 节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再
被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。
这段时期被称为 过渡期(grace period)
。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以
上值中的任何一个被设置为 0,那个限度就不会被设置.按你的需要修改后存盘推出.

要校验用户的配额是否被设置,使用以下命令:

quota testuser

接着使用 edquota -t 来设置过渡期(grace period)

和另一个 edquota 命令相似,这个命令也会在文本编辑器中打开当前的文件系统配额:

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/hda5 7days 7days

按你的需要修改后存盘退出

royhuan@thizlinux.com.cn

You might also like