当前位置:

首页 > 编程开发 > SFTP配置时如何防止暴力破解

SFTP配置时如何防止暴力破解

SFTP防暴力破解的实用配置清单 一 基础加固 这部分的配置,可以说是整个防御体系的基石。做好了,能直接挡掉绝大部分自动化脚本的骚扰。 禁用密码登录、仅用密钥:这是最关键的一步。操作路径在 /etc/ssh/sshd_config 里,把 PasswordAuthentication 设为 no,同

SFTP防暴力破解的实用配置清单

SFTP配置时如何防止暴力破解

一 基础加固

这部分的配置,可以说是整个防御体系的基石。做好了,能直接挡掉绝大部分自动化脚本的骚扰。

  • 禁用密码登录、仅用密钥:这是最关键的一步。操作路径在 /etc/ssh/sshd_config 里,把 PasswordAuthentication 设为 no,同时确保 PubkeyAuthentication 是 yes。客户端那边,用 ssh-keygen -t rsa -b 4096 这类命令生成密钥对,然后把公钥内容塞进服务器的 ~/.ssh/authorized_keys 文件。别忘了,权限设置是门学问,.ssh 目录权限得是 700,authorized_keys 文件得是 600,这一步错了,前面可能都白搭。
  • 禁止 root 直登:没什么好商量的,PermitRootLogin 直接改成 no。先让攻击者猜不到用户名,这门槛就高了不少。
  • 可选降低噪声:把默认的 22 端口改成比如 2222。这招的效果嘛,好比把自家门牌号从热闹的大街挪到小巷里,并不能让门锁变得更结实,但能显著减少被“路过”的自动化扫描工具碰上的概率。记住,这只是辅助,不能替代认证加固。
  • 重启生效:改完配置,systemctl restart sshd 一下。上面这几板斧下去,尤其是“禁用密码+仅密钥”这个组合拳,对于SFTP这种特定场景,被暴力猜解的风险已经能降到一个很低的水平了。

二 自动封禁与速率限制

基础加固是修高墙,那这部分就是部署巡逻队和设置关卡流量控制,形成纵深防御。

  • 使用 Fail2Ban 监控 SSH 登录失败并封 IP:
    • 安装:yum install fail2ban -y 或者 apt-get install fail2ban,看你的系统口味。
    • 配置(示例):核心是创建 /etc/fail2ban/jail.local 文件。里面大致这么写:
      [DEFAULT]
      bantime = 600
      findtime = 600
      maxretry = 3
      [sshd]
      enabled = true
      port = ssh
      filter = sshd
      logpath = /var/log/secure # CentOS/RHEL 用这个
      # logpath = /var/log/auth.log # Debian/Ubuntu 用这个
      maxretry = 3
      bantime = 600
      意思很直白:10分钟(600秒)内,同一个IP失败3次,就关它10分钟“禁闭”。
    • 启动:systemctl start fail2ban && systemctl enable fail2ban。想看看“巡逻队”工作状态?fail2ban-client status sshd 命令给你答案。
  • 用防火墙做连接速率限制(iptables 示例):
    • 规则:这两条 iptables 规则值得记一下:
      iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
      iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
      它们实现的效果是:60秒内,如果同一个IP对22端口的新连接请求超过4个,后续的请求就直接丢弃。用 firewalld 的话,也可以通过 direct 规则达到相同目的。

看出来了吗?Fail2Ban 是“事后追责”,发现异常再封禁;而防火墙速率限制是“事前预防”,直接从流量上掐断高频试探。两者一结合,防御的层次感和反应速度就都有了。

三 登录失败锁定与账户策略

如果说前面是防外人,那这里就是管好自家“钥匙”,并且给每把钥匙加上试错自锁功能。

  • PAM 失败计数与解锁:
    • 使用 pam_tally2(RHEL/CentOS 常用):在 /etc/pam.d/sshd 文件顶部加入:
      auth required pam_tally2.so onerr=fail deny=3 unlock_time=600
      意思是:失败3次就锁定账户,600秒后自动解锁。如果需要手动给某个用户解锁,执行 faillog -u <用户名> -r 就行。
    • 使用 pam_faillock(更现代,部分新发行版默认):同样在 /etc/pam.d/sshd 顶部加入:
      auth required pam_faillock.so preauth silent deny=3 unlock_time=600
      然后在文件底部加上:
      account required pam_faillock.so
  • 强密码策略:即使我们主要用密钥,但系统其他账户或备用方案仍需强密码。在 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 中,通过 pam_pwquality 或 pam_cracklib 模块配置,强制要求密码长度、包含字符种类,并避免使用历史密码。

PAM模块的锁定是应用层面的即时反应,速度非常快。它和网络层的Fail2Ban配合,一个管“用户账户”,一个管“来源IP”,能覆盖从短时爆破到长时间慢速试探的各种攻击窗口。

四 系统与服务最小化

安全领域有句老话:最安全的服务是根本不运行的服务。所以,我们要收窄攻击面。

  • 仅启用 SFTP 子系统:在 /etc/ssh/sshd_config 中,确保类似这样的配置是启用的:
    Subsystem sftp /usr/libexec/openssh/sftp-server
    (注意,具体路径可能因发行版而异)。这样,SSH服务就只提供SFTP功能,关掉其他不必要的子系统。
  • 保持系统与 OpenSSH 更新:这点听起来像是老生常谈,但至关重要。及时打上安全补丁,才能堵住那些已知的漏洞。最小化攻击面是“静态加固”,及时更新则是“动态维护”,两者结合才是长治久安的基础。

