如何远程测试基于位置的防火墙规则

网络工程 防火墙 网络
2022-02-19 03:27:55

我已经管理了我可以访问的服务器。我请求了基于位置的防火墙规则(例如确保没有人可以SSH访问服务器,除非他们从特定的公共 IP 连接。

我希望能够从许多不同的 IP 进行测试。如何以经济的方式从终端进行测试?

我能想到的唯一方法(这会很昂贵而且效率不高)是在不同地区的 DO、Linode、AWS 等中创建服务器。或者购买在多个地区都有位置的 vpn 服务并在我的 Linux 机器上使用它。

PS:我不确定这是否更适合网络工程(人们现在可能知道测试网络防火墙规则)或超级用户。

1个回答

我使用 shell 脚本来启动 AWS 实例正是为了这种目的,但它们受到以下两方面的影响:

  • 启动延迟通常为 30 秒
  • 按小时收费,即使只有几生丁
  • 编辑:现在看来,Linux 实例的计费是每秒参考

如果你想每天测试一次,这还可以,但如果你想每十分钟一次,那么几个 ping 数据包的成本很高,因为你必须让它一直运行。这可能不方便。

另一种方法是使用 AWS Lambda 服务,您只需编写几行代码。这些按 100 毫秒收费,因此此类任务的成本要低得多,并且触发器的延迟也很好。

我刚刚尝试的(整个)功能是:

import socket
def lambda_handler(event, context):
    skt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    skt.sendto("lambda", ('1.2.3.4', 12345))
    return 'Hello from Lambda'

您可以构建一些东西来完成您的 ping/udp/tcp 获取,然后将系统日志消息发送到您的日志主机。

编辑:我试过了,30 行 python 非常适合测试非连接、SSH 打开响应、超时和记录到 syslog。如果你在 Stack Overflow 上提问,很高兴会发布 python;在这里肯定是无能为力的。