문제를 파악하기 위해 이 사이트와 다른 사이트에서 몇 가지 답변을 찾으려고 노력했지만 실패했습니다. 규칙은 매우 간단합니다. 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을 사용해야 합니다.강한 백조.