リモート認証ダイヤルイン ユーザー サービス (RADIUS) の信頼性と拡張性

カテゴリを表示

リモート認証ダイヤルイン ユーザー サービス (RADIUS) の信頼性と拡張性

所要時間

概要 #

半径 or リモート認証ダイヤルインユーザーサービス ユーザーとデバイスの認証、認可、アカウンティングを一元管理するネットワークプロトコルです。インターネットサービスプロバイダーや企業では、インターネット、ローカルサービス、Wi-Fiアクセスポイントを介したワイヤレスネットワークへのアクセス制御などに広く利用されています。

RADIUSプロトコルは、TCPまたはUDPをトランスポート層として使用できるクライアントサーバーアーキテクチャを使用してアプリケーション層に実装され、次のようなユーザーデータベースと通信します。 Active Directory, LDAPサービス or Linux会計システム最も人気のある RADIUS ソリューションは、FreeRadius または Microsoft NPS Radius Server です。

RADIUS メッセージング プロトコル #

プロトコル メッセージングは​​、以下に示すように、クライアント要求とサーバー応答の方式に基づいています。

1. クライアントは アクセス要求 各ユーザーまたはデバイスがサーバーポートに認証されるようにサーバーに TCP/UDP 1812 (古いバージョンのサーバーでは 1645 認証にも使用されます。
2. サーバーはポリシーに従って応答します アクセス承認 認証が許可された場合、 アクセス拒否 アクセスが許可されていない場合、または アクセスチャレンジ サーバーがアクセスを決定するために追加の情報を必要とする場合 (2 回目の検証: PIN、パスワード、証明書など)

オプションとして、クライアントとサーバーは次のような会計メッセージを交換できる。 会計リクエスト および 会計対応 一意のセッション識別子を維持するためです。

3. クライアントは 会計リクエスト ポート経由でサーバーへ TCP/UDP 1813 アカウンティングセッション管理用(古いバージョンのサーバーでは 1646 認証にも使用されます。
4. サーバーは応答します 会計対応 新しいセッションを確認するためのメッセージ。

RADIUS 環境では、ユーザー データベース管理用の追加サービスが必要となり、高可用性を考慮することが重要になります。これについては、別の特定の記事で説明します。

RADIUS 負荷分散と高可用性環境 #

RADIUSサービスがダウンすると、ユーザーがサーバーネットワークにアクセスできなくなったり、アプリケーションにログインできなくなったり、デバイスへのセッションを開始できなくなったり、業務プロセスで権限を使用するための承認が得られなくなったりするリスクが生じる可能性があります。このような状況を解決するために、この記事では以下に示す環境を構築することを目的とします。

RELIANOID RADIUSプロトコルメッセージを、異なるサイトにあるかローカルサイトにあるかを問わず、すべてのRADIUSサーバー間で共有します。以下のセクションでは、このような環境の構成、RADIUSサービスの高度なヘルスチェック、そしてこのプロトコルのセキュリティ上の課題について説明します。

RADIUS仮想サービスの設定 #

RADIUSプロトコルの性質はUDPパケットに基づいているため、信頼性の高いRADIUS環境の構成は LSLB 農場で L4xNAT レイヤー4のプロファイル、ポート 1812 および 1813、プロトコルタイプUDPおよび優先 DTA 透明性を確保し、バックエンド側でクライアントIPを取得するために(ただし NAT も完璧に動作するはずです。

サービスクライアントと RADIUS サーバー間の何らかの粘着性が必要な場合を除き、デフォルトでは永続性は必要ありません。

RADIUSをUDPではなくTCP経由で使用する場合、プロトコルタイプフィールドで変更できます。 全て 同じ仮想 IP から同時に TCP と UDP の両方を許可するためのプロトコル。

最後に、ポートを設定せずにバックエンドを設定し(クライアント接続の宛先ポートを使用するため)、接続をテストします。RADIUS仮想サービスの設定が完了したら、このサービスの高度なヘルスチェックを設定できます。

RADIUS 高度なヘルスチェック構成 #

高度なチェックが含まれています RELIANOID 名前付き チェック半径 デフォルトフォルダの下 /usr/local/zenloadbalancer/app/libexec/.

このコマンドのヘルプを一覧表示できます。

root@noid5# /usr/local/zenloadbalancer/app/libexec/check_radius --help RADIUSサーバーが接続を受け入れているかどうかをテストします。使用方法: check_radius -H host -F config_file -u username -p password [-P port] [-t timeout] [-r retries] [-e expect] [-n nas-id] [-N nas-ip-addr] オプション: -h, --help 詳細なヘルプ画面を表示します -V, --version バージョン情報を表示します --extra-opts=[section][@file] iniファイルからオプションを読み取ります。使用方法と例については、https://www.monitoring-plugins.org/doc/extra-opts.html を参照してください。 -H, --hostname=ADDRESS ホスト名、IP アドレス、または UNIX ソケット (絶対パスである必要があります) -P, --port=INTEGER ポート番号 (デフォルト: 1645) -u, --username=STRING 認証するユーザー -p, --password=STRING 認証用パスワード (セキュリティ上のリスク) -n, --nas-id=STRING NAS 識別子 -N, --nas-ip-address=STRING NAS IP アドレス -F, --filename=STRING 設定ファイル -e, --expect=STRING サーバーからの応答を期待する文字列 -r, --retries=INTEGER 失敗した接続を再試行する回数 -t, --timeout=INTEGER 接続がタイムアウトするまでの秒数 (デフォルト: 10) このプラグインは、RADIUS サーバーが接続を受け入れているかどうかをテストします。テストするサーバーは、ユーザー名とパスワードとともに、呼び出し時に指定する必要があります。設定ファイルが存在する場合もあります。設定ファイルの形式は、radiusclient ライブラリ ソースで説明されています。パスワードオプションは、プロセスリスト内のコマンドラインを注意深く監視することでパスワードを推測できる可能性があるため、重大なセキュリティ問題を引き起こします。プラグインは通常、予測可能な間隔で定期的に実行されるため、このリスクはさらに高まります。使用するパスワードが、機密性の高いシステムリソースへのアクセスを許可しないことを確認してください。

まず、以下のコマンド例を実行して、正しく動作しているかどうかを確認しましょう(RADIUSクライアントの設定パラメータは、 RELIANOID):

root@noid5# cd /usr/local/zenloadbalancer/app/libexec/ root@noid5# ./check_radius -H -P -u -p -F

テストは RELIANOID アプライアンスを特定のRADIUSサーバーに接続し、ダミーのユーザー認証と、オプションで特定のクライアントパラメータ用のクライアント設定ファイルを設定します。コマンドをテストしてみましょう。 OK サーバーから 故障 ダウンしている場合は、高度なヘルスチェックを設定できます サービス 先ほど作成した仮想サービスのセクションです。

を使用することを忘れないでください 主催者 高度なヘルスチェックを設定するときにトークンを使用する RELIANOID 下記の通りです。

check_radius -H HOST -P 1812 -u johndoe -p johnspass -F /etc/radius_client.cfg

下を参照してください サービス セクション構成。

RADIUS セキュリティ オプション #

RADIUSプロトコルは、従来、UDP経由のパケット単位の認証と整合性チェックにMD5アルゴリズムを使用してきました。しかし、これらXNUMXつのアルゴリズムはセキュリティ暗号化と保護を提供しないため、いくつかのアプローチが検討されてきました。

RADIUSの導入 IPsec or インターネットプロトコルセキュリティ 広く導入されていますが、この選択肢には、セキュリティポリシーがネットワーク層で暗黙的に規定されているため、アプリケーション層ではそのポリシーを認識できないという難点があります。このアプローチを RELIANOID まだ統合されていないため、手動での設定が必要です。

の仕様 DTLS or データグラム トランスポート層セキュリティ 暗号化を提供し、そのようなトラフィックのセキュリティ ポリシーを監視および制御できます。

もう一つの選択肢はRADIUS over TLS 信頼性と順序正しいトランスポート層の TCP 機能を提供します。

このようなアプローチでは、 IANA 公式エントリーを作成しました RadSec (RADIUSセキュリティ)UDPを使用する 2083 ポート RADIUS/TLS 実装

もう一つの選択肢は、ダイジェストと認証層を強化することです。 EAP (拡張認証プロトコル) は、リンク確立層では使用されず、接続認証フェーズでのみ使用され、MD5 の弱いダイジェストの使用を回避します。

また、 RELIANOIDIPDS モジュールを使用すると、RADIUS サービスを悪意のあるパケットやホスト、DoS 攻撃、ブルート フォース攻撃などから保護できます。

RADIUSプロキシ機能 #

複数のRADIUSサーバーが異なるサイトに配置されている場合、クライアント接続を認証、認可、アカウンティングデータを管理しているサイトに転送することが有効です。現在、 RELIANOID RADIUSプロキシ機能はサポートしていませんが、近日中にサポートされる予定です。今後の開発にご期待ください。

可用性が高く、スケーラブルなネットワーク アクセス サービスをお楽しみください。

📄 この文書をPDF形式でダウンロードする #

    EMAIL: *