Bootstrap

Anolis OS 8.9下搭建VSFTPD

一、需求

随着信创的进展,各单位原来使用Windows + Server-U搭建的ftp系统面临淘汰,急需在国产化操作系统下的FTP服务器来替代。因此,本文使用了阿里贡献的开源龙蜥操作系统,并使用最为广泛的vsftpd作为FTP服务端软件。为保障服务器的安全,使用了虚拟用户这一方式来实现。

二、安装vsftpd

1、安装
# 安装vsftpd服务器端软件和ftp客户端软件
dnf -y install vsftpd ftp
# 启动vsftpd服务并允许开机自启动
systemctl start vsftpd
systemctl enable vsftpd
# 开放防火墙ftp服务策略
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
# 备份vsftpd配置
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
2、创建FTP用户列表,奇数行为用户名,偶数行为密码。
cd /etc/vsftpd/
tee /etc/vsftpd/vuser.list <<-"EOF"
bgs
bgs
fgc
fgc
zgc
zgc
hlc
hlc
xxzx
xxzx
center
center
EOF
3、将用户列表创建到数据库中
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/
tee /etc/pam.d/vsftpd.vu <<-"EOF"
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser
EOF
4、给FTP用户创建权限
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
tee /etc/vsftpd/vusers_dir/bgs <<-"EOF"
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

 # 根据第2点的用户,全部复制一份
cp /etc/vsftpd/vusers_dir/bgs /etc/vsftpd/vusers_dir/fgc
cp /etc/vsftpd/vusers_dir/bgs /etc/vsftpd/vusers_dir/zgc
cp /etc/vsftpd/vusers_dir/bgs /etc/vsftpd/vusers_dir/hlc
cp /etc/vsftpd/vusers_dir/bgs /etc/vsftpd/vusers_dir/xxzx
cp /etc/vsftpd/vusers_dir/bgs /etc/vsftpd/vusers_dir/center

# 创建一个只读权限的公共用户,可以访问所有目录
tee /etc/vsftpd/vusers_dir/center <<-"EOF"
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
EOF
5、替换vsftpd.conf
tee /etc/vsftpd/vsftpd.conf <<-"EOF"
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES
allow_writeable_chroot=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.vu
userlist_enable=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/userconfig
EOF
6、创建只读方式访问所有目录的用户文件,用户名(一行一个)
tee /etc/vsftpd/chroot_list <<-'EOF'
center
EOF
7、创建用户指定的目录配置文件,每个用户名创建一个
mkdir /etc/vsftpd/userconfig
tee /etc/vsftpd/userconfig/bgs <<-"EOF"
local_root=/var/ftproot/办公室
EOF

tee /etc/vsftpd/userconfig/zgc <<-"EOF"
local_root=/var/ftproot/征管处
EOF

tee /etc/vsftpd/userconfig/fgc <<-"EOF"
local_root=/var/ftproot/法规处
EOF

tee /etc/vsftpd/userconfig/hlc <<-"EOF"
local_root=/var/ftproot/货劳处
EOF

tee /etc/vsftpd/userconfig/xxzx <<-"EOF"
local_root=/var/ftproot/信息中心
EOF

tee /etc/vsftpd/userconfig/center <<-"EOF"
local_root=/var/ftproot
EOF
8、重启服务
systemctl restart vsftpd

三、测试

1、在服务器上测试
ftp 127.0.0.1

以bgs用户为例,可创建目录

2、在PC机上使用FTP客户端软件测试

可创建目录,上传文件

;