防火墻設置不當招來SqlServer拒絕服務攻擊

单位有台Windows服务器专门进行SqlServer数据库每日还原和业务数据盘点分析使用,线上的生产数据库并不参与这一过程,而是每天18:00从线上服务器进行数据库全库备份、然后再在这台专用的分析服务器上进行还原,之后从还原出来的镜像数据库上进行数据的统计、分析。

从线上服务器到这台统计服务器,是通过中间服务器做文件中转的,也就是线上先将数据库备份到中间的文件服务器上,然后这台统计服务器再从中间文件服务器上拉取文件还原出镜像数据库使用。

这台统计服务器从2天前开始出现问题,起初的表现是无法顺利完成每日还原操作。

我起初以为只是偶发现象,没当回事儿。但是一连2天、多个数据账套的还原都失败,于是今天上服务器看了下日志。这一看才发现,大约2天前开始,这台服务器上遭受了穷举猜测登录的黑客攻击。有数百万次对sa的尝试猜测登录,幸好始终没有猜测到密码。(因为服务器本身禁用了远程连接,猜到也应该没什么问题)。

如此大量的尝试登录,导致服务器内存耗尽,从而引发了SqlServer拒绝服务。也就无法完成数据库还原、或基本的常规连接等操作了。

我看到日志时有些恍惚:SqlServer并没有启用远程登录,只允许本机登录,为什么还有来自外网的登录请求呢?起初我以为是SqlServer的鉴权方式:使用Windows身份验证模式,导致的问题:想当然的以为使用Windows身份验证模式,会允许通过远程桌面进行SqlServer的连接。

想着:只要禁用Windows身份验证模式,仅仅开启Sql Server身份验证模式,应该就可以解决问题了吧?

但是看过SqlServer的安全性配置发现,并不能单独关闭Windows身份验证模式,换言之,Windows身份验证模式登录SqlServer是必须开启的。

后来才发现自己的认知是错误的:SqlServer并不能通过3389端口的远程桌面进行连接,只能通过它的1433端口访问。虽然我已经禁用了SqlServer的远程连接,但这并不意味着它会关闭1433端口。1433端口仍然开着、如果外网能够访问到,就能够通过这一端口尝试登陆,虽然无法登录成功,但仍然会对SqlServer造成影响。

于是我就去检查防火墙配置,这才发现1433端口果然暴露在外。之所以一直没有发现,是因为防火墙设置里面有一条默认规则、默认打开了所有的端口!

我之前还一直以为自己对这台服务器的防火墙设置规则做的很详尽呢,其实所有的设置都没有用,因为在这所有规则之上,有一条“1/65535::(0.0.0.0/0)”的规则,允许了来自于所有IP对所有端口的访问,这台服务器一直就这样赤裸裸的暴露在外网下!

以前一直没有看到这条规则,是因为它在这个配置表的最上面,被一堆注释段落掩藏着,直到今天才突然发现。当看到这条规则时我的心率估计已经飙升到160。于是赶快将它删除,再回到服务器上观察,已经没有了外网的暴力穷举,内存也恢复了正常。

看来以后不能信任自己,对防火墙的规则配置,最好还是在生效之后,自己从外部进行一遍端口扫描,尽可能严谨的检查一遍,才更为稳妥。

每天学习一些新的知识,尽可能保持自己的学习动力。

Related Posts

买了东西不敢再乱扔包装了

小的时候无论购买什么东西,买回来之后都是暴力拆包,只留下商品,然后会将外包装、商品包装、说明书、附件等等全部丢弃。想想那时的自己,活的真潇洒、过的真痛快。哪怕是几千元的手机、电脑、游戏机,只要到了手里,无论好坏,都会在第一时间撕掉所有的贴膜、附件。 如今不敢了,从什么时候转变的呢?也记不清了,总之就是如今购买回来商品,都会小心翼翼的拆开包装,如果遇到订书钉或胶带,也会非常谨慎的拆开,并且所有的包装一律保留着。万一内部的商品有问题、不喜欢、用不惯、用不着、买后悔了……都还能给自己留下一个退换的机会。 即便商品购买时没有退换政策的商品,也同样不再乱丢乱弃,去年购买的AMD R5,我就将它的盒子保留了下来,并将自己的一颗很古老的CPU放在其中,精心的收留着。时隔一年多,突然有了一个需要用到那颗老CPU的时机,很顺利的找到并替换使用。这种“爹味生活习惯”,恰恰就是“父母的生活习惯”,估计人到中年,都会被生活磨平棱角,变得如此吧。

控制台中VIM编辑中文时字符鬼影问题的解决

这个问题困扰我好久了,也不记得是什么时候开始的,也许是自从开始使用PowerShell时就出现了这个问题?控制台下使用VIM进行中文编辑,如果当前行有中文,那么这一行的内容编辑、选中,总会在行尾甩出一些鬼影字符。 因为近几年程序写得少、偶尔遇到这个问题就会换用其他编辑器临时救急,所以也就没放在心上。今天实在忍受不了,折腾了一个晚上终于找到了原因并解决了。 在vimrc配置中加入一行 set termguicolors 即可解决: 虽然说加入这行配置之后会导致vim的颜色配置与默认配置有了一些差异,但终归还是“彩色渲染”的代码,修改前后都是“赏心悦目”的状态,因而对于使用也没有什么影响。 这行代码的作用是让vim改用真彩色进行文字渲染,否则vim默认使用的是256色对文本进行渲染。而默认使用256色彩模式时,在显示复杂的 Unicode 字符(如中文字符)时,就有可能导致显示问题——无法正确计算出字符的宽度、从而引起鬼影问题。 上面的解释听起来很牵强,色彩管理和字符宽度能有什么关联呢……但毕竟它真的能解决问题,因而也就不再纠结其中的因果联系了。 奇怪的是用了很多年vim,以前从来没有察觉这个问题,似乎是最近1、2年才出现的问题。毕竟最近很少写代码,偶尔写一写、遇到稀奇古怪的编辑器问题也都是尽量避开,有的时候犯懒甚至就用notepad临时改动几行,所以也没有去深究过。感觉可能是: 1、或者就是自从windows弃用了控制台、启用了powershell之后出现的这个问题; 2、又或者是这个问题一直存在,只不过以前我在windows下一直使用的是neovim所以没有这个问题吧; 不确定,总之,经过上述调整,现在vim又可以正常的对中文内容进行编辑操作了。

