AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2783
Accepted
cowgod
cowgod
Asked: 2009-05-02 12:59:12 +0800 CST2009-05-02 12:59:12 +0800 CST 2009-05-02 12:59:12 +0800 CST

我如何知道我的 Linux 服务器是否已被黑客入侵?

  • 772

Linux 服务器被黑客入侵的迹象是什么?是否有任何工具可以按计划生成和通过电子邮件发送审计报告?

linux security hacking audit
  • 10 10 个回答
  • 53658 Views

10 个回答

  • Voted
  1. Best Answer
    Brent
    2009-05-02T13:11:41+08:002009-05-02T13:11:41+08:00
    1. 在某处保留关键系统文件(例如 ls、ps、netstat、md5sum)的原始副本,其中包含它们的 md5sum,并定期将它们与实时版本进行比较。Rootkit 总是会修改这些文件。如果您怀疑原件已被泄露,请使用这些副本。
    2. aide或tripwire会告诉您任何已修改的文件——假设他们的数据库没有被篡改。
    3. 配置 syslog 以将您的日志文件发送到远程日志服务器,在那里它们不能被入侵者篡改。观察这些远程日志文件是否有可疑活动
    4. 定期阅读您的日志- 使用logwatch或logcheck来综合关键信息。
    5. 了解您的服务器。了解哪些活动和日志是正常的。
    • 37
  2. user1686
    2009-05-03T17:49:38+08:002009-05-03T17:49:38+08:00

    过去给我提示的一些事情:

    • 应该空闲的系统上的高负载
    • 奇怪的段错误,例如。来自标准实用程序ls(如损坏的根工具包可能会发生这种情况)
    • /或中的隐藏目录/var/(大多数脚本小子太愚蠢或懒得掩盖他们的踪迹)
    • netstat显示不应该存在的开放端口
    • 进程列表中您通常使用不同风格的守护程序(例如bind,但您总是使用djbdns)

    此外,我发现有一个可靠的迹象表明一个盒子被破坏了:如果您对继承系统的管理员的勤奋(更新等)有不好的感觉,请密切关注它!

    • 13
  3. Oskar Duveborn
    2009-05-02T13:13:41+08:002009-05-02T13:13:41+08:00

    你没有。

    我知道,我知道 - 但这是偏执的、可悲的事实,真的 ;) 当然有很多提示,但如果系统是专门针对的 - 可能无法分辨。很高兴了解没有什么是完全安全的。但是我们需要为更安全而努力,所以我将指出所有其他答案;)

    如果您的系统遭到入侵,那么您的任何系统工具都不能被信任来揭示真相。

    • 12
  4. Whisk
    2009-05-02T13:01:40+08:002009-05-02T13:01:40+08:00

    Tripwire是一种常用工具——它会在系统文件发生更改时通知您,但显然您需要事先安装它。否则,诸如您不知道的新用户帐户、奇怪的进程和您不认识的文件或无明显原因的带宽使用增加等项目都是常见的迹象。

    其他监控系统(例如Zabbix )可以配置为在 /etc/passwd 等文件发生更改时向您发出警报。

    • 11
  5. Shai
    2011-06-18T12:39:39+08:002011-06-18T12:39:39+08:00

    有一种方法可以通过以下方式检查被黑服务器kill-

    本质上,当您运行“kill -0 $PID”时,您正在向进程标识符 $PID 发送一个 nop 信号。如果进程正在运行,kill 命令将正常退出。(FWIW,由于您传递的是 nop kill 信号,因此该过程不会发生任何事情)。如果进程没有运行,kill 命令将失败(退出状态小于零)。

    当您的服务器被黑客入侵/安装了 rootkit 时,它所做的第一件事就是告诉内核从进程表等中隐藏受影响的进程。但是它可以在内核空间中做各种很酷的事情来处理过程。所以这意味着

    a) 此检查不是广泛检查,因为编码良好/智能的 rootkit 将确保内核将回复“进程不存在”回复,从而使此检查变得多余。b) 无论哪种方式,当被黑服务器运行“坏”进程时,它的 PID 通常不会显示在 /proc 下。

    所以,如果你到现在为止,方法是杀死 -0 系统中的每个可用进程(从 1 -> /proc/sys/kernel/pid_max 的任何进程)并查看是否有进程正在运行但未报告在 /proc。

    如果某些进程确实在运行,但没有在 /proc 中报告,那么无论您怎么看,您都可能确实遇到了问题。

    这是一个实现所有这些的 bash 脚本 - https://gist.github.com/1032229。将其保存在某个文件中并执行它,如果您发现在 proc 中出现未报告的进程,您应该有一些线索可以开始挖掘。

    HTH。

    • 10
  6. Ian Purton
    2012-03-30T07:58:43+08:002012-03-30T07:58:43+08:00

    我将支持此处给出的回复并添加我自己的回复。

    find /etc /var -mtime -2
    

    如果您的任何主服务器文件在过去 2 天内发生更改,这将给您一个快速指示。

    这是一篇关于黑客检测 如何检测你的服务器是否被黑客入侵的文章。

    • 8
  7. Tom Ritter
    2009-05-02T13:40:47+08:002009-05-02T13:40:47+08:00

    从如何检测服务器上的不需要的入侵?

    • 使用 IDS

      SNORT® 是一个使用规则驱动语言的开源网络入侵预防和检测系统,它结合了签名、协议和基于异常的检查方法的优点。迄今为止,Snort 的下载量已达数百万,是全球部署最广泛的入侵检测和防御技术,并已成为业界事实上的标准。

      Snort 读取网络流量并可以查找诸如“通过笔测试驱动”之类的东西,其中有人只是对您的服务器运行整个 metasploit 扫描。在我看来,很高兴知道这些事情。

    • 使用日志...

      根据您的使用情况,您可以对其进行设置,以便您知道用户何时登录,或从一个奇怪的 IP 登录,或何时 root 登录,或何时有人尝试登录。实际上,我让服务器通过电子邮件将每条高于 Debug 的日志消息发送给我。是的,甚至通知。我当然会过滤其中的一些,但每天早上当我收到 10 封关于某些事情的电子邮件时,我就想修复它,这样它就不会再发生了。

    • 监控你的配置——我实际上将我的整个 /etc 保存在 subversion 中,这样我就可以跟踪修订。

    • 运行扫描。Lynis和Rootkit Hunter等工具可以提醒您应用程序中可能存在的安全漏洞。有些程序可以维护所有垃圾箱的哈希或哈希树,并可以提醒您更改。

    • 监控你的服务器——就像你提到的磁盘空间——如果有什么不寻常的地方,图表可以给你一个提示。我使用Cacti来监视 CPU、网络流量、磁盘空间、温度等。如果某些东西看起来很奇怪,那就是奇怪的,你应该找出奇怪的原因。

    • 5
  8. Rob
    2013-12-21T01:12:59+08:002013-12-21T01:12:59+08:00

    我只想补充一点:

    检查您的 bash 历史记录,如果它是空的并且您没有取消设置或清空它,那么很可能有人已经破坏了您的服务器。

    最后检查。要么你会看到未知的 IP,要么它看起来很空。

    然后正如接受的答案所述,系统文件经常更改,请检查修改日期。然而,他们经常篡改修改日期。

    他们经常安装在随机端口上运行的另一个版本的 ssh。这通常隐藏在一些非常奇怪的地方。请注意,它通常会被重命名为 ssh 以外的名称。所以检查 netstat(可能无法正常工作,因为他们经常替换它)并使用 iptables 来阻止任何未知端口。

    无论如何,在这种情况下,预防胜于治疗。如果您受到了损害,最好只是格式化并重新开始。几乎不可能确认您已成功清除黑客。

    请注意以下事项,以防止您的服务器受到威胁。

    1. 更改 ssh 端口
    2. 防止root无法登录
    3. 只允许某些用户
    4. 防止密码登录
    5. 使用 ssh 密钥,最好是受密码保护的密钥
    6. 在可能的情况下,将所有 ip 列入黑名单并将所需 ip 列入白名单。
    7. 安装和配置fail2ban
    8. 使用绊线检测入侵
    9. 监控使用 Nagios 或 zabbix 登录的用户数。即使您每次登录时都会收到通知,但至少您会知道其他人何时在玩。
    10. 如果可能,将您的服务器保持在 vpn 上,并且只允许通过 vpn ip 进行 ssh。保护您的 VPN。

    值得注意的是,一旦他们进入一台服务器,他们将检查您的 bash 历史记录并查找您通过 ssh 从该服务器连接到的其他服务器。然后他们将尝试连接到这些服务器。因此,如果您由于密码错误而被暴力破解,他们很可能能够连接到另一台服务器并破坏这些服务器。

    这是一个丑陋的世界,我重申预防胜于治疗。

    • 2
  9. Shai
    2011-06-18T12:57:03+08:002011-06-18T12:57:03+08:00

    在搜索了一下之后,还有这个,它可以完成我上面列出的内容,以及其他一些内容: http: //www.chkrootkit.org/和http://www.rootkit.nl/projects/rootkit_hunter.html

    • 1
  10. Cheyne
    2013-10-18T11:23:48+08:002013-10-18T11:23:48+08:00

    您应该查看 GuardRail。它可以每天扫描您的服务器,并以一种很好的视觉方式告诉您发生了什么变化。它不需要代理,并且可以通过 SSH 连接,因此您无需使用代理将您的机器和资源搞得一团糟。

    最重要的是,它最多可免费用于 5 台服务器。

    在这里查看:

    https://www.scriptrock.com/

    • 0

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve