环境准备

  • 主机

    主机名IP地址1(外网)IP地址2(内网)系统其他
    ftp-server192.168.72.131202.207.240.131CentOS7.6MEM:2G CPU:2P/2C DISK:15G
  • 关闭防火墙等安全组件(或放行21、22端口)
  • 配置CentOS-Base源

部署安装

ftp-server主机

说明:此实验部署的ftp服务器,支持匿名访问和用户登录方式,启动匿名访问的时候只能查看,admin管理员登录方式下可以对匿名用户进行增删改查操作,其余普通用户均只能在自己的家目录下进行增删改查。

#安装vsftpd服务并创建共享目录
yum install vsftpd -y
mkdir -p /data                # 创建共享用户基本目录
mkdir -p /data/all             # 创建匿名用户访问目录

#修改配置文件,设置ftp共享方式
cp /etc/vsftpd/vsftpd.conf{,.bak}
egrep -v "^#|^$" /etc/vsftpd/vsftpd.conf.bak >/etc/vsftpd/vsftpd.conf

cat >/etc/vsftpd/vsftpd.conf <<EOF
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/data                # 共享目录的基目录是/data
chroot_local_user=YES
anon_root=/data/all                # 匿名用户访问的目录
EOF
#参数说明:
anonymous_enable=YES #开启匿名用户访问;
local_enable=YES #启用本地系统用户访问;
write_enable=YES #本地系统用户写入权限;
local_umask=022 #本地用户创建文件及目录默认权限掩码;
dirmessage_enable=YES #打印目录显示信息,通常用于用户第一次访问目录时,信息提示;
xferlog_enable=YES # 启用上传/下载日志记录;
connect_from_port_20=YES #FTP使用20端口进行数据传输;
xferlog_std_format=YES #日志文件将根据xferlog的标准格式写入;
listen=NO #Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;
listen_ipv6=YES # 启用IPV6监听;
pam_service_name=vsftpd #登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;
userlist_enable=YES #Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
tcp_wrappers=YES # 设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。
local_root=/data # 设置共享目录的根目录
chroot_local_user=YES # 允许
anon_root=/data/all # 设置匿名用户的访问目录

创建用户并设置密码
# 创建管理员用户(不需要admin用户家目录)
useradd admin -b /data
echo 111111|passwd --stdin admin
# 修改匿名用户的属主和属组
chown -R admin:admin /data/all

# 创建普通用户(需要用户家目录)
useradd test -b /data

#重启vsftpd服务并设置开机自启动
systemctl restart vsftpd
systemctl enable vsftpd

客户端测试
打开windows自带的文件管理器或第三方ftp连接工具,输入地址 ftp://192.168.72.131/

匿名用户访问
在ftp-server上登录并切换用户为admin,在/data/all目录下创建file.txt目录

使用文件管理器匿名登录,查看共享目录

发现匿名用户无法进行删除操作。

admin用户登录访问

可以进行创建和删除操作

普通用户test登录访问