简介
vsftpd是一个完全免费的、开放源代码的ftp服务器软件
安装
yum -y install vsftpd
注意:
- yum需要管理员权限,根据情况使用sudo
- rpm -qa|grep vsftpd 可以查看是否已经安装vsftpd
- 默认配置文件在/etc/vsftpd/vsftpd.conf
创建虚拟用户
- 选择在根或者用户目录下创建ftp文件夹:mkdir ftpfile ,eg:/ftpfile
- 添加匿名用户:useradd ftpuser -d /ftpfile -s /sbin/nologin (这个用户是没有登录linux的权限的)
- 修改ftpfile文件夹权限: chown -R ftpuser.ftpuser /ftpfile
- 重设ftpuser密码:passwd ftpuser
配置
- 在/etc/vsftpd中,创建chroot_list文件
-
在choot_list目录中添加刚才的用户(ftpuser)
3.配置vsftpd.conf文件
- 配置local_root指向刚刚创建的ftp目录(当本地用户登入时,将被更换到定义的目录下,默认值为各用户的家目录))
local_root=/ftpfile - 配置anonymous_enable设置为NO,不允许匿名用户登录
anonymous_enable=NO - 配置chroot_list相关
chroot_local_user=NO(用于指定用户列表文件中的用户是否允许切换到上级目录)
chroot_list_enable=YES(设置是否启用chroot_list_file配置项指定的用户列表文件)
chroot_list_file=/etc/vsftpd/chroot_list(用于指定用户列表文件) - 配置use_localtime(默认是GMT时间,改成使用本机系统时间)
use_localtime=YES - 配置PASV工作模式
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
(1)PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。
(2)PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。
pasv_enable=YES(PASV工作模式)
pasv_min_port=61001(被动模式使用端口范围最小值)
pasv_max_port=62000(被动模式使用端口范围最大值)
- 修改/etc/selinux/config,修改为SELINUX=disabled(否则会出现550拒绝访问)
注:配置完后要重启linux服务器 - 关闭防火墙 修改/etc/sysconfig/iptables,然后重启防火墙服务service iptables restart
- 重启vsftpd服务 service vsftpd restart
验证
- 方式一:在浏览器输入ftp://{ip:}登录即可
- 方式二:在linux下安装ftp客户端,连接验证(ftp {ip}即可)