本文共 3134 字,大约阅读时间需要 10 分钟。
如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务。
1.查找vsftpd服务[root@localhost /]# rpm -aq vsftpd
2.删除查找到的vsftpd服务
[root@localhost /]# /sbin/service vsftpd stop
[root@localhost /]# rpm -e vsftpd-3.0.2-21.el7.x86_64
安装vsftpd组件
[root@localhost /]# yum -y install vsftpd
root@localhost home]# systemctl start vsftpd.service
3.放开21端口
[root@localhost /]# firewall-cmd --zone=public --add-port=21/tcp --permanent
[root@localhost /]# firewall-cmd --reload
4.关闭匿名用户
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #仅仅允许/etc/vsftpd.user_list中指定的用户访问FTP服务器 #anon_upload_enable=YES#anon_mkdir_write_enable=YES
[root@localhost vsftpd]# systemctl restart vsftpd.service
通过配置重启之后,匿名用户不可以登录了。
5.建立ftp虚拟宿主账户
新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:
[root@localhost vsftpd]# useradd ftpuser -s /sbin/nologin
为ftpuser用户设置密码:
[root@localhost /]# passwd ftpuser
6.查看ftp的状态
[root@localhost /]# getsebool -a|grep ftp
显示结果:
ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> offftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> offftpd_use_passive_mode --> off httpd_can_connect_ftp --> off httpd_enable_ftp_server --> offtftp_anon_write --> off tftp_home_dir --> off
将上面红色两项状态设置为on:
[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on [root@localhost vsftpd]# setsebool -P tftp_home_dir on
7.配置vsftpd.conf
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
本地用户
local_enable=YES #允许系统用户登录(默认开启 ) write_enable=YES #允许上传(默认开启 ) local_umask=022 #默认上传权限(默认开启 ) local_max_rate=300 #上传限速(需手工建立,按需开启)chroot_local_user=YES #此句设为YES,所有用户限制在家目录下,设为NO登陆不上chroot_list_enable=YES #(这行必须要有, 否则文件vsftpd.chroot_list不会起作用) chroot_list_file=/etc/vsftpd/chroot_list#chroot_list需要手工建立,定义是否把用户限制在家目录[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list #该文件里面的用户可以访问任何目录
然后加入 ftpuser ,表示只有ftpuser不能访问上级目录,重启vsftpd。
8.修改权限
修改/home/ftpuser 的权限为不可写[root@localhost vsftpd]# chmod a-w /home/ftpuser/taotao
这是因为我们在上面将/home/ftpuser/taotao文件的权限改为不可写了,那么我们在这个目录下创建一个images文件夹,用来上传文件。并将权限赋值给 ftpuser 用户
[root@localhost taotao]# mkdir images
[root@localhost images]# chown ftpuser images
9.开启PASV(被动模式)
vim /etc/vsftpd/vsftpd.conf #add blow line
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30999
并且在userlist_enable=YES文件后面添加
userlist_deny=NO #加上这句就会出现“windows无法访问文件夹。。。”
userlist_file=/etc/vsftpd/user_list
开启防火墙:
[root@localhost taotao]# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent
[root@localhost taotao]# firewall-cmd --reload
这样就可以使用ftp服务器上传文件了。
ftpusers 和user_list 这两文件常用来阻止"root"、"apache"和"www"等系统用户登录FTP服务器以保护系统安全。
至于“两个文件中用户不同会怎样,该用户到底能否登陆”的问题答案是:只要名列这两文件之一的都不能登录。两个不同文件只是拒绝的时候出现的情况不同,“拒绝”是相同的。
主动和被动模式一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了端口,你过来连接我”。于是服务器从20端口向客户端的端口发送连接请求,建立一条数据链路来传送数据。二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了端口,你过来连接我”。于是客户端向服务器的端口发送连接请求,建立一条数据链路来传送数据。转载于:https://blog.51cto.com/11732619/2044629