vsftpd.conf配置文件难点分析

发布时间:2020-12-01编辑:脚本学堂
vsftpd.conf配置文件

1、关于登录帐号的研究
/etc/vsftpd/ftpusers是一个文本文件,每行一个用户帐号,受PAM安全机制使用,这文本中列出的用户都无法登录ftp服务器
/etc/vsftpd/user_list也是一个文本文件(该文件名由userlist_file参数决定),每行一个用户帐号,它是vsFTP服务器自己的安全文件(当userlist_enable=YES时,该文件起作用,userlist_enable=NO时,该文件不起作用)。
当vsftpd.conf中的userlist_enable=YES,userlist_deny=YES时,该文件中的帐号禁止登录ftp服务器。
如果userlist_deny=NO,该文件中的帐号可以登录,其它账号无法登录。
注:如果启用虚拟用户,则此文件中的账号要为虚拟用户账号才可以,而不是本地系统用户。

2、关于chroot的研究
chroot_list_enable=YES //总开关,必须设置为yes
chroot_local_user=YES //如果设为YES,则chroot_list_file中指定的用户不锁定主目录,其它用户锁定。如是设为NO,则chroot_list_file中指定的用户锁定,其它不锁定
chroot_list_file=/etc/vsftpd/chroot_list //本文件系统中没有,应该由用户建立

3、virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传 下载 删除 重命名)

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限

4、关于日志文件
日志文件对于故障排除非常重要,这里介绍详细设置方法。
vsftpd与log有关的选项:
vsftpd_log_file
xferlog_enable
xferlog_std_format
xferlog_file
dual_log_enable
syslog_enable
log_ftp_protocol
no_log_lock
先看看vsftp中关于日志记录的参数:
xferlog_enable=yes/no //是否启用 xferlog 日志格式
xferlog_std_format=yes/no //是否采用标准格式记录日志
xferlog_file=/path/to/logfile //xferlog 日志文件所在位置,默认为/var/log/xferlog
上面的参数设置记录xferlog日志的格式。这是早期Wu-ftpd服务的日志格式,它会记录上传和下载的动作。vsftpd也有专有的日志格式,用下列参数设置:
dual_log_enable=yes/no //是否采用Vsftpd自己的日志记录方式
log_ftp_protocol=yes/no //是否记录所有的ftp命令日志
vsftpd_log_file=/path/to/logfile //指定vsftpd 日志文件位置,默认为/var/log/vsftpd.log
xferlog_enable的默认值为no(vsftpd提供的配置文件模版将其值改为了yes),dual_log_enable的默认值也为no,就是说默认情况下vsftpd是不记录日志的。
我们也可以将日志信息写入系统日志/var/log/messages中,使用如下参数:syslog_enable=yes/no。

5、当你遇到vsftpd虚拟用户无法登陆时,请尝试以下步骤
# ldd /usr/sbin/vsftpd
linux-gate.so.1 => (0xffffe000)
libwrap.so.0 => /lib/libwrap.so.0 (0xb7ede000)
libpam.so.0 => /lib/libpam.so.0 (0xb7ed3000)
libcap.so.1 => /lib/libcap.so.1 (0xb7ece000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7e88000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7d35000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7bda000)
libnsl.so.1 => /lib/i686/cmov/libnsl.so.1 (0xb7bc1000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7bbd000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7ba8000)
/lib/ld-linux.so.2 (0xb7eed000)
看下有没有 libpam.so.0,没有的话,重新安装或者编译
##还有一种可能是没有开启 connect_from_port_20=YES。

6、关于个性化设置
在/etc/vsftpd/vsftpd.conf中添加一行user_config_dir=/etc/vsftpd/config
在/etc/vsftpd中建目录config,并建文本文件c1,内容local_max_rate=30000,则c1用户的下载速度就被配置为30K了。
注意文件名即用户名。