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 / 问题 / 49966
In Process
richardtallent
richardtallent
Asked: 2009-08-05 11:07:08 +0800 CST2009-08-05 11:07:08 +0800 CST 2009-08-05 11:07:08 +0800 CST

端口 1433 上的 MSSQL 2005 从受感染的服务器获取 DOS

  • 772

我在数据中心的防火墙外托管了一台 SQL Server 2005 服务器。它在补丁等方面是完全最新的。

有一些旧的 MSSQL 蠕虫(Slammer?)仍然感染全球数千台服务器,它们会寻找要感染的服务器。当他们找到服务器时,他们开始进行数十次连接尝试,这使 SQL Server 陷入瘫痪,即使感染尝试不成功。

在过去 5 年左右的时间里,这种情况一直在发生(平均大约每几个月一次),我刚刚使用本地安全策略阻止了每个受感染的 IP 地址。

但这开始变老了……

是否有配置选项,可选的修补程序,甚至会阻止它监听这些连接尝试?

我已经考虑过的三个解决方案:

  • 除了来自 IP 的“白名单”之外,阻止1433 上的所有传入连接不是一种选择。我在路上、在家等时需要访问权限。
  • 在 WAN 上阻止 1433,然后使用 VPN 访问它不是一种选择。处理此类事情会比偶尔阻止流氓服务器更令人头疼。
  • 从端口 1433 更改为其他端口不是一种选择——它需要我与 IT 地牢打交道才能从办公室获得另一个出站端口异常,我很幸运能够说服他们允许 1433 出站。

对提出的问题的回答:

  • 我们的预算为零。我正在寻找一种解决方案来修复 MSSQL 明显易受这些感染尝试置于 DOS 状态的漏洞。如果微软的回答是阻止端口,我不认为这是一个解决方案。
  • 我意识到大多数人宁愿将服务器的软肋隐藏在防火墙后面,也不愿真正加固它。
  • 我不在“Windows 域”上——我连接数据库相关任务的一半时间来自 OS X 机器,无论是在家还是在路上。
  • 在现场使用另一个盒子作为防火墙/入侵检测将使我的托管费用翻倍。不实用。
  • 请相信我 w/r/t VPN ......这在我的情况下是不切实际的。

如果没有可接受的解决方案,我将接受现状。

sql-server port denial-of-service
  • 5 5 个回答
  • 3458 Views

5 个回答

  • Voted
  1. mrdenny
    2009-08-05T13:40:47+08:002009-08-05T13:40:47+08:00

    您基本上已经设置了最坏的情况,并且显然决心坚持下去。

    正如您所发现的,将服务器从 Internet 上公开访问只是自找麻烦。正确的解决方案是设置 VPN 并使用它。我很好奇你为什么不想。它在连接到服务器的过程中增加了一个步骤,并为环境提供了主要级别的安全性,因为人们无法直接访问您的 SQL Server。

    虽然从公共互联网简单地访问您的服务器要容易得多,但仅仅为自己省去 VPN 接入的步骤就更加危险了。

    谁能说另一个让 SQL Slammer 破坏整个网络的 SQL Server 的 bug 不会再次发生,因为您的 SQL Server 处于危险之中。

    在回答您的问题时,没有办法告诉 SQL Server 忽略这些连接请求,因为它们是合法的连接请求。

    • 5
  2. Kevin Kuphal
    2009-08-05T11:16:57+08:002009-08-05T11:16:57+08:00

    由于您已经消除了问题中可能的“最佳”解决方案,我可以提出的一个建议是在服务器前面安装一个基于 Linux 的防火墙,并使用某种方法将这些故障记录到 fail2ban 可以接收它们的地方然后在防火墙中阻止它们。这将基本上自动化您现在手动执行的过程。我不确定您如何让 SQL 服务器记录这些故障,以便 fail2ban 可以使用它们。

    另一种选择是查看像Snort这样可以检测到攻击并进行处理的系统。

    • 2
  3. Oskar Duveborn
    2009-08-05T11:31:43+08:002009-08-05T11:31:43+08:00

    服务器有什么用?我想你连接到它是为了什么,管理它还是使用它?其他服务器和/或用户是否也连接到它,它们位于何处以及如何处理它?

    一般来说,永远不要像这样将不受保护的应用程序服务器放在互联网上。

    正如 Kevin 所说,在最坏的情况下,在它前面加上一些智能的东西——比如 Microsoft ISA 或 TMG,因为它一开始就是一个 Microsoft 应用程序。但是任何可以自动检测和处理攻击的东西都可以......

    ...否则 - 建立标准的加密链接绝对是最好的方法。您应该在 SQL Server 和您的内部网络之间建立一个点对点隧道——我不明白如何以正确的方式进行操作会增加任何麻烦。要在旅途中获得远程访问,您可以使用最适合您的任何 VPN 连接到您的网络,然后通过隧道。所有操作系统平台都内置了这些东西。

    如果你真的需要让它站在互联网的中间,但只需要连接到它,至少设置 ipsec 让它只接受来自特定 Windows 域中特定机器的流量。

    • 1
  4. David Spillett
    2009-08-05T14:21:10+08:002009-08-05T14:21:10+08:00

    您说添加额外的威胁防护服务会增加您的托管成本,但并非必须如此。如果它有足够的 umpf 并且不会使用任何额外的机架空间,您可以在同一台机器上运行这些服务。您甚至可以在虚拟机中运行这些服务,同时从连接输入的用户(和僵尸)的角度来看,它们似乎仍然位于主操作系统之前 - 将 SQL 仅用于本地职责并从公共接口传递端口 1433(s ) 到入侵检测器(是主主机或虚拟机中的服务),并让它在它认为合适的时候将连接传递到主服务。

    需要多少个地址连接到您的服务器,它们的动态程度如何?维护一个while列表会不会比只使用黑名单更有效?列举好的比列举坏的要实用得多。客户端一从两个具有固定地址的位置连接?,特别允许这些地址。客户端 2 从分发动态地址的 ISP 连接?允许他们通过 ISP 的 IP 池并让某种自动黑名单(fail2ban 等)尝试捕获也在该范围内的坏主机。

    即使您在“在路上”时需要访问,您也不需要从那里的每个IP 地址访问。如果只有您(您没有说明您的用户群的规模和性质)需要公开连接,那么某种端口敲门解决方案会起作用吗?虽然一旦你开始朝那个方向谈论一个合适的 VPN,它可能同样容易设置。

    这两个选项显然都增加了额外的复杂性,所以你必须权衡危险来决定像它们这样的东西是否值得。但是 IMO 危险非常高 - 下一个零日漏洞可能会在新闻发布之前袭击你,所以你没有预警,只需要依靠你的备份和 MS 非常快速地发布一个修补程序 - 所以什么都不做会在我的书中不是一个可行的解决方案。我知道你不想听到它,但我是在这种情况下会高呼“VPN,VPN,VPN”的人之一......

    • 1
  5. Steve Evans
    2009-08-05T18:18:27+08:002009-08-05T18:18:27+08:00

    丹尼是对的。. . 但是,如果您决心像这样尝试设置 IPSEC,并且只允许 TCP/1433 上的 IPSEC 加密连接。

    • 1

相关问题

  • sql server 连接字符串上的网络数据包大小以提高吞吐量

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • SQL 洗衣清单

  • OPENROWSET、二进制文件、varchars 和 varbinaries

  • 聚集索引与非聚集索引?

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