温馨提示×

ubuntu ftpserver怎么防入侵

小樊
40
2026-09-11 11:21:53
栏目: 网络安全

在 Ubuntu 上搭建 FTP 服务器(常见为 vsftpdProFTPD),防入侵的核心思路是:最小权限、加密传输、严格访问控制、日志监控、系统级防护。下面以最常用的 vsftpd 为例说明。


一、基础安全配置(最重要)

1. 使用 vsftpd 并禁用匿名登录

sudo apt install vsftpd
sudo nano /etc/vsftpd.conf

关键配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

chroot 可防止用户访问系统其他目录


2. 强制使用虚拟用户(推荐)

避免直接使用系统账号登录 FTP。

示例:

  • 使用 pam + 虚拟用户
  • vsftpd + db_load 用户库

虚拟用户只能访问指定目录,入侵影响可控。


二、加密传输(防嗅探)

3. 启用 FTPS(SSL/TLS)

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
force_local_logins_ssl=YES
force_local_data_ssl=YES

客户端必须使用 FTPS,明文密码不会被抓包。


三、访问控制

4. 限制可登录用户

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

只在列表中用户可登录。


5. 限制 IP(防火墙)

sudo ufw allow from 192.168.1.0/24 to any port 21
sudo ufw enable

或只允许公司/固定 IP。


四、系统级防护

6. 修改默认端口(减少扫描)

listen_port=2121

7. 使用 Fail2Ban 防暴力破解

sudo apt install fail2ban
sudo nano /etc/fail2ban/jail.local
[vsftpd]
enabled = true
port = 21
maxretry = 3
bantime = 3600

8. 定期更新系统

sudo apt update && sudo apt upgrade

五、日志与监控

9. 开启日志

xferlog_enable=YES
log_ftp_protocol=YES

检查:

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

六、更安全的替代方案(强烈建议)

如果不是必须用 FTP

  • SFTP(SSH)(端口 22,加密,更安全)
  • ✅ WebDAV over HTTPS
  • ❌ 普通 FTP(明文,风险高)

总结(防入侵优先级)

  1. 禁用匿名
  2. 不用系统账号(虚拟用户)
  3. 强制加密(FTPS / SFTP)
  4. 防火墙 + Fail2Ban
  5. 日志监控

如果你愿意,我可以:

  • 给你一份 完整 vsftpd 安全配置模板
  • 或帮你 从 FTP 迁移到 SFTP

0