Erlang 的分布通訊安全策略

2021-08-22 07:41:52 字數 1757 閱讀 4311

erlang的分布式通訊安全策略,可以歸結為 all or none。要不擁有全部的許可權,要不就完全沒有。

它的節點安全設定,是通過乙個magic cookie來實現的。這個檔案預設放到

$home/.erlang.cookie ,檔案內容是字串。

當啟用分布通訊的時候,這個magic cookie就很重要了。如果在命令列裡面帶上 -setcookie ,則在當前節點使用這個cookie值,否則會使用 $home/.erlang.cookie

比如現在有兩台機,192.168.0.2 & 192.168.0.3,分別叫做 foo 和 bar

在 foo 輸入

[quote]erl -name [email protected] -setcookie foofoo[/quote]

輸出[quote]erlang (beam) emulator version 5.5.2 [source] [async-threads:0] [hipe] [kernel-poll:false]

eshell v5.5.2 (abort with ^g)

([email protected])1> [/quote]

在 bar 輸入

[quote]erl -name [email protected] -setcookie barbar[/quote]

[quote]net_adm:ping('[email protected]').[/quote]

由於兩個節點的cookie不一致,因此無法直接通訊,bar輸出

[quote]pang[/quote]

而 foo 會輸出警告

[quote]=error report==== 28-mar-2007::18:00:00 ===

** connection attempt from disallowed node '[email protected]' ** [/quote]

要使得bar能夠跟foo通訊,可以使用

[quote]erl -name [email protected] -setcookie foofoo[/quote]

啟動shell,或者在shell裡面輸入

[quote]erlang:set_cookie('[email protected]', 'foofoo').[/quote]

這時候就可以了

[quote]([email protected])2> net_adm:ping('[email protected]').

pong[/quote]

而且節點間會建立了連線

[quote]([email protected])3> nodes().

['[email protected]'][/quote]

要注意,之所以all or none裡面的「all」,是因為互相連線上的節點可以擁有全部的許可權,比如

[quote]([email protected])4> rpc:call('[email protected]', os, cmd, ['ls']).

"bin\nchangelog\nerlang\nerlang.ico\nlib\nstart.sh\n"[/quote]

如果不幸你是用root啟動,太好了,通過rpc就可以擁有全部的操作許可權。。。。

因此,使用分布式通訊,特別是有客戶端節點部署在普通使用者機上的系統,要非常留意許可權問題。更好的方法是用socket進行通訊,將請求封裝為乙個 tuple,比如 ,然後用 term_to_binary 傳送過去,只要兩邊都設定好 這樣的引數,接收這個 tuple 是很方便的。

網上有人說,joe的新書裡面會對安全問題進行詳細的介紹。

MySQL安全策略

資料是企業核心資產,資料對企業而言是最重要的工作之一。稍有不慎,極有可能發生資料無意洩露,甚至被黑客惡意竊取的風險。每年業界都會傳出幾起大事件,某知名或不知名的公司被脫褲 拖庫的諧音,意思是整個資料庫被黑客盜取 之類的。從資料安全上也可以分為外網安全及內部操作安全,下面分別討論一下。內部操作安全策略...

SSH安全策略

ssh安全策略 ss配置基本安全策略 調整sshd服務配置,並過載服務 root vim etc ssh sshd config protocol 2 去掉ssh協議v1 permitrootlogin no 禁止root使用者登入 permitemptypasswords no 禁止密碼為空的使用...

無線安全策略

安全認證是一整套安全策略認證機制,它分為兩個部分,通常安全策略是由鏈路認證是和接入認證配合使用的。需要明確的是,鏈路認證和接入認證是兩個不同的概念,有以下圖 從表中可以看出,安全策略可以分為wep wpa wpa2和wapi幾種,這幾種安全策略對應的鏈路認證其實只有open和shared key a...