五 快速验证与运维建议

配置完了,怎么知道它真的在起作用?日常运维又该注意什么?

  • 验证与观测:
    • 查看 Fail2Ban 状态:fail2ban-client status sshd。想实时看谁被关了“禁闭”?tail -f /var/log/fail2ban.log 是个好选择。
    • 本地验证登录失败计数:用 faillog -u <用户名> 命令(如果用的是pam_tally2)。
  • 运维要点:
    • 变更前先备份:动 /etc/ssh/sshd_config、/etc/fail2ban/jail.local 这些关键文件前,先复制一份。改完后,逐步重启服务并检查现有会话是否正常。
    • 善用云平台能力:如果服务器在云上,别忘了云厂商提供的安全组或防火墙规则。可以在那里叠加一层来源IP白名单和速率限制策略,与主机层面的防护形成互补的多层防护。

说到底,安全不是一劳永逸的配置,而是一个持续的过程。通过上面这些状态检查和日志审计手段,你才能快速确认策略是否生效,并在第一时间发现那些不请自来的“客人”。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 debian
相关文章 更多
Debian Swapper与其他操作系统的比较
Debian Swapper与其他操作系统的比较

DebianSwapper是内存管理核心组件,通过交换空间释放RAM以防止系统崩溃。与Ubuntu、Fedora等Linux发行版相比,Debian默认使用交换分区,更依赖命令行且稳定性高;同时支持交换分区与文件,可通过sysctl调优。相比Windows和macOS,Debian交换管理更灵活,社区支持丰富。

如何通过Debian JS日志提高安全性
如何通过Debian JS日志提高安全性

基于Debian系统配置rsyslog实现日志收集,利用logrotate自动管理日志轮转,借助ELKStack进行异常模式分析,并结合Prometheus与Grafana实现实时监控告警,最终构建从日志采集到安全事件响应的完整防护体系,形成自动化安全运营闭环,有效提升系统安全防护能力。

Debian JS日志中如何监控性能
Debian JS日志中如何监控性能

在Debian系统中,通过journalctl管理Node.js日志,结合top、vmstat等系统工具分析CPU、内存及I/O资源瓶颈,优化异步日志记录与分级采样策略,并借助ELK或Loki进行集中监控与可视化分析,可快速定位并有效解决JS应用性能问题,显著提升系统效率。

Debian Golang日志对调试有帮助吗
Debian Golang日志对调试有帮助吗

在Debian系统上,Golang日志通过结构化键值对、分级控制(Debug/Info/Error)和上下文支持,记录程序运行状态与错误堆栈,辅助快速定位故障。结合日志轮换与集中式系统(如ELK),可提升调试效率,保障系统稳定性。

如何监控Debian Golang日志活动
如何监控Debian Golang日志活动

监控Debian上Golang日志活动的方法包括:命令行tail-f快速查看、journalctl管理systemd服务日志、使用logrus等库实现结构化日志、fluent-bit集中采集、Prometheus和Grafana监控性能指标、ELKStack进行大规模日志存储与分析,以及multitail同时查看多文件。根据应用规模和环境选择合适方案。

Debian Golang日志备份方法有哪些
Debian Golang日志备份方法有哪些

Debian下Golang日志常用的备份方法包括:logrotate自动轮转压缩、cron定时任务备份、rsync增量同步至远程、代码内使用标准库或lumberjack实现日志分割、容器环境中挂载数据卷后由宿主机定期备份至外部存储,确保日志安全可靠且高效。

如何查看Debian Golang日志错误
如何查看Debian Golang日志错误

在Debian系统排查Golang日志错误,可通过标准输出、日志文件、journalctl命令查看,或使用tail-f实时跟踪、grep精准定位。大规模部署可借助ELK(Elasticsearch、Logstash、Kibana)等工具集中管理,还可设置日志级别和轮转策略,结合系统日志辅助分析。

debian readdir与其他系统有何差异
debian readdir与其他系统有何差异

readdir 这个函数,在 Unix、Linux 以及 macOS 这类系统上都能用来读取目录内容。不过,不同系统之间,它的实现和行为其实藏着不少值得关注的细节。今天就把 Debian(Linux)和 macOS 拉出来做个对比,看看它们在 readdir 上到底差在哪儿。 1. 头文件 Debi

JSP在Debian上的性能监控方法有哪些
JSP在Debian上的性能监控方法有哪些

在Debian系统中,使用系统工具监控资源,分析日志,利用Java工具深度剖析,部署第三方平台实现可视化告警,借助进程管理工具保障服务,SpringBoot项目启用Actuator等内置监控组件。

Debian上JSP页面如何实现缓存优化
Debian上JSP页面如何实现缓存优化

Debian系统上JSP页面缓存优化可通过五种方法实现:利用Servlet容器内置缓存、接入Ehcache等第三方缓存库、部署CDN加速静态资源、设置浏览器缓存响应头、配置Nginx反向代理缓存。这些策略能显著提升页面响应速度,降低服务端负载,需根据业务场景灵活组合。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,