这些天,我的托管(a2hosting)在托管我的 VPS 的节点时出现了问题,在此期间,我的用户注意到除了节点出现问题时发生的几次重启之外,还出现了奇怪的行为。
这一切开始于我的一些网站用户联系我,说他们在网站上看到了与平常不同的图像(完全是随机的图像,与我的网站无关),由于我不在家,我从托管控制面板关闭了服务器,担心遭到黑客攻击。
几个小时后,我的用户告诉我服务器又恢复了(尽管我没有启动它),我的用户说在清除缓存后,他们再也没有发现他们的图像有什么问题。我一读到这个消息就把它关了,更担心黑客攻击(但很困惑,因为没有更改密码)
最后,当我回到家时,我再次启动服务器并检查了日志。日志上没有可疑活动,除了我之外没有人登录服务器,没有文件(我被告知不同的文件)被更改。唯一奇怪的是:
- 我有 2 个 apache 日志文件,分别名为 20150518-access.log 和 20150517-access.log(并且我在其他日志上有一些日期为 5 月 18 日的日志条目,如上所述),这意味着我的系统暂时将 5 月 18 日作为日期(但现在它回到了 4 月并且它自己改变了)。
- 我的一些日志有这个http://mjzone.net/Files/lognull.png作为其中一次重启后的日志条目
我做了一些检查,我的系统似乎很好,除了我的之外没有其他访问权限,没有发现可疑文件(甚至没有我被告知不同的图像),我花了整个星期天检查可疑活动,但我没有发现任何可疑活动。
因此,我在 a2hosting 上开了一个票,他们说他们无法给我任何信息,但更可能是安全漏洞,而不是与节点问题相关的问题(除了重启,他们确认这是他们那边的问题),但老实说,我并不相信……虽然我能想到自动重启和临时更改的日期之间的联系,但我找不到任何与图像相关的内容(这是唯一让我想到安全问题的事情,虽然我想不出一个黑客会更改一堆随机图像和服务器日期,然后又把一切都恢复原样)。
我的问题是:
- 人们看到随机图像而不是实际图像是否有可能与服务器/节点问题而不是安全漏洞有关?
- 除了系统日志和最近更改的文件之外,我还能检查什么以确保没有发生任何奇怪的事情?
答案1
看起来像是 BGP 更新与默认主机选择¹ 的结合。我在收集数据时遇到了麻烦(因为我要付费升级网络),但我得到了以下信息:
路线
A2 Hosting 的路线正在AS55293。您已受 /22 和 /23 的保护。ASN 路径于 4 月 17 日更新,与您的 NUL 附件同一天。来自镜子(输入你的 IP,选择路由然后探测):
core1.fmt2.he.net> show ip bgp routes detail 199.195.117.35
Number of BGP Routes matching display condition : 2
S:SUPPRESSED F:FILTERED s:STALE
1 Prefix: 199.195.116.0/23, Status: BI, Age: 19d20h14m55s
NEXT_HOP: 206.223.119.132, Metric: 593,
Learned from Peer: 216.218.252.168 (6939)
LOCAL_PREF: 100, MED: 20, ORIGIN: igp, Weight: 0
AS_PATH: 12129 55293
2 Prefix: 199.195.116.0/23, Status: I, Age: 82d0h54m10s
NEXT_HOP: 206.126.236.70, Metric: 685,
Learned from Peer: 216.218.252.169 (6939)
LOCAL_PREF: 100, MED: 20, ORIGIN: igp, Weight: 0
AS_PATH: 12129 55293
Last update to IP routing table: 2d19h12m13s, <--------- Right here
1 path(s) installed: (no data was here, maybe a removal)
服务
A2 Hosting 的服务是 WordPress。当我通过地址访问您的服务器时,它会提供另一个 WP 网站,尽管我们已经习惯于思考名字,但这就是为什么这一点很重要。
通过省略您的主机名,服务器选择了另一个站点(首先找到或配置为默认站点)。浏览器不太关心名称,而是通过地址访问服务器,只提供名称,以便服务器可以从配置中选择站点。DNS 也有 PTR 来反向检查地址和名称,但您的 DNS 没有:
$ dig PTR 35.116.195.199.in-addr.arpa.
;; ANSWER SECTION:
... 43200 IN PTR 199.195.116.35.static.a2webhosting.com.
对于共享主机,这只意味着 Web 服务器必须依赖客户端提供的名称,而不是使用 DNS 进行双重检查。它不应该做的是在不确定时发送错误的网站内容(尽管许多人都侥幸逃脱了这种惩罚,因为通常最糟糕的情况是 404)。不幸的是,您的主机主要承载 WordPress,因此更有可能出现成功向错误的服务器发送错误的请求。SSL 可能会发出警告,但我不会指望这一点。
这是向你的服务器地址发出的对 google 的请求:
$ nc youraddress 80
GET / HTTP/1.1
HOST: www.google.com
.....
HTTP 1.1 200 OK
...headers, html, nothing Google yet...
<head>...<base href="http://www.google.com/" />...
<meta name="generator" content="Joomla!
- Open Source Content Management" />
<title>FillGood</title>...
这是相同的(错误)响应。如果我在您的网站上请求 WordPress 图像,但路由错误,最终使用默认设置,并匹配来自另一个网站的文件,那么就会发生奇迹。
NUL
NUL 图像中的 SIGTERM(15)表示正常关机sshd 的而不是漏洞利用,NUL 似乎是保持活动的。每秒一次,几乎正好有 5.5 分钟(您提到关闭了几个小时),尽管终端路由器发送 keepalive(NUL 或 ^@),服务似乎返回时没有中间日志。我很想忽略这些,认为它们发生得太快了,因为 Cisco 路由器在路由更改时的默认超时时间为 270 秒(这里和这里)...4.5 分钟...或者恰好是 sshd 正常关闭(21:56:59)和返回(22:01:30)之间的时间差,在一瞬间。
结论
这些事件与时间和人员和脚本的持续时间一致,而不是随机崩溃。所有这些都假设主机保持运行,DNS 不支持,默认配置,架构的流行和 SSH 单独控制,就像基于主机的监狱一样。
你提到了瓦鲁法基斯和一辆摩托车,我在新闻里看到他最近访问了欧元集团金融公司。EGF 的网站是在同一子网中他们使用/可湿性粉剂,但他们的服务器对未知主机名的响应正确。由于您有两个子网覆盖你) 大概有 500 个左右的默认站点地址需要检查,但主要问题似乎是并非每个服务器都设置了默认站点或墙。
这完全取决于他们,但应该会出现一个通用的“Wordpress 不兼容”页面,这样当我玩他们托管的国际象棋时,就不会被提供另一台服务器的鞋库。由于路由中断,共享脚本和 cookie 的可能性存在,熟悉 BGP 的人可能会在这里看到其他问题。应该像拒绝交叉共享内容一样,打破这些网站的限制。
¹ 带有假设的及时信息通常更为重要,但我的原文太过推测。抱歉发晚了。
² 对于您的时间戳变化,请尝试查找引用 ntp 或 ntpd 的日志,看看您的系统是否与意外的时间源同步。