1,安装软件
yum install vsftpd
2,设置开机自启
systemctl enable vsftpd
3,vsftp安装完成后,默认配置文件如下
/etc/vsftpd/vsftpd.conf VSFTP主配置文件
/etc/rc.d/init.d/vsftp VSFTP启动脚本,独立(Stand alone)服务模式
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers onerr=succeed指的是阻止该文件中用户访问
/etc/vsftp/ftpusers 禁止使用vsftp的ftp用户列表
/etc/vsftp/user_list 禁止或者允许使用vsftp的ftp用户列表(根据主配置文件来定)
/var/ftp 匿名登陆用户主目录
/var/log/xferlog vsftp日志文件
4,先备份一份并且去掉注释
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
虚拟用户模式
1、创建用于FTP认证的用户数据库文件
vi /etc/vsftpd/ftpvuser
注:第一行用户名,第二行密码,依此类推
admin
123456
test
123456
明文信息不安全,需要使用db_load命令用哈希(hash)算法将明文信息转换成数据文件。
db_load -T -t hash -f /etc/vsftpd/ftpvuser /etc/vsftpd/ftpvuser.db
chmod 600 /etc/vsftpd/ftpvuser.db
2、创建虚拟用户映射的系统本地用户和FTP根目录
useradd -d /home/ftpvuser -s /sbin/nologin ftpvuser
chmod -Rf 755 /home/ftpvuser
3、建立用于支持虚拟用户的PAM文件
新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据文件的路径,但不用写数据文件的后缀。
vi /etc/pam.d/vsftpd.vu
-
auth required pam_userdb.so db=/etc/vsftpd/ftpvuser
-
account required pam_userdb.so db=/etc/vsftpd/ftpvuser
4、为两个虚拟用户设置不同的权限,admin拥有所有权限,而test只有读取权限。(只创建admin文件就可以)
mkdir /etc/vsftpd/vuser_dir
touch /etc/vsftpd/vuser_dir/test
vim /etc/vsftpd/vuser_dir/admin
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
5、修改配置文件(访问端口我这里设置的是7000,被动模式下还需要配置端口7001-7010,也可以设置其它区间端口。如果用的云服务器,就需要将这些端口添加到入规则中)
vim /etc/vsftpd/vsftpd.conf
- anonymous_enable=NO
- anon_umask=022
- local_enable=YES
- guest_enable=YES
- guest_username=ftpvuser
- allow_writeable_chroot=YES
- write_enable=YES
- local_umask=022
- local_root=/home/ftpvuser
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- xferlog_std_format=YES
- listen_port=7000
- listen=NO
- listen_ipv6=YES
- pam_service_name=vsftpd.vu
- userlist_enable=YES
- tcp_wrappers=YES
- user_config_dir=/etc/vsftpd/vuser_dir
- pasv_min_port=7001
- pasv_max_port=7010
6、重启vsftpd服务
sudo systemctl restart vsftpd