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确认端口规则未被篡改,确保只有授权流量可通过。