如何在钩子中公开 ICMP 端口?

如何在钩子中公开 ICMP 端口?

我有一个关于在 AWS 云上部署 Ubuntu Juju 的问题。我使用 Bash 编写钩子。在安装钩子/脚本的末尾,我有一些行公开了我的部分 TCP 端口(80、443、5666 等)

句法:

open-port 80/tcp
open-port 443/tcp

我的问题是如何以类似的方式公开 ICMP 端口?我需要的是 ICMP ECHO 请求和 ICMP ECHO 回复。

原因是我们使用 Nagios 来监控我们的 EC2 实例。警报会立即触发,抱怨实例无法访问,因为 Nagios 依赖 ICMP 进行基本的远程主机检查。

答案1

你不能。

AWS 中的 Juju 使用 EC2 安全组。虽然可以通过 EC2 API 或控制台使安全组允许 ICMP,但 Juju 代码中没有任何钩子可以做到这一点。唯一存在的钩子是 TCP 和 UDP。

如果您有权访问 EC2 控制台,您可以在那里找到相关的安全组并允许 ICMP。

或者,如果您已为 ec2-api-tools 配置了凭证,则可以使用以下命令:

ec2-authorize <group> -P icmp -t -1:-1 -s 0.0.0.0/0

在 Juju错误 833064他们提到有意切换到机器级防火墙(实例上的 iptables),而不是继续局限于平台的防火墙功能和 API。

相关内容