当前位置: 首页 > news >正文

Ubuntu 20.04 LTS 防止暴力破解

文章目录

  • 前言
  • 一、禁用或限制密码认证
  • 二、安装并配置 Fail2Ban
  • 三、配置防火墙(UFW)
  • 四、配置 iptables 限制 SSH 速率
  • 五、强化密码策略(若必须使用密码)
  • 六、禁用不必要的服务
  • 七、定期更新系统和软件
  • 八、监控日志和异常登录
  • 九、限制用户登录权限``
  • 十、使用入侵检测系统(可选)
  • 总结

前言

在 Ubuntu 20.04 中防止暴力破解(如 SSH 密码暴力破解)需要多层次的安全策略,结合系统配置、服务加固和监控工具。以下是详细的方案:


一、禁用或限制密码认证

  • 原理:SSH 密码认证是暴力破解的主要目标,改用密钥认证可彻底避免此类攻击。
  • 配置方法
# 编辑 SSH 配置文件,root账号操作vim/etc/ssh/sshd_config# 修改以下参数PasswordAuthentication no# 禁用密码认证ChallengeResponseAuthentication no# 禁用挑战响应认证PubkeyAuthenticationyes# 启用密钥认证PermitRootLogin no# 禁止 root 远程登录(可选但推荐)# 重启 SSH 服务sudosystemctl restart sshd
  • 补充:生成 SSH 密钥对并上传公钥到服务器(参考 ssh-keygen 和 ssh-copy-id)。

二、安装并配置 Fail2Ban

  • 安装Fail2Ban
  • 原理:Fail2Ban 监控日志文件,自动封禁多次失败的登录尝试。
#安装命令(root账号)aptupdateaptinstallfail2ban
  • 配置Fail2Ban
  • 默认配置已保护 SSH,可通过 /etc/fail2ban/jail.local(需创建)自定义规则:
#1.打开jail.local配置文件vim/etc/fail2ban/jail.local#2.配置如下[sshd]enabled=truemaxretry=5# 允许失败次数bantime=86400# 封禁时间(秒,24小时)findtime=600# 监控时间窗口(秒,10分钟内超过 maxretry 次则封禁)
  • 使配置生效
#重启服务(root账号)systemctl restart fail2ban
  • 查看封禁记录
运行命令查看封禁记录(root账号) fail2ban-client status sshd

三、配置防火墙(UFW)

  1. 方案1:限制SSH访问ip和修改SSH默认端口
1.限制SSH访问IP#原理:限制外部访问关键端口(如 SSH 的 22 端口)。# 安装 UFW(若未安装,Ubuntu系统默认是安装的)aptinstallufw# 允许 SSH 并启用防火墙ufw allow22/tcp ufwenable# 可选:限制 SSH 来源 IP(仅允许特定 IP 访问)ufw allow from192.168.1.100 to any port222.修改默认SSH端口#原理:避免攻击者直接扫描默认端口 22。# 编辑 SSH 配置vim/etc/ssh/sshd_config# 修改端口(如 2222)Port2222# 重启 SSHsystemctl restart sshd# 更新防火墙规则ufw allow2222/tcp ufw delete allow22/tcp# 删除旧规则(可选)#注意:修改端口后需更新客户端配置,并确保防火墙/安全组放行新端口。
  1. 方案2:限制ssh访问速率
1.删除现有SSH规则(如果已存在): ufw delete allow22/tcp2.添加速率限制规则:限制每分钟最大连接5次 ufw limit22/tcp comment'Limit SSH connections to 5 per minute'limit 表示启用速率限制(基于iptables的recent模块)3.确认ufw是否启用,未启用就启用 systemctl status ufw systemctl start ufw ufwenable4.验证配置 ufw status numbered#输出应包含:To Action From -- ------ ----22/tcp LIMIT Anywhere# Limit SSH connections to 5 per minute

四、配置 iptables 限制 SSH 速率

  • 原理:iptables 是 Linux 默认的防火墙工具,可以通过 recent 模块限制单位时间内的连接次数。
1.添加规则(限制每分钟最多5次新连接,超过则封禁 IP1小时): iptables-AINPUT-ptcp--dport22-mstate--stateNEW-mrecent--setiptables-AINPUT-ptcp--dport22-mstate--stateNEW-mrecent--update--seconds60--hitcount5-jDROP#介绍--dport22:SSH 端口(如修改过,请替换)。--seconds60:时间窗口(60 秒)。--hitcount3:允许的最大连接次数(超过则封禁)。-jDROP:丢弃超过限制的连接。2.保存规则(防止重启失效):aptinstallnetfilter-persistent# 若未安装netfilter-persistent save#或者手动保存iptables-save>/etc/iptables/rules.v4# IPv4ip6tables-save>/etc/iptables/rules.v6# IPv6(如需)3.查看当前限制: iptables-LINPUT-v--line-numbers|grep22

五、强化密码策略(若必须使用密码)

  • 原理:强制使用复杂密码,增加破解难度。
