Linux

連接到 ‘unix’//var/run/charon.ctl’ 失敗:連接被拒絕

  • March 19, 2018

我試圖在這個和其他試圖找出問題的網站上找到一些答案,但我的嘗試失敗了。規則很簡單:我想在我的 Yubikey 插入時建立我的 Ipsec 隧道。

  • 我的規則在文件中/etc/udev/rules.d/local.rules

腳本如下:

SUBSYSTEM=="input", ACTION=="add", ENV{ID_MODEL}=="Yubikey_4_OTP+U2F+CCID" , RUN+="/usr/local/bin/Yubikey.sh"

然後腳本/usr/local/bin/Yubikey.sh包含:

#!/bin/sh
ipsec restart 
if (ipsec status | grep none);then
    ipsec up connection
fi

這會在插入任何輸入設備時呼叫腳本,然後如果之前沒有啟動隧道,腳本應該重新啟動 ipsec 並啟動隧道。ipsec status但是,當我執行命令時出現以下錯誤,隧道不會啟動:

connecting to 'unix:///var/run/charon.ctl' failed: Connection refused
failed to connect to stroke socket 'unix"//var/run/charon.ctl'

因此,經過更多研究,我發現作為服務/usr/local/bin/Yubikey.sh呼叫的腳本中的問題導致筆劃套接字失敗。相反,我不得不將其更改為:ipsec``charon.ctl

#!/bin/sh
service strongswan restart

因此,我不得不使用 strongswan 而不是 ipsec ,因為在最近的發行版中, ipsec 命令已重命名為strongswan

預設情況下,只允許 root 訪問該套接字(以及由 strongSwan 創建的其他套接字)。有一些選項可以改變它。例如,通過strongswan.conf中的charon.group,作為配置組成員的使用者也可以訪問套接字。您的系統上可能還有一些核心級別的安全模組(例如 AppArmor)可能會阻止訪問套接字(檢查系統日誌中的條目並可能相應地調整策略)。

您可能需要考慮切換到VICI / swanctl ,而不是使用已棄用的 ipsec/starter/stroke 。

引用自:https://unix.stackexchange.com/questions/431810