温馨提示×

如何加固Debian FTPServer

小樊
43
2026-07-23 10:39:41
栏目: 智能运维

加固 Debian 上的 FTPServer(通常指 vsftpd + TLS) 需要从 协议、认证、权限、防火墙、日志、系统层 等多方面入手。下面给你一套 生产环境常用加固方案,适合 Debian 10/11/12。


一、选择并确认 FTP 软件

Debian 常见 FTP 服务:

  • vsftpd(推荐,安全、稳定)
  • proftpd(功能多,但配置复杂)

以下以 vsftpd + TLS(FTPS) 为例。


二、安装 vsftpd 并启用 TLS(FTPS)

1️⃣ 安装

sudo apt update
sudo apt install vsftpd openssl

2️⃣ 生成 SSL/TLS 证书

自签(测试用)

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/vsftpd.key \
  -out /etc/ssl/certs/vsftpd.crt

⚠️ 生产环境建议使用:

  • Let’s Encrypt(域名)
  • 企业 CA 证书

3️⃣ 配置 vsftpd(核心加固)

编辑:

sudo nano /etc/vsftpd.conf

推荐安全配置

# 基础
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES

# 禁止危险操作
chroot_local_user=YES
allow_writeable_chroot=NO

# TLS(FTPS)
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# 强制加密
force_local_data_ssl=YES
force_local_logins_ssl=YES

# 禁止明文
debug_ssl=NO

# 用户限制
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

# 日志
xferlog_enable=YES
log_ftp_protocol=NO

4️⃣ 限制允许登录的用户

sudo nano /etc/vsftpd.userlist

加入允许的用户:

ftpuser

三、系统层加固(非常重要)

✅ 1️⃣ 创建专用 FTP 用户

sudo useradd -m -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

✅ 2️⃣ 禁止 root 登录 FTP

sudo nano /etc/ftpusers

确保包含:

root

✅ 3️⃣ 限制用户只能访问家目录(chroot)

sudo chown root:root /home/ftpuser
sudo chmod 755 /home/ftpuser

如需上传目录:

sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload

四、防火墙与端口安全

✅ FTP 使用端口

  • 21:控制
  • 被动模式端口范围(必须)

1️⃣ 设置被动端口

pasv_min_port=30000
pasv_max_port=31000

2️⃣ 防火墙放行

sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

五、Fail2ban 防暴力破解(强烈推荐)

sudo apt install fail2ban

创建配置:

sudo nano /etc/fail2ban/jail.local
[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 3600

六、日志与审计

查看日志

sudo tail -f /var/log/vsftpd.log

建议开启

xferlog_std_format=YES
log_ftp_protocol=NO   # 调试时再开

七、禁用不安全的 FTP(如非必要)

如果可以: ✅ 优先使用 SFTP(SSH)

sftp user@server

FTP 本身已逐渐被淘汰。


八、Debian 系统级加固(补充)

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
  • 禁用不必要服务
  • 使用 SSH 密钥
  • 定期更新系统

九、加固检查清单 ✅

✅ 是否禁用匿名登录
✅ 是否强制 TLS
✅ 是否限制用户目录
✅ 是否限制登录用户
✅ 是否配置被动端口
✅ 是否启用 Fail2ban
✅ 是否禁止 root 登录


十、总结(一句话)

Debian FTPServer 加固 = TLS 强制加密 + chroot 隔离 + 最小权限 + Fail2ban + 防火墙


如果你愿意,我可以:

  • ✅ 帮你 生成完整 vsftpd.conf
  • ✅ 排查你当前配置是否安全
  • ✅ 给你 SFTP 替代方案(更安全)

只要把你的 Debian 版本和需求告诉我即可。

0