改默认端口,少点骚扰
很多人装完FTP服务器就直接用默认的21端口,这等于把家门钥匙挂在门口。黑客的扫描工具整天扫21端口,一旦发现开放就自动开始撞库。换个非标准端口,比如2121、5021,能避开大部分自动化攻击。虽然不能彻底防住,但至少减少被盯上的概率。
<!-- vsftpd 配置文件中修改端口示例 -->
listen_port=2121限制登录失败次数
像vsftpd这种常见的FTP服务,可以直接配合系统防火墙和fail2ban这类工具,监控登录日志。比如一个IP连续5次输错密码,就自动封30分钟。实际运维中见过某公司FTP天天被试密码,上了fail2ban之后,攻击记录从每天上千条降到个位数。
# fail2ban 配置片段示例
[vsftpd]
enabled = true
filter = vsftpd
action = iptables[name=VSFTPD, port=2121, protocol=tcp]
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 1800强制使用强密码
别让员工设个123456当密码还觉得挺安全。可以在服务器上配置PAM模块,强制密码长度、复杂度。比如要求必须包含大小写字母、数字和特殊符号。见过最离谱的是某个小公司FTP账号密码就是“ftp123”,三天两头被黑,改完策略才消停。
只允许可信IP访问
如果FTP只是内部用,或者合作方固定几个出口IP,直接在防火墙或vsftpd里做IP白名单。外网随便扫都连不上,暴力破解自然无从谈起。配置起来也不难,一行allow就行。
# vsftpd.conf 中限制IP段
tcp_wrappers=YES
# 在 /etc/hosts.allow 中添加
vsftpd: 192.168.1.0/24, 203.0.113.45关闭匿名登录
除非你真需要对外开放下载,否则匿名登录(anonymous)一定要关掉。很多攻击就是从尝试匿名登录开始的,开着等于给陌生人开了一扇后窗。
# 确保这一项是NO
anonymous_enable=NO用SFTP代替FTP
如果条件允许,干脆别用明文传输的FTP了。换成基于SSH的SFTP,不仅加密传输,还能直接用密钥登录,免密码。就算被人盯上,没有私钥也进不来。现在很多客户端都支持SFTP,迁移成本并不高。