在 Debian 上加固 FTP 服务安全,通常建议优先使用 SFTP(基于 SSH)而不是传统 FTP,但如果确实需要使用 FTP(如 vsftpd / proftpd),可以从以下几个方面进行加固。
SFTP 是 SSH 的一部分,天然加密,不需要额外开 21 端口。
# Debian 默认已支持 SFTP
sftp user@server_ip
如非必要,不建议再使用明文 FTP。
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
# 禁用危险命令
ls_recurse_enable=NO
# 限制被动端口范围(配合防火墙)
pasv_min_port=30000
pasv_max_port=31000
重启服务:
sudo systemctl restart vsftpd
sudo openssl req -x509 -nodes -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt -days 365
在 /etc/vsftpd.conf 添加:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
force_local_logins_ssl=YES
force_local_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
重启:
sudo systemctl restart vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo ftpuser | sudo tee -a /etc/vsftpd.userlist
避免直接使用系统账号,降低风险。
sudo ufw allow 21
sudo ufw allow 30000:31000/tcp
sudo ufw allow from 192.168.1.0/24 to any port 21
xferlog_enable=YES
log_ftp_protocol=YES
sudo tail -f /var/log/vsftpd.log
sudo apt upgradesudo apt install fail2ban
如果你能告诉我:
我可以给你一套更精确的配置方案。