*****实验环境*****
server主机:
westos_node1
172.25.254.132
selinux关闭 并且reboot
火墙开启
dnf安装设定完成
client主机:
westos_linux
172.25.254.232
dnf安装设定完成
安装lftp #ftp协议文本浏览器
1、ftp介绍
ftp:file transfer proto
互联中最老牌的文件传输协议
2、vsftpd安装及启用
dnf install vsftpd -y #server
dnf install lftp -y #client
关闭selinux
并且reboot
systemctl disable --now firewalld
3.vsftpd基本信息
服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
4.匿名用户访问控制
1)登陆控制
2)家目录控制
3)上传控制
anon_upload_enable=YES (服务器)
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
---------------------------------------
lftp 172.25.254.132 (客户端)
cd pub
put /etc/passwd
4)目录建立控制
anon_mkdir_write_enable=YES (服务器)
---------------------------------------------------------------
lftp 172.25.254.132:/pub> mkdir file1(客户端)
mkdir ok, `file1' created
5)下载控制
anon_world_readable_only=NO ##匿名用户可以下载不能读的文件
---------------------------------------------------------------------------------------------------
lftp 172.25.254.132:~> cd /pub (客户端)
cd ok, cwd=/pub
lftp 172.25.254.132:/pub> ls
drwx------ 2 14 50 6 Aug 01 03:38 file1
-rw-r--r-- 1 0 0 0 Aug 01 03:11 haha
-rw------- 1 14 50 2711 Aug 01 03:33 passwd
lftp 172.25.254.132:/pub> get haha
6)删除重命令控制
anon_other_write_enable=YES(可以删除)
7)匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
8)匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
9)登陆数量控制:
max_clients=2
10)上传速率控制
anon_max_rate=102400
5、本地用户的访问
1)登陆控制
useradd westos
useradd wl
echo westos | passwd --stdin westos
echo westos | passwd --stdin westos
lftp 192.168.0.10 -u westos (客户端)
local_enable=NO|YES(服务器)
2)家目录控制
local_root=/software
3)写权限控制
write_enable=NO|YES
4)上传文件权限控制
local_umask=07
5)用户登陆控制
/etc/vsftpd/ftpusers ##永久黑
/etc/vsftpd/user_list ##默认黑
6)用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list为白名单
#不在名单中的用户不能登陆ftp
7)锁定用户到自己的家目录中
chmod u-w /home/*
chroot_local_user=YES
8)锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
9)锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
6、虚拟用户的访问
1)vim /etc/vsftpd/auth_pam #建立认证文件模板
westos1
123
westos2
123
westos3
123
2)cd /etc/vsftpd
db_load -T -t hash -f auth_pam auth_pam.db ##加密认证文件 -T 转换 -t type -f 指定转换文件
3)vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/auth_pam
auth required pam_userdb.so db=/etc/vsftpd/auth_pam
4)vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
5)虚拟用户家目录的独立设定
mkdir -p /ftpuserdir/westos{1..3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
touch /ftpuserdir/westos{1..3}/pub
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER
systemctl restart vsftpd
6)用户配置独立
(先注释掉主配置文件中虚拟用户可上传文件的功能)
user_config_dir=/etc/vsftpd/westos #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/westos
vim /etc/vsftpd/westos/westos2
anon_upload_enable=YES
设定完成后westos2用户可以在/pub目录下上传文件
westos1和westos3不行