一、vsftp安装
一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装
[root@lnmp yum.repos.d]# yum install vsftpd [root@lnmp ~]# chkconfig vsftpd on [root@lnmp ~]# service vsftpd start # 清空iptables,并关闭iptables和selinux [root@lnmp ~]# iptables -F # 清空iptables规则 [root@lnmp ~]# iptables -L -nv Chain INPUT (policy ACCEPT 40 packets, 3328 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 25 packets, 3208 bytes) pkts bytes target prot opt in out source destination [root@lnmp ~]# service iptables stop # 关闭防火墙 iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [root@lnmp ~]# chkconfig iptables off # 设置iptables开机不启动 # 关闭selinux [root@lnmp ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux [root@lnmp ~]# shutdown -r now
二、匿名/系统用户配置测试
[root@lnmp ~]# useradd -s /sbin/nologin shaw [root@lnmp ~]# passwd shaw
默认,安装好vsftp,匿名用户(只可下载)和系统用户(完全权限)就可以访问
因为系统用户登录ftp,即在自己家目录中,所有具备全部权限
更改系统账号ftp主目录,对用户限速
[root@lnmp ~]# vim /etc/vsftpd/vsftpd.conf local_root=/var/ftp/pub # 更改系统用户主目录 local_max_rate=1024000 # 系统用户限速1MB(上传和下载) [root@lnmp ~]# service vsftpd restart [root@lnmp ~]# chmod o+w /var/ftp/pub # 加权限,可以上传和删除(ftp权限,由dir权限和ftp权限共同控制)
此时系统用户登录ftp,就在‘/var/ftp/pub’目录下,需要什么样的权限,手工添加
三、vsftpd虚拟用户配置测试
1. 编辑配置文件vi /etc/vsftpd/vsftpd.conf
[root@lnmp ~]# touch /var/log/vsftpd.log # 创建vsftp的日志文件 [root@lnmp ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO #设定不允许匿名访问 local_enable=YES #设定本地用户可以访问 chroot_list_enable=YES #使用户不能离开主目录 xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志 pam_service_name=vsftpd #PAM"认证文件"名,PAM将根据/etc/pam.d/vsftpd进行认证 # Vsftpd虚拟用户支持服务配置,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加 guest_enable=YES #设定启用虚拟用户功能。 guest_username=ftp #指定虚拟用户的宿主用户。系统中已经有内置的"ftp"用户了 user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性化的配置文件名,应和虚拟用户名相同
2. 创建chroot_list,将用户ftp加入其中
[root@lnmp ~]# touch /etc/vsftpd/chroot_list [root@lnmp ~]# echo ftp >> /etc/vsftpd/chroot_list
3. 进行虚拟用户认证配置
安装Berkeley DB工具,后面找不到db_load的问题就是没有安装这个软件包的原因
[root@lnmp ~]# yum install db4 db4-utils
创建用户密码文件vuser_passwd.txt
[root@lnmp ~]# vi /etc/vsftpd/vuser_passwd.txt # #注意奇数行是用户名,偶数行是密码 ftpuser q.123456
生成虚拟用户认证的db文件
[root@lnmp ~]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,并增加以下两行
[root@lnmp ~]# vi /etc/pam.d/vsftpd #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
创建虚拟用户服务配置文件
[root@lnmp ~]# mkdir /etc/vsftpd/vuser_conf [root@lnmp ~]# vi /etc/vsftpd/vuser_conf/ftpuser # 配置文件名和用户名相同,每行配置最后,不能有空格,否则启动时报错 local_root=/var/ftp/pub # 虚拟用户的根目录(根据实际修改) write_enable=YES # 可写 anon_umask=022 # 掩码 anon_max_rate=1024000 # 限速1MB anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES [root@lnmp ~]# mkdir /var/ftp/ftpuser # 给刚建立的用户创建目录 [root@lnmp ~]# chown -R ftp /var/ftp/ftpuser # 设定目录权限
4.重新启动vsftp服务
[root@lnmp ~]# service vsftpd restart