クラスター構成でのコンチネンタルTLS VPN実装の経験

こんにちは、Habr! セキュリティコード会社のContinent TLS VPN製品を導入するという課題に直面しました。 この記事では、この製品の実装における経験を共有します。



はじめに



TLSは、インターネット上のノード間で安全なデータ転送を提供する暗号化プロトコルです。 ここまたはここで見つけることができます。



主要なTLSタスク:



  1. 機密性を確保します。つまり、送信された情報の漏洩に対する保護を実装します。
  2. 置換の検出を提供します。つまり、送信された情報の完全性の保存を実装します。
  3. ノードの認証を提供します。つまり、メッセージソースを認証するメカニズムを提供します。


このプロトコルは、Webブラウザ、電子メール、インスタントメッセージング、IPテレフォニー(VoIP)など、インターネットで動作するアプリケーションで広く使用されています。



挑戦する



この場合、GOST暗号化によって保護されたWebリソースへのアクセスを提供する必要がありました。



要件:





解決策



以下は、コンポーネントの図と説明です。







この問題を解決するために、上記のすべての条件を満たす「セキュリティコード」コンチネンタルTLS VPN製品が選択されました。



設計時には、TLSプロトコルを使用してGOSTに従って暗号化を実行する唯一の認定PACであったことに注意してください。 将来的には、InfoTexからViPNet TLS PAK証明書を受け取る予定です。



システムの主な要素:





アイテム説明



SKZI「Continent TLS VPN Client」-TLSクライアントは、TLSサーバーと連携して機能するリモートユーザーのコンピューターにインストールされるソフトウェアです。 TLSクライアントは、一般的なデータ伝送ネットワークの通信チャネルを介した企業ネットワークのWebリソースへのリモートユーザーの安全なアクセスの実装を目的としています。



NetScalerは、データセンターまたはクラウドからの従来のコンテナーおよびマイクロサービスアプリケーションに柔軟なサービス配信を提供するアプリケーション配信コントローラーです。 CitrixベースのNetscalerバランサーは、TLSサーバーのクラスター間のHTTPSセッションにまたがります。 WEBサーバーからの応答もバランサーによって収集されます。



CPSI「Continent TLS VPN Server」-サーバーは、リモートユーザーが保護されたリソースに安全にアクセスできるように設計されています。



設定手順



  1. TLSサーバーを初期化し、クラスターを構成し、TLSサーバーの証明書要求を作成します(ルートCA証明書、サーバー証明書、リモートサーバー管理用証明書、管理者証明書、CRL)。
  2. TLSサーバーの初期セットアップ、証明書のインポート。
  3. TLS VPN Clientを使用して、リモートクライアントの保護されたリソースへの接続を確認します。


初期化



TLSサーバーの起動時に最初の問題が発生しました。 「コントローラーが見つかりません」というメッセージが表示されました。 セキュリティコード会社の専門家とともに、かなり標準的ではない問題が特定されました。 PAKは、データセンターでBenQモニターを使用することを拒否し、他のユーザーと問題なく動作することが判明しました。



初期設定は簡単で、主にデバイスの名前だけでなく、IPアドレスとゲートウェイの決定から構成されます。 さらに、マスターキーの作成、エクスポート/インポート。



プロジェクトの顧客は2つのTLSサーバーを使用しました。 両方のTLSサーバーがアクティブ/アクティブでなければなりません。



マスターキーは1つのサーバーで作成され、他のサーバーにインポートされます。 マスターキー(クラスターキー)は、次の問題を解決するように設計されています。





マスターキーをエクスポートする際、TLSサーバーはTranscend 3.0 4GBから1つのUSBフラッシュドライブのみを受け入れました。 残念ながら、セキュリティコードが付属しているものも含め、フラッシュドライブは登場していません。



証明書のインポート



次に、Webフェイスを介してTLSサーバーに接続し、保護されたリソースを決定し、サーバーの証明書(ルートCA証明書、サーバー証明書、リモートサーバー管理用証明書、管理者証明書、CRL)をインストールする必要があります。 これらの証明書はすべて、1つのCAによって発行される必要があります。 Web経由の最初の接続では、「CSPセキュリティコード」ではなく、CryptoPro CSPを使用する必要があります。 証明書のその後の変更では、最初にCAルート証明書を削除してから、他の証明書を変更することをお勧めします。



すぐに戦闘証明書を作成できないため、テストCA Cryptoproで作成された証明書でTLSサーバーのクラスターの操作性を確認することにしました。



TLSサーバーでは、ユーザー認証を無効にすることができます。 この場合、TLSクライアントとインストールされた証明書(ルート、サーバー証明書、CRL)があれば、セキュアなチャネルが作成されます。 仕事には個人証明書は必要ありません。



接続確認



最初は、セキュリティコードのTLSクライアントの認定バージョンを使用して、保護されたリソースを介して保護されたリソースに接続する際に問題が発生しました。 セキュリティコードからTLSクライアント2.0を使用して保護されたリソースに接続することが判明しましたが、このバージョンはまだ認証段階です。 問題は、TLSのサーバーがファームウェアのリリースバージョンでこのルールを正しく実行しなかったため、保護されたリソースのリダイレクトが間違っていたために通過しませんでした。 この問題を解決するには、両方のTLSサーバーを再フラッシュし、作成されたバックアップを上げる必要がありました。



点滅手順は次のとおりです。





TLSサーバーでデバッグモードに入るには、F2キーを押します。

バージョン1.2の場合、ファイル/ usr / share / tls / webmgr / templates / websrv / nginx / base

行proxy_redirectを削除して、チェックサムを再計算します。



操作が完了した後、セキュリティコードから認定されたTLSクライアントが起動され、顧客はシステムでの作業を主張しました。 しかし、ここに秘trickがあります。それはChromeブラウザーでは機能しませんでした。この作業は、単に顧客に必要なだけでした。 セキュリティコードのサポートに関連して多くのテストが行​​われた結果、すべてが認定バージョン(1.2.1068)よりも少し新しいバージョン(1.2.1073)で動作しました。



ところで、セキュリティコードからTLSクライアントをセットアップする際の落とし穴の1つ(バージョン2.0を除く)-仮想マシンでは機能しません。 テスト中、仮想マシンが頻繁に使用され、診断プロセスがさらに複雑になりました。



結論



最後にまとめたいと思います。 この製品は、セットアップとデプロイが簡単です。 開発者が取り組むべきものがまだあります。これはサーバーとクライアントの両方に当てはまります。 しかし、一般的に、製品は動作しており、クラスター構成で動作します。 システムは現在、障害なく動作し、負荷を保持しています。 弊社のフルコーンが、Continent TLSの迅速かつ効率的な展開に役立つことを願っています。



この記事はイリヤ・プラトノフが作成しました。



All Articles