vsftpd@在ubuntu22.04 LTS上部署基于系统用户认证
vsftpd 是一款开源的、高性能且非常注重安全的 FTP 服务器,广泛应用于 Linux 服务器中。其名称的含义是 “very secure FTP daemon(非常安全的FTP守护进程)”。
目的
在ubuntu上部署ftp,支持非默认用户家目录作为ftp根目录。
env
- ubuntu-22.04 LTS
- vsftpd
1.安装vsftpd
# 更新系统包
sudo apt update
# 安装vsftpd
sudo apt install vsftpd -y
# 检查服务状态
sudo systemctl enable --now vsftpd
2.配置vsftpd
2.1备份配置
1 | sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup |
2.2配置/etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/data/ftp
#pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40010
pam_service_name=vsftpd
# 主动模式,默认被动模式
#pasv_enable=NO
#connect_from_port_20=YES
2.3配置pam.d/vsftpd
root@vgt-ubuntu-10:~# cat /etc/pam.d/vsftpd
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
#@include common-account
#@include common-session
#@include common-auth
auth required pam_unix.so
account required pam_unix.so
#auth required pam_shells.so
3.新增ftp用户及目录
3.1add user
useradd -m -s /sbin/nologin ftp1
passwd ftp1
⚠️:chroot前提用户必须有家目录
3.2add dir
mkdir -pv /data/ftp
chown -R ftp1: /data/ftp
4.启动vsftpd及测试
1 | systemctl restart vsftpd |