检查 /etc/hosts 和 /etc/resolv.conf 是否足以知道没有服务器试图将自己错误地表示为另一个服务器?

检查 /etc/hosts 和 /etc/resolv.conf 是否足以知道没有服务器试图将自己错误地表示为另一个服务器?

假设我想确保没有恶意行为者或进程试图在 Linux 上使用自己的恶意服务器来错误地表示合法 Web 服务器,并预期用户将访问外部可执行文件。

例如,添加类似 的条目12.34.56.78 legitsite.com,那么下次我访问时legitsite.com/downloads/setup.sh,我实际上会下载12.34.56.78/downloads/setup.sh,这是恶意软件。

看起来至少我必须检查/etc/hosts/etc/resolv.conf,但是还有什么我想检查的吗?我是否应该检查该ip route命令是否也有目标条目legitsite.com

答案1

如果其他方拥有 root 权限来修改名称解析,您将无能为力。这意味着他们已经可以搞乱你的所有软件了。你输了。你在你的机器上所做的任何事情都无法被那个全能的攻击者压制。

但是:对某人能够做到这一点的可能性的适当响应非常简单,并且已经部署:它是带有证书检查的 TLS。

就是这样。这里的所有都是它的。使用https。如果您不能信任网络,那么没有什么比正确的加密更有效的了,而 TLS 就是这样。

如今,设置网络服务器来支持这一点是微不足道的;使用letsencrypt.org,一旦它工作,就启用严格的主机安全。

答案2

您可以尝试使用 chattr linux 命令将文件的属性更改为不可变。

这是使用 chattr 命令的一些示例。

[root@my-server ~]# lsattr /etc/hosts
-------------e- /etc/hosts
[root@my-server ~]# chattr +i /etc/hosts
[root@my-server ~]# lsattr /etc/hosts
----i--------e- /etc/hosts
[root@my-server ~]# chattr -i /etc/hosts
[root@my-server ~]# lsattr /etc/hosts
-------------e- /etc/hosts

所以其他用户无法修改该文件。

答案3

不会。检查您自己的 /etc/hosts 和 /etc/resolv.conf 不会给您任何信息。这些是您主机上的文件,它们对不受您控制的外部主机没有影响。

攻击者可能会向您发送虚假 IP 地址,或尝试以其他方式欺骗您。

相关内容