一、安装vsftpd
1、安装vsftpd: yum -y install vsftpd
2、启动vsftpd: systemctl start vsftpd
3、设置开机启动: systemctl enable vsftpd
4、创建ftp根目录:mkdir -p /home/ftpserver
二、设置配置文件:vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //是否允许匿名登陆
local_enable=YES // 允许本地用户访问
write_enable=YES // 允许本地用户写入
local_umask=022 // 上传后的文件的默认掩码
dirmessage_enable=YES //设定开启目录标语功能
xferlog_enable=YES //设定开启日志记录功能
connect_from_port_20=YES //设定端口20进行数据连接
chown_uploads=NO //设定禁止上传文件更改宿主
xferlog_file=/var/log/xferlog //设定vsftp的服务日志保存路径
xferlog_std_format=YES //设定vsftp的服务日志保存路径
chroot_local_user=YES // 禁止本地用户离开自己的主目录
chroot_list_enable=YES // 不允许用户离开自己的主目录
chroot_list_file=/etc/vsftpd/chroot_list // 虚拟用户列表,每行一个用户名,代表对chroot_list文件内的用户进行限制
listen=YES //设定vsftpd 服务工作在standalone模式下,有自己的进程,在ps -a 命令下可以看见守护进程名。
listen_ipv6=NO //设定vsftpd服务工作不在 ipv6 模式下,否则会和ipv4冲突,从而无法启动vsftpd服务
pam_service_name=vusers.vu // 权限验证需要的加密文件
userlist_enable=YES 设定userlist_file中的用户将不得使用ftp
tcp_wrappers=YES //设定支持TCP wrappers
以下这些是关于vsftp虚拟用户支持的重要配置项目,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加配置。
guest_enable=YES // 开启虚拟用户功能
guest_username=ftp // 虚拟用户的宿主目录
virtual_use_local_privs=YES // 用户登录后操作目录和本地用户权限一样
user_config_dir=/etc/vsftpd/vconf // 虚拟用户主目录设置文件
allow_writeable_chroot=YES // 虚拟用户登陆权限,允许已登录用户进行上传
listen_port=21 //登陆连接时的指定端口
#pasv_min_port=10060 //被动模式的最小端口
#pasv_max_port=20090 //被动模式的最大端口
#pasv_enable=YES
三、添加用户,并创建用户目录
1、mkdir -p /ftpserver/user1 //ftpserver/user2 //创建新用户目录
2、vim /etc/vsftpd/chroot_list,//添加用户
user1
user2
3、Chmod –R 755 /ftpserver/user1 /ftpserver/user2 // 修改目录权限
四、设置用户密码和数据库
1、vim /etc/vsftpd/vusers.list // 创建用户和密码
user1 //用户名
a123456 //密码
user2 //用户名
b123456 //密码
2、设置数据库
cd /etc/vsftpd
db_load –T –t hash –f vusers.list vusers.db
chmod 600 vusers.*
五、指定认证方式,添加如下内容 vim /etc/pam.d/vsftpd.vu
#%pam-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
六、创建文件并指定ftp用户目录
1、mkdir –p /etc/vsftpd/vconf
2、cd /etc/vsftpd/vconf/
3、touch user1 user2
4、添加内容,vim user1
local_root=/ftpserver/user1
write_enable=YES
anon_umask=022
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
5、vim user2
local_root=/ftpserver/user2
write_enable=YES
anon_umask=022
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
6、systemctl restart vsftpd //重启服务即可访问FTP
八、开放防火墙端口
firewall-cmd --zone=public --add-interface=eth0 --permanent (eth0这里应该是你的网路配置文件)
firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=21/udp --permanent
firewall-cmd --zone=public --add-port=20/udp --permanent
firewall-cmd --zone=public --add-port=10060-20090/udp --permanent
firewall-cmd --zone=public --add-port=10060-20090/tcp --permanent
firewall-cmd –reload
九、关闭seLInux,vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
十、systemctl restart vsftpd