# 安装 libpam-pwqualityaptinstalllibpam-pwquality# 编辑密码策略vim/etc/security/pwquality.conf# 添加以下参数minlen=12# 最小长度dcredit=-1# 至少 1 个数字ucredit=-1# 至少 1 个大写字母lcredit=-1# 至少 1 个小写字母ocredit=-1# 至少 1 个特殊字符#生效:新用户或修改密码时生效。

六、禁用不必要的服务

  • 原理:减少攻击面。
# 查看运行中的服务systemctl list-units--type=service--state=running# 禁用高危服务(如 Telnet、VNC)systemctl disable telnet.socket systemctl stop telnet.socket

七、定期更新系统和软件

  • 原理:修复已知漏洞。
aptupdate&&sudoaptupgrade-yaptautoremove

八、监控日志和异常登录

  • 原理:及时发现可疑行为。
# 查看 SSH 日志tail-f/var/log/auth.log# 使用 journalctl 查看系统日志journalctl-ussh--no-pager-n50

九、限制用户登录权限``

  • 原理:最小权限原则。
1.创建普通用户并加入sudo组: adduser limited_userusermod-aGsudolimited_user2.禁止非必要用户 SSH 登录:vim/etc/ssh/sshd_config AllowUsers limited_user# 仅允许指定用户登录

十、使用入侵检测系统(可选)

  • 工具推荐:
    AIDE:文件完整性检查。
    ClamAV:病毒扫描。
    OSSEC:主机级入侵检测。

总结

总结方案优先级
禁用密码认证 → Fail2Ban → 防火墙/UFW &iptables限制 SSH 速率→ 强化密码策略。通过以上组合措施,可显著降低 Ubuntu 20.04 被暴力破解的风险。建议定期审计系统安全配置,并关注最新安全公告。

http://www.jsqmd.com/news/459355/

相关文章:

  • Unreal Engine 4核心概念解析:Pawn——游戏世界中的可操控化身
  • Methyltetrazine–PEG4–Mal 1802908-02-6 活细胞双靶点标记探针
  • 基于Simulink的鲁棒H∞整流器控制器设计
  • 【通俗易懂告诉你什么是人工智能/CNN/RNN/DL......】
  • 智能AI裂缝识别 裂缝图像分割识别 建筑物裂缝识别 建筑结构裂缝自动检测模型训练 道路桥梁病害识别算法10529期
  • Unreal Engine 4核心概念解析:Character——专为人形角色设计的终极“游戏化身”
  • 毕业设计:基于SpringBoot Ai和Vue的旅游攻略小程序(源码)
  • OpenClaw霸榜,Agent正悄无声息地干掉传统“App”!
  • Mac病毒清除过程, SimulatorTrampoline,提醒事项APP伪装 XcodeGhost,XCSSET类型
  • 刷题笔记:力扣第18题-四数之和
  • 华为 MetaERP 的内部交易协同,是基于元数据驱动的多组织模型 + 事件驱动的服务总线 + 分布式事务 + 智能对账引擎,实现内部交易从发起、协同、确认到对账、抵消的全链路自动化、数据同源、零差异
  • STM32CubeMX配置串口采集超声波传感器数据(四)
  • Android BLE 稳定连接管理器(Kotlin版)完整代码骨架(下篇)
  • 动态规划之背包问题详解(从入门到实战)
  • Kubernetes中的网络策略(Network Policies)
  • 华为 MetaERP 已成为核电行业国产替代的核心方案,以全栈自主可控为基础,通过联合共建模式深度适配核电高安全、强管控、长周期的行业特性,已在中核、中广核等龙头企业落地标杆项目
  • SAP(以 S/4HANA 为代表)通过多组织建模、多分类账(多账套)、多币种引擎、多会计准则并行四大核心机制,在统一数据模型(ACDOCA)上实现集团化、全球化、多准则的财务核算架构
  • 3.5 数据管线、损失函数与分布式训练如何配合
  • Python 源文件默认编码是 **UTF-8**(推荐使用),如果文件包含非 ASCII 字符(如中文),无需额外声明;若需使用其他编码(如 GBK),需在文件第一行/第二行声明
  • SAP 利润中心Profit是如何实现跨法人、穿透式管理的?
  • 基于堆叠自动编码器(SAE)的人脸图像识别:Matlab 实现
  • 第10章 移动平台着色器优化实战:从简化到高级技巧
  • schoober-ai-sdk:核心ReAct 引擎的实现
  • SAP 利润中心 + 分部报告 + 集团合并 + 多准则 是怎么联动成一套集团财务架构的
  • 基于 CAN 总线的 DSP280049C 升级方案全解析
  • OpenClaw Mac本地部署保姆级教程:手把手教你“养龙虾”
  • 不是烤串故事【牛客tracker 每日一题】
  • 探索三相并网逆变器LCL逆变之控制策略与仿真实践
  • AI-Native的定义与特征
  • 华为 MetaERP 的多组织、多帐套、多币种、多会计准则核算架构,核心是元数据驱动 + 云原生微服务 + 实时核算引擎 + 分布式数据底座,实现 “交易即核算、单账套多准则、全球实时合并”