1.ftp介绍
ftp:file transfer proto 互联网中最老牌的文件传输协议
2.ftp安装
dnf install vsftpd.x86_64 lftp.x86_64 -y #安装vsftpd服务
vim /etc/sysconfig/selinux
7 SELINUX=disabled #关闭selinux
systemctl enable --now vsftpd #开启服务
vim /etc/vsftpd/vsftpd.conf
///
12 anonymous_enable=NO-->YES #改变参数允许匿名访问
///
firewall-cmd --permanent --add-service=ftp #火墙添加ftp服务,永久开启
firewall-cmd --reload #重启火墙
#匿名用户只能访问/var/ftp目录中的内容
3.vsftpd基本信息
服务名称:vsftpd.service
配置目录:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
默认发布目录:/var/ftp
报错信息:
550 #程序本身拒绝
553 #文件系统权限限制
500 #权限过大
530 #认证失败
4.匿名用户访问控制
lftp 172.25.254.103 #当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.103 -u westos #本地用户访问
mkdir /westosdir
chmod 775 /westosdir
chgrp ftp /westosdir
登陆控制:
anobymous_enable=YES|NO
上传控制;
anon_upload_enable=YES|NO
家目录控制:
anon_root=/westosdir #指定访问目录为前面所建的westosdir
目录建立控制:
anon_mkdir_write_enable=YES|NO
下载控制:
anon_world_readable_enable=YES|NO #匿名用户可以下载不能读的文件
删除命令控制:
anon_other_write_enable=YES|NO #匿名用户可以删除文件
匿名用户上传文件权限设定:
anon_umask=xxx
anon_umask=022 #当设定chown_username之后上传文件权限将不是用此参数设定
匿名用户上传文件的用户身份设定:
chown upload=YES
chown_username=westos
chown_upload_mode=0644
登陆数量控制:
max_client=2
上传速率控制;
anon_max_rate=102400 (单位为kb)
5.本地用户的访问
建立本地用户资源
useradd zhang
echo 123456 | passwd --stdin zhang
lftp 172.25.254.103 -u zhang
家目录控制:
local_enable=NO|YES
上传文件权限控制
local_umask=077
用户登录控制:
ftpusers #永久黑名单
user_list #临时默认黑名单
用户登陆白名单:
userlist_deny=NO #/设定/etc/vsftpd/user_list为白名单,不在名单中的用户不能登陆ftp
锁定用户到自己家目录的白名单:
vim /etc/vsftpd/vsftpd.conf
///
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
///
锁定用户到自己家目录的黑名单:
vim /etc/vsftpd/vsftpd.conf
///
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
///
6.虚拟用户访问
1.建立虚拟用户过程
vim /etc/vsftpd/westos_pam #建立认证文件模板
///
user1
123
user2
123
user3
123
///
db_load -T -t hash -f westos_pam westos_pam.db #加密认证文件 -T 转换 -t type -f 指定转换文件
vim /etc/pam.d/westos
///
account required pam_userdb.so db=/etc/vsftpd/westos_pam
auth required pam_userdb.so db=/etc/vsftpd/westos_pam
///
vim /etc/vsftpd/vsftpd.conf
///
pam_service_name=westos #指定认证策略文件
userlist_enable=YES
guest_enable=YES #指定虚拟用户功能开启
guest_username=ftp #指定虚拟用户在ftp服务器上的用户身份
///
2.虚拟用户家目录的独立设定
mkdir -p /ftphome/user{1..3}
touch /ftphome/user1/user1file
mkdir -p /ftphome/user1/pub
touch /ftphome/user2/user2file
mkdir -p /ftphome/user2/pub
touch /ftphome/user3/user3file
mkdir -p /ftphome/user3/pub
vim /etc/vsftpd/vsftpd.conf
///
local_root=/ftphome/$USER
user_sub_token=$USER
///
3.用户配置独立:
指定用户上传文件:
mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/user1
///
anon_upload_enable=YES
///
vim /etc/vsftpd/vsftpd.conf
///
user_config_dir=/etc/vsftpd/westos #此目录中与用户名相同的文件为用户配置文件
systemctl restart vsftpd
///
设定完成后user1可以上传文件,user2,user3不能