私はこの問題を見つけるためにこれと他のサイトでいくつかの答えを見つけようとしましたが、私の試みは失敗しました。ルールは非常に簡単です。ユビキーが接続されているときに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'
デフォルトでは、rootだけがそのソケット(およびstrongSwanによって作成された他のソケット)にアクセスできます。 それを変更するオプション があります。たとえば、charon.groupin strongswan.conf を使用すると、構成されたグループのメンバーであるユーザーも、ソケット。また、システムにカーネルレベルのセキュリティモジュール(AppArmorなど)が存在し、ソケットへのアクセスを妨げる可能性があります(システムログでエントリを確認し、それに応じてポリシーを調整します)。
非推奨のipsec/starter/strokeを使用する代わりに、 [〜#〜] vici [〜#〜] / swanctl への切り替えを検討することをお勧めします。