CentOS卸载vsftpd的方法

如果服务器上已经安装了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 --> off
ftpd_full_access --> off ftpd_use_cifs --> off ftpd_use_fusefs --> off ftpd_use_nfs --> off
ftpd_use_passive_mode --> off httpd_can_connect_ftp --> off httpd_enable_ftp_server --> off
tftp_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服务器上传文件了。

ftp客户端使用

  1. 使用命令登录 ftp ip get 文件名 下载 put 文件名 上传 不能上传和下载目录
  2. 使用windows窗口(浏览器或资源管理器,建议用资源管理器) ftp://用户名@IP,例如 ftp://192.168.12.3/ ftp://yjc@192.168.12.3/ 3.使用第三方工具登录 flashFXP

ftpusers 和user_list 这两文件常用来阻止"root"、"apache"和"www"等系统用户登录FTP服务器以保护系统安全。

至于“两个文件中用户不同会怎样,该用户到底能否登陆”的问题答案是:只要名列这两文件之一的都不能登录。两个不同文件只是拒绝的时候出现的情况不同,“拒绝”是相同的。 主动和被动模式

一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了端口,你过来连接我”。于是服务器从20端口向客户端的端口发送连接请求,建立一条数据链路来传送数据。 二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了端口,你过来连接我”。于是客户端向服务器的端口发送连接请求,建立一条数据链路来传送数据。