安装vsftpd
apt install vsftpd
备份原始vsftpd配置文件
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
添加新用户并设置密码
-m:自动建立用户的登入目录
useradd -m ftpuser
passwd ftpuser
将新用户添加到vsftpd用户列表
bash -c "echo ftpuser >> /etc/vsftpd.userlist"
创建FTP用户的家目录
mkdir /home/ftpuser/ftp
chown ftpuser:ftpuser /home/ftpuser/ftp
编辑vsftpd配置文件
vim /etc/vsftpd.conf
如果是NAT机器可以指端口 listen_port=2121
listen_ipv6=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
ssl_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/home/ftpuser/ftp
以下是 vsftpd 配置文件中给出的选项及其对应的功能说明:
listen_ipv6=YES
: 开启监听 IPv6 连接的功能。
local_enable=YES
: 允许本地用户登录 FTP 服务器。
write_enable=YES
: 允许本地用户上传和修改文件。
local_umask=022
: 设置本地用户上传文件时的默认文件权限掩码。
dirmessage_enable=YES
: 开启在用户进入目录时显示目录说明信息的功能。
use_localtime=YES
: 设置 FTP 服务器使用本地时间。
xferlog_enable=YES
: 开启在日志文件中记录文件传输情况的功能。
secure_chroot_dir=/var/run/vsftpd/empty
: 设置 chroot 环境的安全目录,该目录应该是一个空目录,并且只有 root 用户有写权限。
pam_service_name=vsftpd
: 指定 PAM 的服务名称,用于验证用户身份。
ssl_enable=NO
: 禁用 SSL 加密传输功能。
chroot_local_user=YES
: 将本地用户限制在其主目录中,禁止访问其他目录和文件。
allow_writeable_chroot=YES
: 允许在本地用户的 chroot 环境中创建可写的文件夹。
local_root=/home/ftpuser/ftp
: 指定本地用户的主目录为 /home/ftpuser/ftp
。
这些选项控制着 vsftpd 的不同功能和行为,有助于提高 FTP 服务器的安全性和灵活性。需要根据实际需求进行配置
重启vsftpd服务并设置为开机自启动
systemctl restart vsftpd
systemctl enable vsftpd