
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 を受け取りますIKE_REMOTE_ID
。コマンドが 以外の値で終了した場合0
、クライアントは拒否されます。
技術的には、クライアント証明書をブロックする適切な方法は、CRL または OCSP を使用することです。デルタ CRL を使用する場合、このような失効はデルタ CRL で「removeFromCRL」理由 (strongSwan では現在まったくサポートされていません) によって元に戻すことができるため、「hold」理由 ( )--reason certificate-hold
がpki --signcrl
主に関係することに注意してください。ただし、ご指摘のとおり、コマンドは現在、古い CRL に基づいて新しい完全な CRL を作成するオプションpki
を使用するときに、一部の失効を省略する (つまり元に戻す) こともサポートしていません--lastcrl
。
また、現在失効しているすべての証明書を含む新しい CRL を最初から作成することもできますが、問題は、cRLNumber
発行された CRL のシリアル番号 ( ) を手動で指定することが現在不可能であることです。--lastcrl
(または--basecrl
) が使用されない限り、常に 1 になります。また、同じ (またはより低い) シリアルを使用すると、CRL は再ロード時に置き換えられません (ロードする前にすべての資格情報とキャッシュを完全にクリアしない限り、これは と、swanctl
CRL を再ロードするためだけに IKE デーモンを再起動するなど、かなり極端な手段でのみ可能です)。
OCSPの使用は選択肢の1つです。例えば、openssl ocsp
手動で作成および変更できるシンプルなインデックスファイルを提供することができます(例を参照)。私の答えはここにあります形式の説明については、 を参照してください。追加のサービスを実行する必要があることに加え、OpenSSL では、インデックスに現在有効なすべての証明書も含まれている必要があるという欠点があります。