安装Vsftpd
提前关闭selinux 和firewalld防火墙
安装vsftp软件包: yum install -y vsftpd* 启动vsftp服务器: systemctl start vsftpd;systemctl enable vsftpd 检查服务是否启动正常: ps -ef|grep vsftp netstat -nutlp|grep 21 至此 匿名用户的ftp已经搭建完成
windows客户端查看
/var/ftp/pub/ linux服务上的原始目录
ftp://192.168.118.172/ windows客户端访问的目录,没有用户名和密码
默认只能查看, 无法下载 创建文件和目录
如果需要在windows 端上传文件则需要修改linux服务端的配置文件
#vim /etc/vsftp/vsftpd.conf anon_upload_enable=YES #允许匿名用户上传 anon_mkdir_write_enable=YES #允许匿名用户创建目录
重启vsftp服务
chown -R ftp /var/ftp/pub/ #赋予子目录ftp用户所属组的权限 systemctl restart vsftpd
至此 可以让匿名用户上传目录和文件按,同时也可以下载, 接下来来搭建最安全的以虚拟用户方式登录, vsftp配置虚拟用户
vsftp配置虚拟用户
1.创建vsftpd使用的系统用户,主目录为/home/vsftpd, 禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件
useradd vsftpd -d /home/vsftpd -s /bin/false
2.创建虚拟用户主目录,比如虚拟用户叫ftp1。 后续文件都放在这个目录下
mkdir -p /home/vsftpd/ftp1
3.指定虚拟用户的信息
# vim /etc/vsftpd/loginusers.conf 默认没有这个文件需要自行创建 ftp1 123456 # 这样就创建了ftp1这个虚拟用户, 密码为123456
4.根据这个文件创建数据库文件,并启动数据库文件
db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.db
chmod 600 /etc/vsftpd/loginusers.db
vim /etc/pam.d/vsftpd
# 注释掉原来所有内容后,增加下面的内容 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
5.增加虚拟用户的数据库的配置文件
mkdir /etc/vsftpd/userconf #创建虚拟用户配置文件目录
vim /etc/vsftpd/userconf/ftp1 这里的文件名必须与前面指定的虚拟用户名一致
local_root=/home/vsftpd/ftp1
write_enable=YES
6.修改主配置文件 /etc/vsftpd/vsftpd.conf 存在的修改,不存在的增加
anonymous_enable=NO #禁止匿名用户登录 chroot_local_user=YES #禁止用户访问除主目录以外的目录 ascii_upload_enable=YES #设定支持ASCII模式的上传和下载功能 ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能 guest_enable=YES #启动虚拟用户 guest_username=vsftpd ## 虚拟用户使用的系统用户名 user_config_dir=/etc/vsftpd/userconf #虚拟用户使用的配置文件目录 allow_writeable_chroot=YES #最新版的vsftpd为了安全必须用户主目录(也就是/home/vsftpd/ftp1)没有写权限,才能登录
7.重启vsftp服务
systemctl restart vsftp
输入用户名和密码后客户端正常访问 ftp1 123456
可能会遇到的问题
1.ftp访问速度特别慢,加载半天
将/etc/resolv.conf里面全部注释掉
2.浏览器正常访问,以目录文件夹的形式无法访问
Windows 无法访问此文件夹,请确保输入的文件夹是正确的,并且你有访问此文件夹