小编Sco*_*rth的帖子

Linux 中同一子网上的两个网络接口和两个 IP 地址

我最近遇到了一种情况,我需要将同一子网上的两个 IP 地址分配给一台 Linux 主机,以便我们可以运行两个 SSL/TLS 站点。我的第一种方法是使用 IP 别名,例如使用 eth0:0、eth0:1 等,但我们的网络管理员有一些相当严格的安全设置,从而粉碎了这个想法:

  1. 它们使用 DHCP 侦听,通常不允许使用静态 IP 地址。静态寻址是通过使用静态 DHCP 条目来完成的,因此相同的 MAC 地址总是获得相同的 IP 分配。如果您提出要求并且有理由禁用此功能,则可以为每个交换机端口禁用此功能(谢天谢地,我与网络人员的关系很好,这并不难)。
  2. 由于在交换机端口上禁用了 DHCP 侦听,他们必须在交换机上设置一条规则,允许 MAC 地址 X 具有 IP 地址 Y。不幸的是,这也有副作用,即 MAC 地址 X 仅允许具有IP 地址 Y。IP 别名要求为 MAC 地址 X 分配两个 IP 地址,因此这不起作用。

在交换机配置上可能有解决这些问题的方法,但为了与网络管理员保持良好的关系,我试图找到另一种方法。拥有两个网络接口似乎是下一个合乎逻辑的步骤。幸运的是,这个 Linux 系统是一个虚拟机,所以我能够轻松添加第二个网络接口(无需重新启动,我可能会添加 - 非常酷)。几次击键后,我启动并运行了两个网络接口,并且都从 DHCP 中提取了 IP 地址。

但问题来了:网络管理员可以(在交换机上)看到两个接口的 ARP 条目,但只有我提出的第一个网络接口会响应 ping 或任何类型的 TCP 或 UDP 流量。

经过大量的挖掘和戳,这就是我想出的。它似乎有效,但对于看起来应该很简单的事情来说,它似乎也需要做很多工作。有什么替代想法吗?


步骤 1:在所有接口上启用 ARP 过滤:

# sysctl -w net.ipv4.conf.all.arp_filter=1
# echo "net.ipv4.conf.all.arp_filter = 1" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

来自 …

linux routing

22
推荐指数
1
解决办法
11万
查看次数

将 OpenSSH 配置为首选公钥身份验证,回退到空密码身份验证

我想使用空密码为服务帐户(我们称之为“serviceacct”)配置 OpenSSH 6.2p2,它执行以下操作:

  1. 先尝试公钥认证;如果成功,则运行authorized_keys 文件中指定的强制命令。
  2. 回退到空密码身份验证并运行在其他地方指定的强制命令。

本质上,这将为已知用户提供一种行为,而为匿名用户提供另一种行为。

在理想的世界中, sshd_config 中的这些设置会做我想要的:

PubkeyAuthentication yes
PasswordAuthentication yes
Match User serviceacct
  PermitEmptyPasswords yes
  ForceCommand /my/program
Run Code Online (Sandbox Code Playgroud)

但我遇到了几个问题:

  1. ForceCommand /my/program 覆盖authorized_keys 文件中设置的强制命令。
  2. 使用空密码似乎优先于公钥身份验证。

除了修改OpenSSH服务器之外,有没有办法解决这两个问题?我能想到的一个明显的解决方法是只使用两个服务帐户 - 一个用于仅使用公钥身份验证的已知用户,另一个用于仅使用空密码身份验证的匿名用户。如果可能,我试图避免拥有两个用户帐户。

编辑 - 为什么我喜欢这种行为

我正在构建一个托管各种版本控制系统存储库(Subversion、Git 和 Mercurial)的服务。想想 GitHub 或 Bitbucket,但在本地托管(这是关键,因为我们的一些工作不能离开我们的网站)。可以说,这些版本控制系统通用的最简单的访问方法是 SSH。

每个存储库都有针对已知和匿名用户的可配置访问规则。我希望能够为任何版本控制系统使用相同的 URL 来支持已知和匿名用户。由于托管存储库的用户是 URL(例如ssh://user@host/path)的一部分,因此拥有两个不同的用户 - 一个用于已知用户,另一个用于匿名用户 - 将需要两个不同的 URL。

我应该澄清一个技术问题:我实际上是AuthorizedKeysCommand在 sshd_config 中使用指令,它指示 sshd 使用外部程序的输出而不是读取 ~/.ssh/authorized_keys 文件。

ssh public-key

6
推荐指数
1
解决办法
1624
查看次数

VMware ESXi 4.1:无法更改主机名

我在服务器上运行免费的 ESXi 4.1 并使用免费的 vSphere Client 访问服务器。我想将主机名更改为localhost.$DOMAIN其他名称,但是当我转到配置 -> DNS 和路由 -> 属性时,名称和域框是灰色的,我无法编辑它们。我该怎么做才能更改主机名?

vmware-esxi vmware-vsphere

2
推荐指数
1
解决办法
5441
查看次数

标签 统计

linux ×1

public-key ×1

routing ×1

ssh ×1

vmware-esxi ×1

vmware-vsphere ×1