以下是Ubuntu FTP Server(以vsftpd为例)的定制化配置步骤,涵盖基础设置、用户权限、安全增强及高级功能:
安装vsftpd
sudo apt update && sudo apt install vsftpd
修改配置文件
编辑 /etc/vsftpd.conf,关键参数:
anonymous_enable=NO # 禁用匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许上传文件
chroot_local_user=YES # 限制用户至主目录
allow_writeable_chroot=YES # 允许chroot目录可写
listen_port=2121 # 自定义监听端口(默认21)
pasv_enable=YES # 启用被动模式
pasv_min_port=30000 # 被动模式端口范围(需与防火墙一致)
pasv_max_port=30001 #
创建专用FTP用户
sudo adduser ftpuser --shell /sbin/nologin # 禁止shell登录
sudo chown ftpuser:ftpuser /home/ftpuser # 设置主目录权限
sudo chmod 755 /home/ftpuser # 确保可访问
用户列表控制(可选)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO # 允许列表内用户访问
/etc/vsftpd.userlist,每行一个。启用SSL/TLS加密
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES # 强制数据传输加密
限制IP访问(可选)
/etc/hosts.allow 和 /etc/hosts.deny,添加:vsftpd: 192.168.1.0/24 # 允许指定IP段访问
vsftpd: ALL # 拒绝其他IP
虚拟用户(非系统用户)
sudo apt install libpam-pwdfile
# 在/etc/vsftpd.conf中添加
guest_enable=YES
guest_username=virtualuser # 系统中需存在该用户
pam_service_name=vsftpd.virtual
/etc/vsftpd/virtual_users.txt),格式:用户名:密码,并生成PAM配置。日志与监控
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES # 记录协议交互日志
重启服务
sudo systemctl restart vsftpd
测试连接