Linux-SSH被攻击-解决方案

这篇具有很好参考价值的文章主要介绍了Linux-SSH被攻击-解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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_config

vim /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或者宝塔等面板,配置起来会更加快捷,这里提供的解决方案仅供参考,希望对你有用!文章来源地址https://www.toymoban.com/news/detail-829595.html

到了这里,关于Linux-SSH被攻击-解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浅析ssh密钥登陆失败的原因及解决方案

    在日常的网络管理与运维工作中,我们经常会遇到通过 ssh 登录远程服务器的情况,ssh 是一种安全可靠的远程访问协议,广泛应用于分布式系统中。在使用 ssh 登录时,有时会遇到登录失败的情况,本文将对一次 ssh 密钥登陆失败的原因进行浅析,并给出相应的解决方案。 1、

    2024年02月13日
    浏览(31)
  • SSH连接问题解决方案 - 服务器无法连接

    SSH(Secure Shell)是一种常用的远程登录和执行命令的协议,它提供了安全的加密通信通道。然而,有时候在连接Linux服务器时可能会遇到无法连接的问题。本文将为您提供一些可能的解决方案。 确认服务器状态 首先,您需要确认服务器的状态。确保服务器正在运行,并且网络

    2024年02月03日
    浏览(37)
  • 配置ssh免密登录后,依然需要输入密码登录&解决方案

    配置ssh免密登录后,依然需要输入密码登录 配置免密登录后仍需要密码的主要原因是权限的问题, ssh不允许用户的主目录和.ssh目录以及authorized_keys文件的权限开放得太大 思路来源:https://blog.csdn.net/qq_38391602/article/details/121280862 如果上面权限操作后,还是不行,就继续查看系

    2024年02月11日
    浏览(41)
  • 虚拟机ssh连接网络时显示未连接原因有哪些以及解决方案

    1.网络配置问题:虚拟机的网络配置可能不正确,如IP地址、子网掩码、网关、DNS设置等。这可能导致虚拟机无法访问网络,从而导致SSH连接失败。 2.防火墙问题:虚拟机或主机上的防火墙可能会阻止SSH连接。这可能是由于防火墙规则设置不正确或防火墙软件未正确配置所致。

    2024年02月09日
    浏览(40)
  • debian12版本默认SSH不让ROOT账户远程登录解决方案(重置密码)

    官方链接 D.3.7. 远程访问:安装 SSH 并设置密码 如果您可以通过控制台登录系统,可以跳过此节。如果以后可以通过网络访问系统,则需要安装 SSH 并设置访问权限。 默认禁用 root 登录密码,因此可以通过 设置密码(重置密码) 来设置访问权限,并用密码重新启用 root 登录

    2024年02月06日
    浏览(47)
  • windows ssh时出现Bad local forwarding specification的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月05日
    浏览(28)
  • ssh登录出现Permission denied, please try again可能的解决方案

    环境:ubuntu 20.04 问题描述:在已经设置免密登录后,ssh登录时(例如 ssh localhost )还需要输入密码,并且输入密码后出现下面一系列的报错: 首先使用命令 ssh localhost -v 查看登录时的日志: 从日志上看,应该还是配置的问题。 配置问题:如果是ssh配置的问题首先可以尝试这

    2024年02月09日
    浏览(45)
  • ssh -T git@github.com Connection timed out 解决方案-自测有效

    $ ssh -T git@github.com $ ssh -vT git@github.com -p 443 OpenSSH_9.5p1, OpenSSL 3.1.4 24 Oct 2023 debug1: Reading configuration data /c/Users/Administrator/.ssh/config debug1: /c/Users/Administrator/.ssh/config line 1: Applying options for github.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: Connecting to github.com [20.205.243.166] port

    2024年01月20日
    浏览(43)
  • 记录篇 - SSH无法连接服务器 - 22端口已放行,宝塔登不上等问题解决方案

    最近这两天购买了一个阿里云新加坡轻量服务器 2H 1G用来学习使用,但是购买之后,我也是折腾了半天时间。 一开始一切正常,远程连接、安装宝塔面板、然后进入宝塔、安装各种运行环境、网站部署完成后,然后就当我开心的访问了我的小网站的适合,好景不长。服务器

    2024年02月12日
    浏览(50)
  • ssh报错:no such identity: /xxx/xxx/.ssh/id_rsa: No such file or directory解决方案

    最近在使用ssh方式连接公司跳板机时报错: 之前在Win上使用是正常的,从Win上复制到Mac之后,ssh连接报这个错误。网上找了很多方法,虽然很有道理,也应该能覆盖满多错误场景了,但是很遗憾没有覆盖我本次的错误场景。 后来进行分析之后,解决了上述问题,也给大家一

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包