Vsftpd

📮 返回服务页

1. 安装

检查

检查系统是否已经安装服务:

rpm -qa | grep -i vsftpd

安装

安装服务:

yum install -y vsftpd

2. 配置

用户

创建ftp访问用户:

useradd 【用户名】

添加用户密码:

passwd 【用户名】

文件

修改配置文件:

vi/vim /etc/vsftpd/vsftpd.conf

是否开启匿名用户访问
anonymous_enable=YES/NO

是否开启本地用户登录
local_enable=YES/NO

本地用户根目录(自行配置)
local_root=【路径】

匿名用户根目录,非常重要(自行配置;此目录不可为linux已有账号的家目录)
anon_root=【路径】

本地用户上传文件权限掩码
local_root=022

匿名用户上传文件权限掩码(自行配置)
anon_umask=022

是否对登录用户开启写权限,关闭则上传不了文件。
write_enable=YES/NO

是否允许匿名用户上传文件,需要配合write_enable=YES(默认注释)
anon_upload_enable=YES/NO

控制匿名用户对文件和文件夹的删除和重命名(自行配置)
anon_other_write_enable=YES/NO

是否允许匿名用户创建新目录(默认注释)
anon_mkdir_write_enable=YES/NO

是否将所有用户限制在主目录(默认注释;如不配置,本地用户可以向上切换到目录之外)
chroot_local_user=YES/NO

是否启用限制用户名单(默认注释;此名单即区域隔离的例外机制)
chroot_list_enable=YES/NO

限制用户名单路径。如果路径上没有此限制名单,则所有本地用户无法登陆(默认注释)
chroot_list_file=【路径】

不添加此项,文件无法上传报错:550 Permission denied。新版本vsftpd加入了安全需求,切根不允许写,要添加这个配置并设置为YES才可以。
allow_writeable_chroot=YES

匿名用户不要密码就靠这个(自行配置)
no_anon_password=YES

匿名登录后使用者(自行配置)
ftp_username=【用户名】


注意

Ftpusers、user_list(默认)文件下的用户均不允许登录 FTP 服务器。

3. 启动

端口

启动之前先查看端口是否占用:

netstat -anpt | grep 【端口号】

防火墙

开放端口:

firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload

关闭安全子系统:

vi /etc/sysconfig/selinux => SELINUX=disabled
or
vi /etc/selinux/config => SELINUX=disabled
setenforce 0

注:此命令将selinux设置成permissive模式,即临时关闭

启动

启动:

systemctl start vsftpd		#启动服务
systemctl enable vsftpd		#开机自启动服务

如更新配置文件,需重启服务:

systemctl restart vsftpd

4. 要点

  1. 匿名用户根目录为了安全考虑,不可设置成777,否则将禁止匿名登录或500报错

​ 可以给根目录下子目录可以设置成777

  1. 只有本地用户可以访问上级目录,匿名用户不行

5. 访问

浏览器

浏览器使用Ftp本地用户登录:

ftp://【用户名】@【服务器地址】

如果需要输入密码,但是不想输入密码:

ftp://【用户名】:【用户密码】@【服务器地址】
注意

由于Ftp自身弊端,大部分浏览器都已经抛弃ftp,可用火狐75.0旧版进行浏览器访问测试

文件夹

文件管理器:

ftp://【服务器地址】

默认访客登录