gpt4 book ai didi

security - Elixir 分布式安全和白名单允许的节点

转载 作者:行者123 更新时间:2023-12-02 18:55:19 24 4
gpt4 key购买 nike

TL;DR

  • 如何将可以 Node.connect 到 Elixir 的节点列入白名单?
  • 还有其他安全建议吗?

设置

我已经开始尝试在(目前)两个不同的服务器上分发 Elixir。

例如,假设服务器的两个 IP 地址是:

  1. 198.51.100.0
  2. 203.0.113.0

首先,我向 iptables firewall 添加了新规则在两台服务器上,为节点开放端口 4369 ( EPMD ) 和 9000-9010 之间的 10 个端口。我还只允许来自其他服务器的确切 IP 地址的传入连接。

198.51.100.0 的示例配置:

-A INPUT -p tcp -m state --state NEW --dport 4369 -s 203.0.113.0 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 9000:9010 -s 203.0.113.0 -j ACCEPT

203.0.113.0 的示例配置:

-A INPUT -p tcp -m state --state NEW --dport 4369 -s 198.51.100.0 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 9000:9010 -s 198.51.100.0 -j ACCEPT

现在我可以在每台机器上打开 iex shell:

198.51.100.0:

$ iex --name one@198.51.100.0 --cookie secret --erl '-kernel inet_dist_listen_min 9000' --erl '-kernel inedist_listen_max 9010'

203.0.113.0:

$ iex --name two@203.0.113.0 --cookie secret --erl '-kernel inet_dist_listen_min 9000' --erl '-kernel inedist_listen_max 9010'

我可以成功从节点一连接到节点二:

iex(one@198.51.100.0)> Node.connect(:'two@203.0.113.0')
true

并列出节点二中的节点:

iex(two@203.0.113.0)> Node.list
[:"one@198.51.100.0"]

我的问题:

我读过:net_kernel.allow/1可用于将允许的连接的确切列表列入白名单。但我似乎无法让它工作:

iex(one@198.51.100.0)> :net_kernel.allow([])
:ok
iex(one@198.51.100.0)> Node.connect(:'two@203.0.113.0')
true

我希望由于我已允许列表中没有任何内容,因此不会允许任何连接。有什么建议吗?

更新:

我发现,如果我向 :net_kernel.allow 传递至少一个值,它似乎就可以工作:

iex(one@198.51.100.0)> :net_kernel.allow([:'127.0.0.0'])
:ok
iex(one@198.51.100.0)> Node.connect(:'two@203.0.113.0')
false
23:38:27.702 [error] ** Connection attempt with disallowed node :"two@203.0.113.0" **
iex(one@198.51.100.0)> :net_kernel.allow([:'two@203.0.113.0'])
:ok
iex(one@198.51.100.0)> Node.connect(:'two@203.0.113.0')
true

这就是窍门吗?

最佳答案

白名单基于 VM Cookie,~/.erlang.cookie。然后,只有授权节点才拥有良好的 cookie,才能 connect .
对于安全部分,我设置了 Tinc mesh VPN在我的服务器和笔记本电脑之间,它提供了我所需的全部安全性,同时提供了极大的灵 active 。

关于security - Elixir 分布式安全和白名单允许的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34868476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com