1、查看是否已经安装vsftpd
rpm -qa | grep vsftpd
2、安装vsftpd
yum -y install vsftpd
2.1、将vsftpd加入开机启动
chkconfig vsftpd on
3、vsftpd配置 vim /etc/vsftpd/vsftpd.conf
# 设定不允许匿名访问 anonymous_enable=NO # 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 local_enable=YES # 使用户不能离开主目录 chroot_list_enable=YES ascii_upload_enable=YES # 设定支持ASCII模式的上传和下载功能 ascii_download_enable=YES # 启用“倾听”指令时,vsftpd在独立模式和运行,监听IPv4的套接字。这个指令不能一起使用, listen_ipv6指令 listen=YES # PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加 pam_service_name=vsftpd # 设定启用虚拟用户功能 guest_enable=YES # 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 guest_username=ftp # 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名进行认证 user_config_dir=/etc/vsftpd/vuser_conf chroot_list_file=/etc/vsftpd/vuser_passwd.txt # 授权用户权限(新版本需要设置此参数) #allow_writeable_chroot=YES # 开启PASV模式 pasv_enable=YES pasv_min_port=40000 pasv_max_port=40080 pasv_promiscuous=YES # 阻止特定的本地用户登录ftp userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd/user_list
4、创建用户和密码文本 vim /etc/vsftpd/vuser_passwd.txt,注意奇行是用户名,偶行是密码
devil 123456
4.1、生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
4.2、安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包(已安装则跳过)
yum install db4 db4-utils
5、编辑认证文件 vim /etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
6、创建虚拟用户配置文件目录
mkdir /etc/vsftpd/vuser_conf
6.1、创建虚拟用户配置文件 vim /etc/vsftpd/vuser_conf/devil
local_root=/data/ftp/devil #虚拟用户根目录,根据实际情况修改 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
7、设置Selinux(如果你的selinux是开启的话)
setsebool -P ftp_home_dir=1 #设置ftp可以使用home目录 sersebool -P allow_ftpd_full_access=1 #设置ftp用户可以有所有权限
8、设置FTP根目录权限
mkdir -p /data/ftp/devil chmod 755 /data/ftp chmod -R 777 /data/ftp/devil
9、配置防火墙 vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp --dport 40000:40080 -j ACCEPT
10、查看selinux安全模式(如果显示 Enforcing ,则需要改成 Disabled 模式)
getenforce
10.1、selinux模式为Disabled则跳过,vim /etc/selinux/config
SELINUX=disabled 默认是enforcing 把他修改为 disabled
11、启动vsftpd服务
service vsftpd start
12、重启防火墙(如果防火墙不想配置,则关闭防火墙即可,线上建议开启防火墙)
service iptables restart
13、测试 在客户端使用
ip 当前服务器的ip(ifconfig查看当前ip) 用户 devli 密码 123456