
Strongswan 공개 키 인증을 사용하여 특정 사용자의 액세스를 비활성화하려면 어떻게 해야 합니까?
그래서 공개 키 인증이 작동하고 있습니다. SAN은 이메일이자 ID입니다. 특정 사용자 ID(rightid)에 대한 인증을 거부하는 방법이 있습니까? 나는 사용자 액세스를 쉽게 켜고 끌 수 있기를 원하며, 비밀 파일에서 항목을 제거하기만 하면 psk 인증으로 수행할 수 있다는 것을 깨달았습니다. 인증서와 관련된 방법이 있기를 바랍니다. "보류" 이유로 인증서를 취소하고 싶지만 Strongswan의 pki는 취소 취소 기능을 지원하지 않습니다. 인증을 거부하는 트랩도 설정해 보았지만 성공하지 못했습니다. 연결이 허용되는 클라이언트 ID를 지정하는 기능이 있어야 합니다.
conn main
leftauth=pubkey
leftcert=servercert.pem
rightauth=pubkey
leftid=mydomain.com
type=tunnel
left=%any
leftsubnet=0.0.0.0/0
right=%any
rightsubnet=192.168.137.0/24
esp=aes128gcm16-sha256-modp3072
ike=aes128gcm16-sha256-modp3072
keyexchange=ikev2
ikelifetime=28800s #Time before re authentication of keys
auto=add
conn close
also=main
[email protected]
rightauth=never
auto=route
답변1
현재 단일 ID(또는 인증서/키)를 블랙리스트에 추가하는 플러그인은 없지만화이트리스트플러그인허용된 모든 ID를 화이트리스트에 추가하는 방법을 제공합니다. IKE 데몬이 실행되는 동안 화이트리스트를 관리하는 명령이 함께 제공됩니다.
보다 동적인 방식으로 유사한 작업을 수행하는 것(예: 특정 패턴과 일치하는 모든 ID를 거부하는 것)은 다음을 통해 가능합니다.외부 인증플러그인. 구성된 스크립트(또는 명령)는 클라이언트 인증이 성공한 후 호출되며 환경 변수에서 클라이언트 ID를 받습니다 IKE_REMOTE_ID
. 명령이 가 아닌 다른 명령으로 종료되면 0
클라이언트가 거부됩니다.
기술적으로 클라이언트 인증서를 차단하는 적절한 방법은 CRL 또는 OCSP를 사용하는 것입니다. 델타 CRL을 사용하는 경우 "보류" 이유( --reason certificate-hold
with pki --signcrl
)가 주로 관련됩니다. 왜냐하면 이러한 취소는 "removeFromCRL" 이유(strongSwan이 현재 전혀 지원하지 않음)를 통해 델타 CRL에서 되돌릴 수 있기 때문입니다. 그러나 지적한 대로 명령은 현재 이전 CRL을 기반으로 새 전체 CRL을 생성하는 옵션을 pki
사용할 때 일부 해지 생략(즉, 되돌리기)을 지원하지 않습니다 .--lastcrl
현재 해지된 모든 인증서를 포함하는 새 CRL을 처음부터 생성할 수 있지만 문제는 현재 cRLNumber
발급된 CRL의 일련 번호( )를 수동으로 지정할 수 없다는 것입니다. --lastcrl
(또는 )을 사용 하지 않는 한 --basecrl
항상 1이 됩니다. 그리고 동일한(또는 더 낮은) 일련 번호를 사용하면 CRL이 다시 로드될 때 교체되지 않습니다(로드하기 전에 모든 자격 증명과 캐시를 완전히 지우지 않는 한). swanctl
CRL을 다시 로드하기 위해 IKE 데몬을 다시 시작하는 것과 같은 과감한 조치를 취합니다 .
OCSP를 사용하는 것은 하나의 옵션이 될 수 있습니다. 예를 들어 openssl ocsp
수동으로 생성하고 수정할 수 있는 간단한 인덱스 파일을 제공할 수 있기 때문입니다(예:내 대답은 여기형식에 대한 설명을 참조하세요.) 추가 서비스를 실행해야 하는 것 외에도 OpenSSL에서는 인덱스에 현재 유효한 인증서가 모두 포함되어 있어야 한다는 단점이 있을 수 있습니다.