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
2
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
2
3
4
systemctl restart vsftpd

ftp [email protected]

eaedfe1ee43712d94820e90486c6edd7.png