centos下vsftpd安装与配置
1.安装
使用chkconfig --list来查看是否装有vsftpd服务;
使用yum命令直接安装:yum -y install vsftpd
然后为它创建日志文件:touch /var/log/vsftpd.log
2. 启动与配置自启动
使用chkconfig --list来查看vsftpd服务启动项情况;
如果看到的是如下显示的结果:
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
服务全部都是off的,注意这里的off表示的是服务器启动的时候是否会自启动服务,我们使用如下命令来配置其自启动:
chkconfig --level 2345 vsftpd on #2345对应的是上面对应的0-6项
查看与管理ftp服务:
启动ftp服务:service vsftpd start
查看ftp服务状态:service vsftpd status
重启ftp服务:service vsftpd restart
关闭ftp服务:service vsftpd stop
3. 配置vsftp服务
编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:
#vi /etc/vsftpd/vsftpd.conf
3.1 编辑修改如下项目:
listen=YES
#控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。
anon_upload_enable=NO
#控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。
anon_mkdir_write_enable=NO
#匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。
ftp_username=ftp
#控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。
write_enable=YES
#控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。
anonymous_enable=NO
#控制是否启用目录提示信息功能。YES启用,NO不启用,默认值为YES。此功能启用后,当用户进入某一个目录时,会检查该目录下是否有message_file选项所指定的文档,若是有,则会出现此文档的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。
dirmessage_enable=YES
#控制是否启用一个日志文件,用于详细记录上传和下载。该日志文件由xferlog_file选项指定。默认值为NO,但简单配置文件中激活此选项。
xferlog_enable=YES
#这个选项设定记录传输日志的文件名。默认值为/var/log/vsftpd.log。
xferlog_file=/var/log/vsftpd.log
#控制日志文件是否使用xferlog的标准格式,如同wu-ftpd一样。使用xferlog格式,可以重新使用已经存在的传输统计生成器。然而,默认的日志格式更为可读性。默认值为NO,但自带的配置文件中激活了此选项。
xferlog_std_format=YES
#将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。
chroot_local_user=YES
#若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。
guest_enable=YES
#定义VSFTPD的guest用户在系统中的用户名。默认值为ftp。
guest_username=vsftpd
#①在vsftpd.conf中指定用户个人配置文件所在的目录,如:
#user_config_dir=/etc/vsftpd/userconf
#②生成/etc/vsftpd/userconf目录。
#③用户个人配置文件是在该目录下,与特定用户同名的文件,如:
#/etc/vsftpd/userconf/xiaowang
#④在用户的个人配置文件中设置local_max_rate参数,如:
#local_max_rate=80000
#以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。
#local_root=/web/vhost/限制用户主目录
user_config_dir=/etc/vsftpd/userconf
#指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。
pam_service_name=vsftpd
#控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。
local_enable=YES
#控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。
ascii_download_enable=YES
#控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。
ascii_upload_enable=YES
#当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。
virtual_use_local_privs=YES
#添加此行,解决客户端登陆缓慢问题!重要!默认vsftpd开启了DNS反响解析!这里需要关闭,如果启动有错误,请注销
reverse_lookup_enable=NO
#本地用户新增档案时的umask数值。默认值为077。不过,其他大多数的FTP服务器都是使用022。如果您的用户希望的话,可以修改为022。在自带的配置文件中此项就设为了022。
local_umask=022
#上传档案的权限,与chmod所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。
file_open_mode=0774
3.2 创建chroot_list,将ftp用户加入其中:
touch /etc/vsftpd/chroot_list
echo wwl >> /etc/vsftpd/chroot_list
3.3 进行认证:
首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vsftpduser.txt ,注意奇行是用户名,偶行是密码
ftpuser1
ftppass1
ftpuser2
ftppass2
接着,.生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vsftpduser.txt /etc/vsftpd/vsftpduser.db
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句
再增加以下两句
auth required pam_userdb.so db=/etc/vsftpd/vsftpduser
account required pam_userdb.so db=/etc/vsftpd/vsftpduser
最后,创建虚拟用户个性FTP服务文件
mkdir /etc/vsftpd/userconf/
vi /etc/vsftpd/userconf/wwl
内容如下:
#虚拟用户的根目录(根据实际修改)
local_root=/etc/vsftpd/ftp1
#可写
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
4. 为目录附权限并重启动vsftp服务:
mkdir /etc/vsftpd/ftp1
chmod 777 /etc/vsftpd/ftp1
service vsftpd restart
创建匿名登录用户
useradd -s /sbin/nologin vsftpd
默认情况下,vsftpd用户目录为/home/vsftpd,可以使用命令usermod -d /web vsftpd 修改用户目录。各个ftp用户可以锁定在/web/下的子目录中
十佳人物