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

Linux-SSH被攻击-解决方案

文章目录

    • 一、检查攻击来源
    • 二、防范措施
    • 三、Fail2ban+firewallcmd-ipset
      • 安装Fail2ban:
      • 安装firewalld:
      • 配置Fail2ban:
      • 配置firewalld以使用fail2ban:
      • 测试配置:

SSH端口暴露在公网上很可能被黑客扫描,并尝试登入系统。这种攻击基本每天都在发生。

  • 首先要检查SSH端口是否被攻击,主要检查检查失败登录。

一、检查攻击来源

btmp文件会记录SSH端口登录失败的信息,包括尝试的用户名、IP地址和时间等信息。

btmp为二进制文件,文件路径为/var/log/btmp。

  1. 查看文件btmp

使用命令lastb可以查看文件btmp的信息,参数-n可以指定显示数量。

lastb -n 10 | tac
  1. 查看攻击者IP及攻击次数
lastb | awk '{ print $3}' | sort | uniq -c | sort -n
  1. 查看攻击者尝试的用户名
lastb | awk '{ print $1}' | sort | uniq -c | sort -n
  1. 分析攻击者

对攻击次数第一的IP进行分析。

# 查看攻击开始时间lastb | grep 137.184.155.125# 查看攻击终止时间lastb | grep 137.184.155.125 | tac# 查看IP地理位置curl ipinfo.io/137.184.155.125

二、防范措施

  1. 修改SSH端口

修改SSH端口可以避免广撒网式的端口扫描及后续的攻击。

# 打开文件sshd_configvim /etc/ssh/sshd_config# 修改参数Port# 修改前:#port 22# 修改后:port 8500# 重启SSH守护程序systemctl restart sshd
  1. 设置复杂密码

设置密码为字母+数字+符号组合,提升暴力破解难度。

  1. 使用私钥登录
  2. Fail2ban+firewallcmd-ipset
    个人比较推荐第四种方式,这种方式也是成本较低的抵御服务器入侵的方式,针对大量攻击行之有效。

三、Fail2ban+firewallcmd-ipset

Fail2ban是一个用于自动封禁恶意访问者的工具,而firewallcmd-ipset则是与firewalld集成的工具,用于管理IP集合和规则。下面是将Fail2ban与firewallcmd-ipset结合使用的具体步骤:

安装Fail2ban:

首先,确保你的系统中安装了Fail2ban。如果没有安装,你可以使用包管理器进行安装。例如,在基于RPM的系统(如Fedora或CentOS)上,可以使用sudo yum install fail2ban命令进行安装。

安装firewalld:

如果你的系统还没有安装firewalld,你需要先安装它。在基于RPM的系统上,可以使用sudo yum install firewalld命令进行安装。

配置Fail2ban:

Fail2ban的配置文件位于/etc/fail2ban/目录下。你可以复制默认的jail.conf文件并命名为jail.local,以便进行自定义配置。

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local# 接下来,编辑jail.local文件,并添加或修改以下参数:[DEFAULT]  ignoreip = 127.0.0.1/8  bantime = 86400  findtime = 600  maxretry = 5  banaction = firewallcmd-ipset  action = %(action_mwl)s

其中,ignoreip参数用于指定不受Fail2ban监控的IP地址或地址段。bantime参数定义了IP被禁止的时长,单位是秒。findtime定义了查找失败登录尝试的时间范围。maxretry定义了在此时间范围内允许的失败尝试次数。banaction定义了执行封禁操作的命令,这里使用的是firewallcmd-ipset。

配置firewalld以使用fail2ban:

为了让firewalld能够与Fail2ban协同工作,你需要配置firewalld来加载Fail2ban创建的IP集合。编辑/etc/firewalld/firewalld.conf文件,并添加或修改以下行:

rich_rules_file="/etc/firewalld/rich-rules.conf"# 这将告诉firewalld加载/etc/firewalld/rich-rules.conf文件中的规则。# 重启服务:
# 完成上述配置后,重启Fail2ban和firewalld服务,以使更改生效。
sudo systemctl restart fail2ban  
sudo systemctl restart firewalld

测试配置:

最后,你可以尝试触发Fail2ban的封禁机制,以测试配置是否生效。例如,如果你配置Fail2ban监控SSH登录失败尝试,你可以尝试多次使用错误的凭据登录SSH。如果配置正确,你应该会在指定的bantime后被禁止登录。

如果你熟悉1Panel或者宝塔等面板,配置起来会更加快捷,这里提供的解决方案仅供参考,希望对你有用!

http://www.lryc.cn/news/303232.html

相关文章:

  • 第1章 计算机系统概述(2)
  • 【Java中23种设计模式-单例模式--饿汉式】
  • 基于JavaWeb实现的在线蛋糕商城
  • 【Pytorch】各种维度变换函数总结
  • typescript 泛型详解
  • 【Ubuntu内核】解决Ubuntu 20.04更新内核后无法联网的问题
  • 20-k8s中pod的调度-nodeSelector节点选择器
  • win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)
  • 数据结构与算法:栈
  • Newtonsoft.Json设置忽略某些字段
  • 【c++每天一题】跳跃游戏
  • 【C# 中抓取包含多个屏幕内容的整个桌面】
  • 数据库管理-第152期 Oracle Vector DB AI-04(20240220)
  • uniapp app端水印组件封装 一次引入版
  • 最新Unity游戏主程进阶学习大纲(2个月)
  • NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
  • 基于Spring Boot的多级缓存系统设计
  • k8s-配置与存储-配置管理
  • c语言实现bellman-ford算法
  • socket与rpc的区别
  • 10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝
  • 代码随想录算法训练营第三八天 | 动态规划
  • 【ubuntu2004安装N卡驱动】
  • 使用 Docker 安装 Kibana 8.4.3
  • 基于python社交网络大数据分析系统的设计与实现
  • 【设计模式】23种设计模式笔记
  • 编程笔记 Golang基础 009 标识符和关键字
  • vue3中mockjs模拟获取数据
  • element ui 添加自定义方法
  • Hive UDF