ftp介绍:
ftp: file transfer proto
互联中最老牌的文件传输协议
vsftpd安装及启用:
dnf install vsftpd -y server
dnf install lftp -y client
关闭selinux
selinux 0
systemctl disable --now firewalld
vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 启动匿名用户的访问功能
systemctl restart vsftpd //重启服务
测试安装发布:
firefox ftp://ip lftp ip
此访问方式必须能列出资源才算访问成功
在使用完成后请输入exit推出lftp
vsftpd基本信息:
服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 程序本身拒绝
553 文件系统权限限制
500 权限过大
530 认证失败
匿名用户访问控制:
lftp 192.168.0.10 当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos 本地用户访问
登陆控制
anonymous_enable=YES|NO 12行
家目录控制
anon_root=/westosdir
上传控制
anon_upload_enable=YES|NO 29行 默认未开启
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
lftp 192.168.0.100
cd pub
put /etc/passwd
注意:在上传文件之后再次上传会报错553,在没有cd 进入 /pub目录下也会报错553
在修改每一项权限之后需要通过重启服务才能生效
如果报错是因为配置文件写入错误!
目录建立控制:
之后重启
anon_mkdir_write_enable=YES|NO 默认被注释掉,需要手动开启为yes 33行左右
下载控制:
下载的文件路径
从哪里进ftp,文件就在哪里
anon_world_readable_only=NO 匿名用户可以下载不能读的文件
默认无该配置文件,需要自己写入
重启
删除重命令控制:
anon_other_write_enable=YES|NO 默认无该配置文件默认NO为不允许删除和修改
改为YES
anon_other_write_enable=YES
匿名用户上传文件权限设定:
在配置文件中无此设置,需要手动写入
anon_umask=xxx
anon_umask=022 当设定chown_username之后上传文权限将不是用此参数设定
022为保留权限
登录数量控制:
max_clients=2/3/4/5
登录被拒绝
上传速率控制;
anon_max_rate=102400 //100kb每秒
本地用户的访问:
登陆控制 :
创建用户
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp 192.168.0.10 -u westos
家目录控制
local_root=/software
写权限控制
write_enable=NO|YES 应更改为YES
上传文件权限控制
local_umask=077
用户登陆控制:
/etc/vsftpd/ftpusers ##永久黑
/etc/vsftpd/user_list ##默认黑
用户登陆白名单
在/etc/vsftpd/vsftpd.conf 中
设定:
userlist_deny=NO 设定/etc/vsftpd/user_list位白名单
不在/etc/vsftpd/user_list名单中的用户不能登陆ftp
锁定用户到自己的家目录中的黑/白名单
锁定用户到自己的家目录中的白名单
/etc/vsftpd/chroot_list名单中用户可以浏览根目录
可以在/etc/vsftpd/chroot_list中修改用户
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己的家目录中的黑名单
此时/etc/vsftpd/chroot_list为黑名单,其中的用户为不可浏览根目录
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
虚拟用户访问:
建立虚拟用户过程:
vim /etc/vsftpd/vuser-list 建立认证文件模板
westos1
123
westos2
123
westos3
123
db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_list.db
加密认证文件 -T 转换 -t type -f 指定转换文件
vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
修改配置文件:
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
虚拟用户家目录的独立设定
mkdir -p /ftpuserdir/westos{1..3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
在 /etc/vsftpd/vsftpd.conf修改配置文件
最后一行开始修改:
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USE
重启服务
systemctl restart vsftpd.service
用户配置独立:
user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos2
anon_upload_enable=YES
设定完成后westos2用户可以上传文件
westos1和westos3不