如何保护根服务器上的 vmware esxi 主机?

如何保护根服务器上的 vmware esxi 主机?

对我来说,一台 vmware 机器通常有 2 个 lan 接口,一个连接 lan 或管理计算机,另一个连接 wan 接口以供公共访问。

所以通过在 vmware 的“公用网卡”前面设置防火墙,只允许通过“私有网卡”访问管理界面,保证了安全性。

但是,如果我在具有多个公共 IP 的普通专用根服务器上安装 vmware esxi 5.0,服务器前没有防火墙,服务器前没有任何(对我来说可访问的)路由,没有多个网络接口,我该如何确保安全性?

我找到了有关防火墙的文章: http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-and-vsphere-articles/networking/understanding-vmware-esx-server-security-profiles.html

但是端口在哪个 IP 上开放?它是否绑定到所有公共 IP?我可以将管理接口绑定到特定 IP 吗?如何将一个 IP 绑定到管理接口,将其余 IP 绑定到一个或多个虚拟机?

我考虑过在 esxi 内部创建一个 vlan,并通过路由 vm 构建一个 vpn,并且使得管理控制台只能通过来自 vpn 的 ip 访问,但是在如何将自己锁定之后,我有点摸不着头脑。

有什么提示吗?

编辑:根服务器如:server4you.com/root-server 安装了 vmware 的单个服务器,“直接”连接到互联网 -> 可直接攻击,不在安全的局域网中

编辑2:请记住,那些母语不是英语的人对“根服务器”等事物的定义可能与您不同。请对该问题进行评论,并写一些如何使问题对您更清楚的内容。

也许这种表述更好:如何使只有一张网卡并直接连接到互联网的 vmware esxi 5.0 服务器安全?

我没有保护以那种方式连接到网络的 esxi 的经验,如果我运行像 kvm 或 vserver 这样的虚拟化,这相当容易,只需使用 iptables 防火墙保护主机服务器并处理那里的路由即可。

我还没有在 Google 上找到有关我的问题的好的信息,这是一个相当特殊的问题,公司如何进行虚拟化,拥有一整套 vmware 服务器,而且它们前面通常不止一个防火墙。

因此他们根本不必在没有额外防火墙和仅单个网络接口的情况下保护单个 vmware esxi 主机。其他人可能不进行虚拟化或不关心安全性。

所以我问那些投票反对的人,这个问题真的很糟糕吗?

答案1

所以 c33s,在我自己研究了这个问题之后,我已经为你找到了答案:-)

我将针对 ESXi 4 陈述 4 个步骤(也应该适用于 5)。在 ESXi 5 上,VMware 包含一个数据包过滤器(您应该在 Google 上找到很多关于此主题的内容)。

让我们开始吧:首先您需要通过 SSH 访问您的 ESXi。以下是稍微改善根服务器上的情况的 4 个步骤:

1)删除ESXi欢迎屏幕: 请求https://你的 esxi/显示一个页面,告诉您如何开始使用 ESXi。除了您之外,没有人需要知道这一点。因此,请阅读它,然后重命名文件:

mv /usr/lib/vmware/hostd/docroot/index.html /usr/lib/vmware/hostd/docroot/index.html.bak

2)仅允许使用 auth_key 登录 ssh 为你的管理机器生成一个 SSH auth_key(我在下文中称之为“YOUR-SSH-RSA”)。通过在 ESXi 上运行此代码来检查你的设置

mkdir /.ssh
chmod 0600 -R /.ssh
echo "YOUR-SSH-RSA" >> /.ssh/authorized_keys

检查登录是否有效。如果可以,你可以将这些行放入 rc.local 中,使用

vi /etc/rc.local

这是必需的,因为 ESXi 在重新启动后会忘记这一点。要禁用密码登录,请执行以下操作:

vi /etc/inetd.conf

在以下行中添加参数 -s:

ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60
ssh stream tcp6 nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60

之后看起来应该是这样的:

ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -s -i -K60
ssh stream tcp6 nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -s -i -K60

需要重新启动(或至少重新启动 inetd)才能生效。

3)更改 SSH 默认端口

vi /etc/services

搜索

ssh             22/tcp                         # SSH Remote Login Protocol
ssh             22/udp                         # SSH Remote Login Protocol

将端口 22 更改为您喜欢的任何端口。注意与其他端口的冲突!

需要重新启动(或至少重新启动 inetd)才能生效。

4)更改路由 因为 ESXi 4 没有数据包过滤器,所以我们需要更改路由,这样它就不知道如何与每个人通信。这有点危险,因为错误的路由可能导致 ESXi 管理只能从本地控制台访问!您需要一个静态 IP 或已知网络,以便管理您的 ESXi。我们为此添加一条路由,然后删除默认路由。

esxcfg-route -a x.x.x.x/sub y.y.y.y

其中“xxxx”是您的网络或 IP。“sub”是子网掩码。“yyyy”是您的网关。

例如,我们有一个默认网关为 12.34.56.78 的 ESXi,并且只想添加一个 IP 98.76.54.21,命令是

esxcfg-route -a 98.76.54.21/32 12.34.56.78

检查你的路线是否设置正确:

esxcfg-route -l

如果是,请删除默认路线

esxcfg-route -d default y.y.y.y

当所有操作正确后,您仍应能访问 ESXi。如果没有,您必须本地登录并将所有内容改回原样。

相关内容