一、vsftp lftp实现
lftp为文件传输程序 vsftp提供ftp协议软件
服务器:
执行getenforce查看内核防火墙是否开启
通过/etc/sysconfig/selinux设置为disable
安装 vsftp lftp
开启vsftp服务
设置防火墙
firewall-cmd --list-all 在servers添加ftp
*ftp部署过程:
yum install vsftpd -y ##安装vsftpd服务
systemctl start vsftpd ##开启vsftpd服务
systemctl enable vsftpd ##设置服务为开机启动
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload ##在防火墙中加入ftp策略
二、vsftp配置文件/etc/vsftpd/vsftpd.conf
500访问的权限过大 服务本身不允许该动作;改配置文件
530认证失败登录用户失败;即密码错误之类
550功能未开启;解决:chmod 775 /var/ftp
553访问的权限过小;更改文件权限
1.配置文件中:
anonymous_enable=yes|no 是否允许匿名用户登陆
local_enable 是否允许通过本地用户登陆
write_enable=yes|no 是否允许登陆本地用户可写
anon_upload_enable 是否允许匿名用上传
anon_root=/admin 匿名用户的家目录设置,默认为/var/ftp
anon_umask=644 匿名用户上传文件的默认权限
anon_mkdir_write_enable 匿名用户建立目录,yes可以,no不行
anon_world_readable_only 匿名用户是否可以下载,no可以,yes不行
anon_other_write_enable 匿名用户删除,yes可以,no不行
chown_uploads=YES 匿名用户操作的身份更改,上传时的身份发生改变
chown_username=student
chown_upload_mode=0644
anon_max_rate=10240 限制最大上传速率10k,默认单位为bit
max_clients=2 限制最大连接数
生成bd文件
dd if=/dev/zero of=/mnt/file bs=1M count=500
local_enable 本地用户登陆,yes可以,no不可以
write_enable 写权限,yes可以,no不可
local_root=/admin 本地用户家目录修改
local_umask=xxx
chroot_local_user=YES 限制本地用户至自己家目录
chmod u-w /home/*
chroot_local_user=NO 用户黑名单(chroot_list为个人建立)
chroot_list_enable=YES
chroot_list_file=/etc/vsftd/chroot_list
chroot_local_user=YES 用户白名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
限制本地用户登陆
vim /etc/vsftd/ftpusers 用户黑名单(永久)
vim /etc/vsftpd/user_list 用户临时黑名单
用户白名单
userlist-deny=NO
/etc/vsftpd/user_list 变为白名单
ftp虚拟用户设定
(1)创建虚拟帐号
vim /etc/vsftpd/account_list
userad1
12345
userad2
12345
(2)生成.db文件
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
(3)设置读取文件
/etc/pam.d/account
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
(4)编辑vsftpd配置文件
pam_service_name=account
guest_enable=YES
(5)设定家目录
/var/ftp/useradmin{1…2}/useradmin1pub|/useradmin2pub
配置文件
local_root=/var/ftp/
U
S
E
R
u
s
e
r
s
u
b
t
o
k
e
n
=
USER user_sub_token=
USERusersubtoken=USER
对虚拟用户设置单独配置文件
user_config_dir=/etc/vsftpd/admin
admin目录中文件名为用户名的时该用户的配置文件
三、用户权限的设置
更改在配置文件:
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
匿名用户
anonymous_enable=YES|NO ##匿名用户是否可以登陆ftp服务器
实操:
更改前,在匿名用户登陆ftp服务显示:
注:表示可以登陆
更改后
注:表示不可以登陆
本地用户
local_enable=YES ##本地用户是否可以登陆
write_enable=YES ##ftp是否对登陆可写
附:
1)本地用户登陆方式
lftp 172.25.254.218 -u student
2)本地用户只能上传文件,不可建立文件
关于其以上命令,大家可自行验证。
1. 匿名用户上传
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES(取消注释)
systemctl restart vsftpd.service
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
匿名用户建立目录
anon_mkdir_write_enable=YES|NO(取消注释)
注:只能建立目录
匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
匿名用户删除
anon_other_write_enable=YES|NO
匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
最大上传速率
anon_max_rate=102400
最大链接数
max_clients=2
2. 本地用户设定
local_enable=YES|NO
write_enable=YES|NO
1)本地用户家目录修改
local_root=/directory
注:若要在指定家目录(/westos)中建立文件需要更改指定家目录/westos权限
2)本地用户上传文件权限
local_umask=xxx
3)限制本地用户浏览/目录
所有用户被锁定到自己的家目录中
chroot_local_user=YES(取消注释)
chmod u-w /home/*
*用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
*用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
4)限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO