vsftp 表示 Very Secure File Transfer Protocol Daemon
vsftp 官方网站:http://vsftpd.beasts.org/
1.安装
1.检测是否已经安装
rpm -qa | grep vsftpd
或
rpm -q vsftpd
2.安装vdftp服务器
yum -y install vsftpd
2.添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1.修改配置文件
修改
vim /etc/vsftpd/vsftpd.conf
将底下三行:
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
改为:
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
配置文件说明:
anonymous_enable=YES/no 是否允许匿名用户登录
anonymous_enable=yes/no 是否允许匿名上传文件
local_enable= YES/no 是否允许本地用户登录
write_enable= YES/no 是否允许本地用户上传
guest_enable=yes/no 是否允许虚拟用户登录;
local_mask=022 设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容
xferlog_enable= YES 激活上传和下载日志
connect_from_port_20=YES 启用FTP数据端口连接
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器
userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器
listen= YES/no 是否使用独占启动方式(这一项比较重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式
2.增加用户
增加用户:ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
3.设置用户口令
passwd ftpuser
4.编辑文件chroot_list:
vim /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
jeiker
xiao
3.服务命令
1.开启
systemctl start vsftpd
2.查看服务状态
systemctl status vsftpd
3.重启服务
service vsftpd restart
4.设置开机启动
systemctl enable vsftpd
4.打开防火墙
firewall-cmd --add-service=ftp --permanent
或
firewall-cmd --add-port=21/tcp --permanent
不加permanent的话,重启防火墙此规则会失效.
重启防火墙
firewall-cmd --reload
如果是默认安装vsftpd的话,以下是一些文件的位置约定:
目录文件 | 说明 |
---|---|
/usr/sbin/vsftpd | VSFTPD的主程序 |
/etc/rc.d/init.d/vsftpd | 启动脚本 |
/etc/vsftpd/vsftpd.conf | 主配置文件 |
/etc/pam.d/vsftpd | PAM认证文件 |
/etc/vsftpd.ftpusers | 禁止使用VSFTPD的用户列表文件 |
/etc/vsftpd.user_list | 禁止或允许使用VSFTPD的用户列表文件 |
/var/ftp | 匿名用户主目录 |
/var/ftp/pub | 匿名用户的下载目录 |
如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf
,加入如下三行:
local_root=/
chroot_local_user=YES
anon_root=/
local_root 表示使用本地用户登录到ftp时的默认目录
anon_root 表示匿名用户登录到ftp时的默认目录