服务端:
yum install vsftpd -y ---- 通过yum源下载vsftpd服务
systemctl start vsftpd ---- 启动vsftpd服务
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp ----火墙加入ftp功能,或直接关闭火墙
firewall-cmd --reload
客户端:
yum install lftp -y ---- 通过yum源下载lftp服务
可在浏览器中测试ftp服务是否开启
基本报错信息:
500 ----文件系统权限过大
530 ---- 用户认证失败
550 ----服务本身未开放
553 ---- 本地文件系统权限过小
服务配置文件
/etc/vsftpd/vsftpd.conf 通过修改相对应的参数,实现相关功能,配置完systemctl restart vsftpd重启服务
做实验时,确保两个端的selinux为disable状态
getenforce ---- 查看selinux状态
/etc/selinux/config ---- selinux配置文件
匿名用户登陆 ---- lftp 服务端IP
指定用户登陆 ---- lftp 服务端IP -u username
1.允许匿名用户登陆,并上传文件与进行写操作
aninymous enable=YES|NO --匿名用户是否可以登陆
write_enable=YES|NO ---是否对登陆用户可写
anon_upload_enable=YES ---允许匿名用户上传
在修改好配置文件爱后执行以下操作即可进行测试
chgrpftp /var/ftp/pub
chmod 775 /var/ftp/pub
aninymous enable=YES|NO --匿名用户是否可以登陆
3.本地用户是否可以登陆
local_enable=YES|NO ---本地用户是否可以登陆
4.匿名用户登陆权限设置
anon_root=/../.. ---- 修改匿名用户家目录
anon_umask=xxx ---- 修改匿名用户上传文件默认权限
anon_mkdir_write_enable=YES|NO ---- 匿名用户建立目录
anon_world_readable_only=YES|NO ---- NO表示匿名用户可以下载
anon_other_write_enable=YES|NO ----匿名用户删除,注意,其只能删除自己上传的文件
5.匿名用户限制速度与改变身份
chown_uploads=YES ---- 匿名用户使用的身份修改
chown_username=student
anon_max_rate=102400 ---- 最大上传速率限制1M
6.限制登陆用户数量
max_clients=2 ---- 最大连接数目
local_root=/../.. ---- 修改本地用户家目录
chroot_local_user=YES ---- 所有用户被锁定到自己家目录
此测试需要更改家目录权限
chmodu-w /home/*
7.用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
8.用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
9.创建虚拟帐号身份
vim /etc/vsftpd/loginusers 文件名称任意,内容如下:
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 加密文件
vim /etc/pam.d/abcdefg 文件名称任意 认证时看这个文件,内容如下:
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
vim /etc/vsftpd/vsftpd.conf:
添加:
pam_service_name=abcdefg
guest_enable=YES
10.虚拟帐号身份指定
vim /etc/vsftpd/vsftpd.conf:
guest_username=ftpuser
chmod 555 /home/ftpuser
11.虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf:
添加:
local_root=/ftpuserhome/$USER 本身不识别$
user_sub_token=$USER 引用shell中的字符
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir -p /ftpuserhome/ftpuser{1..3}