小游戏(1)第一步是先写出 Hello,World

写任何程序的第一步,都是先写出 Hello, World。原因在于,能够撰写、编译、运行出最初的一个简单的输出、或者跑通基本的窗口,意味着整个变成环境的框架已经搭建起来并且通顺了。 以当前要做的这个程序为例,我并没有 Java 代码的基础知识、对正在使用的开发环境也不了解,但是我知道无论如何,也要先令开发环境顺利的部署、搭建起来。怎么证明我的开发环境是正确部署起来的呢?就是通过 Hello, world 进行验证。 这在今天对于开发者而言已经是非常友好、简单的了。从 Android Studio 官方下载 IDE 集成开发工具,在自己的电脑上一键安装,然后运行起来,基本就完成了整个开发环境的部署。与其说是“部署”,不如说就是一键傻瓜式安装。 如果放在早些年,仅这一步也许就要花费几天的时间,需要自己将整个编译链上每一个环节都调试通顺,甚至有大量的依赖工具或库,都是需要自己根据自己的电脑和系统环境准备、调整,不断地调整才能彼此配合妥当的。 受益于“包管理器”和“自动依赖检查”等概念和工具,并且受益于开源领域大量的预编译二进制包,今天这个准备过程已经非常简便。当然这是对程序的语言和开发框架而言,如果是新兴语言或行业应用、又或者是比较小众的环境,这个过程还是会令人感到痛苦和繁琐的。 无论如何,我们这次尝试进行的只是一个使用 Java 语言进行 PApplet 应用窗体的开发,所以对于搭建它的开发环境,显然是非常简单,一步操作即可完成。 在 Android Studio 中将初始的程序项目打开,并且点击运行,很快就能够看到一个基本的窗口出现,这意味着 Hello,…

在iPhone上用電容筆塗鴉的主觀評測

平時很喜歡畫畫、塗鴉,雖然自己繪畫水平非常差,但是閑暇的時候塗一塗能夠令自己的心情十分愉悅。自從得到了新的手機,我就一直想再買一根電容筆,這樣就可以直接使用手機塗鴉,隨時隨地、享受樂趣。

大学毕业后入职的第一家公司

今天翻看相册,找到了几张拍摄于2006年4月1日的照片,勾起了无限回忆: 这里是我刚刚工作的时候“公司所在地”,当时的公司老板是一位非常有生活、有兴致的南方老板,平日喜欢约朋友到公司喝茶、聊天。 所以他将公司设立在了这么一个环境优雅、清净的小四合院中。 我每天到公司上班也很享受,毕竟在北京这座现代化的大都市中,能够有这么一个雅致的小院子,是非常舒适的。每天工作累了,可以随时站在院子里伸伸腰、动动腿。而且老板随和,他的会客茶室也是可以让我们员工进去喝茶、休息的。 也是在那个时候,我也就跟着老板学会了喝功夫茶。作为一个在北京生活了多年的“北京人”,平日习惯了喝浓艳的花茶,初识铁观音时觉得非常的新奇——喝个水还要如此繁琐、好大的仪式感! 这个小院子如今也不知道是什么人在居住、又或者是哪个公司的人在这里继续为梦想而打拼。一晃快二十年了,今天无意中翻看自己的历史相册,找到了这几张照片,重新发到自己的blog中,当是一个纪念吧。

两块Ryzen 5的CPU无法被点亮

一、攒机翻车,点亮过程中主板启动自检灯卡CPU长亮: 最近想攒一台新的台式机、以替代当前使用的电脑。恰巧手中有一块AMD Ryzen 5 4500的CPU闲置,于是想着买块新的主板将它装上。结果买回来的昂达B550-VH-W主板,却无法点亮。 毕竟手中的Ryzen 5 4500是家中闲置了很久的,这块CPU具体是好是坏并不清楚,所以无法点亮也就不好判断是谁的责任了。索性一咬牙,又买了一块全新的AMD Ryzen 5 5500的CPU,结果还是无法完成点亮过程。 两块CPU分别是Ryzen 5 4500和Ryzen 5 5500,其中又有一块是从官网渠道购买的全新盒装,恰巧两块CPU都是有问题的可能性并不大,所以我认为CPU一定是好的,无法点亮的根源应该是在其他硬件设备上。 Ryzen 3、Ryzen 5、Ryzen 7是三个AMD Ryzen的系列,其中3系是基础入门、5系是主流应用、7系是高端产品。 4500和5500是产品的规格编码,其中Ryzen 5 4500是2020年发布的基于Zen2架构的CPU;Ryzen 5 5500则是2021年发布的基于Zen3架构的CPU。 因为手中现役的主板是B450M主板、而新购买的是B550主板,两块主板一个是现在正常使用、另一个是全新购买,经过相互替换也无一能够完成设备点亮。所以主板与CPU损坏或不兼容性,也基本可以排除。…