1. 安装vsftpd(Debian首选FTP服务器)
首先更新系统软件包列表并安装vsftpd,它是Debian上安全且高性能的FTP服务器解决方案:
sudo apt update && sudo apt install vsftpd -y
2. 基础配置:限制访问与强化权限
编辑vsftpd主配置文件/etc/vsftpd.conf,通过以下关键参数实现基础安全加固:
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES # 允许chroot目录可写(避免用户无法上传文件)
usermod -aG ftpwrite ftpuser添加至专用组,并配置目录权限)。write_enable=NO # 默认关闭,需为特定用户开启
/var/log/vsftpd.log)。xferlog_enable=YES
xferlog_std_format=YES
3. 用户与权限管理:精细化控制
sudo adduser ftpuser # 按提示设置密码(建议使用强密码)
sudo mkdir -p /home/ftpuser
sudo chown root:root /home/ftpuser # 家目录所有者必须为root
sudo chmod 755 /home/ftpuser # 目录权限设为755(用户可进入,其他用户只能读取)
sudo mkdir -p /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload # 归属用户自身
sudo chmod 755 /home/ftpuser/upload # 允许用户写入
4. 防火墙配置:放行必要流量
使用UFW(Uncomplicated Firewall)简化规则配置,允许FTP控制连接、数据传输及被动模式端口:
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw enable
sudo ufw status verbose # 查看当前规则(应显示上述端口为ALLOW状态)
5. 启用TLS/SSL加密:保护数据传输
FTP协议默认明文传输,易被窃听。通过TLS/SSL加密可确保数据(用户名、密码、文件内容)的机密性:
sudo apt install openssl -y
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
/etc/vsftpd.conf,添加以下参数:ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES # 强制数据传输加密
force_local_logins_ssl=YES # 强制登录过程加密
ssl_tlsv1=YES # 启用TLSv1协议(禁用SSLv2/3)
ssl_sslv2=NO
ssl_sslv3=NO
sudo systemctl restart vsftpd
6. 高级安全优化:提升整体防护
/etc/ssh/sshd_config:PermitRootLogin no
PasswordAuthentication no # 禁用密码认证(建议使用SSH密钥)
PubkeyAuthentication yes
重启SSH服务:sudo systemctl restart sshd
/etc/pam.d/common-password:password requisite pam_pwquality.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
sudo apt update && sudo apt upgrade -y
7. 测试与验证:确保配置正确
/var/log/vsftpd.log,确认无异常登录或操作记录(如多次失败尝试)。sudo ufw status确认端口规则未被篡改,确保只有授权流量可通过。