#########################
#
实验环境
#
#########################
#
#server
主机
:
# westos_node1
#
172.25.254.250
# selinux
关闭
#
火墙开启
# dnf
安装设定完成
#
#client
主机
:
# westos_linux
#
172.25.254.100
# selinux
关闭
# dnf
安装设定完成
#
安装
lftp #ftp
协议文本浏览器
#
#########################
#
1.
ftp
介绍
#
#########################
ftp
:
file transfer proto
互联中最老牌的文件传输协议
#########################
#
2.
vsftpd
安装及启用
#
(配置软件仓库)
#########################
dnf install vsftpd
-
y
#server
dnf install lftp
-
y
#client
关闭
selinux
systemctl disable
--
now firewalld
vim
/
etc
/
vsftpd
/
vsftpd.conf
12
anonymous_enable
=
YES
##
启动匿名用户的访问功能
systemctl restart vsftpd
测试安装发布
:
firefox ftp
://
ip
lftp ip
##
此访问方式必须能列出资源才算访问成功
##
在使用完成后请输入
exit
推出
lftp
#########################
#
3.
vsftpd
基本信息
#
#########################
服务名称
:
vsftpd.service
配置目录
:
/
etc
/
vsftpd
主配置文件
:
/
etc
/
vsftpd
/
vsftpd.conf
默认发布目录
:
/
var
/
ftp
报错信息
:
550
##
程序本身拒绝
553
##
文件系统权限限制
500
##
权限过大
530
##
认证失败
#########################
#
4.
匿名用户访问控制
#
#########################
lftp
192.168.0.10
##
当访问
ftp
服务时没有加入用户认证为匿名访问
lftp
192.168.0.10
-
u westos ##
本地用户访问
登陆控制
anonymous_enable
=
YES
|
NO
(在实验过程中一定要保证selinux处于关闭状态)
家目录控制
anon_root
=/
westosdir
上传控制
anon_upload_enable
=
YES
|
NO
chmod
775
/
var
/
ftp
/
pub
chgrp ftp
/
var
/
ftp
/
pub
lftp
192.168.0.100
cd pub
put
/
etc
/
passwd
目录建立控制
anon_mkdir_write_enable
=
YES
|
NO
下载控制
anon_world_readable_only
=
NO ##
匿名用户可以下载不能读的文件
删除重命令控制
anon_other_write_enable
=
YES
|
NO
匿名用户上传文件权限设定
anon_umask
=
xxx
anon_umask
=
022 ##
当设定
chown_username
之后上传文权限将不是用此参数设定
匿名用户上传文件的用户身份设定
chown_upload
=
YES
chown_username
=
lee
chown_upload_mode
=
0644
登陆数量控制
:
max_clients
=
2
上传速率控制
anon_max_rate
=
102400
#########################
#
5.
本地用户的访问
#
#########################
登陆控制
useradd westos
useradd lee
echo lee
|
passwd
--
stdin westos
echo lee
|
passwd
--
stdin lee
lftp
192.168.0.10
-
u westos
local_enable
=
NO
|
YES
家目录控制
local_root
=/
software
写权限控制
write_enable
=
NO
|
YES
上传文件权限控制
local_umask
=
077
用户登陆控制
/
etc
/
vsftpd
/
ftpusers ##
永久黑
/
etc
/
vsftpd
/
user_list ##
默认黑
(lee无法登录)
用户登陆白名单
userlist_deny
=
NO #
设定
/
etc
/
vsftpd
/
user_list
位白名单
#
不在名单中的用户不能登陆
ftp
锁定用户到自己的家目录中
chmod u
-
w
/
home
/*
chroot_local_user
=
YES
锁定用户到自己的家目录中的白名单
chroot_local_user
=
YES
chroot_list_enable
=
YES
chroot_list_file
=/
etc
/
vsftpd
/
chroot_list
锁定用户到自己的家目录中的黑名单
chroot_local_user
=
NO
chroot_list_enable
=
YES
chroot_list_file
=/
etc
/
vsftpd
/
chroot_list
#########################
#
6.
虚拟用户访问
#
#########################
#
1.
建立虚拟用户过程
########
1.
vim
/
etc
/
vsftpd
/
ftp_auth_file
#
建立认证文件模板
westos1
123
westos2
123
westos3
123
2.
db_load
-
T
-
t hash
-
f ftp_auth_file ftp_auth_file.db ##
加密认证文件
-
T
转换
-
t type
-
f
指定
转换文件
3.
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
4.
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
vim
/
etc
/
vsftpd
/
vsftpd.conf
local_root
=/
ftpuserdir
/
$USER
user_sub_token
=
$USER
systemctl restart vsftpd
#########
用户配置独立
##############
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
不行