Linux
連接到 ‘unix’//var/run/charon.ctl’ 失敗:連接被拒絕
我試圖在這個和其他試圖找出問題的網站上找到一些答案,但我的嘗試失敗了。規則很簡單:我想在我的 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)可能會阻止訪問套接字(檢查系統日誌中的條目並可能相應地調整策略)。