問題を特定するために、このサイトと他のサイトでいくつかの回答を見つけようとしましたが、失敗しました。ルールはとても簡単です。 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'
答え1
デフォルトでは、ルートのみがこのソケット(およびStrongSwanによって作成された他のソケット)にアクセスできます。持つこれを変更するオプション。例えば、カロングループ存在するStrong Swan 構成ファイル構成済みグループのメンバーであるユーザーもソケットにアクセスできます。システムには、ソケットへのアクセスをブロックするいくつかのカーネルレベルのセキュリティモジュール(AppArmorなど)があります(システムログでエントリを確認し、それに応じてポリシーを調整することもできます)。
代わりに、廃止予定の ipsec/starter/Stroke を使用して切り替えることを検討できます。訪問/スウォンテル。
答え2
そのため、さらに調査を行った後、ストロークソケットが失敗するサービスという/usr/local/bin/Yubikey.sh
スクリプトで問題を発見しました。代わりに、次のように変更する必要がありました。ipsec
charon.ctl
#!/bin/sh
service strongswan restart
したがって、最近のリリースでは、ipsecコマンドの名前が次のように変更されたため、ipsecの代わりにStrongswanを使用する必要があります。強い白鳥。