34.3. ネットワーククライアントを安全に認証するための FreeRADIUS の設定 (EAP 使用)


FreeRADIUS は、Extensible Authentication Protocol (EAP) のさまざまな方式をサポートしています。しかし、サポートされるセキュアな状況では、EAP-TTLS (Tunneled Transport Layer Security) を使用してください。

EAP-TTLS では、クライアントが、トンネルを設定するための外部認証プロトコルとしてセキュアな TLS 接続を使用します。内部認証では、LDAP を使用して Identity Management に対して認証を行います。EAP-TTLS を使用するには、TLS サーバー証明書が必要です。

注記

デフォルトの FreeRADIUS 設定ファイルはドキュメントとして機能し、すべてのパラメーターとディレクティブを記述します。特定の機能を無効にする場合は、設定ファイルの対応する部分を削除するのではなく、コメントアウトしてください。これにより、設定ファイルと含まれているドキュメントの構造を保持できます。

前提条件

  • freeradius および freeradius-ldap パッケージがインストールされている。
  • /etc/raddb/ ディレクトリー内の設定ファイルが変更されておらず、freeradius パッケージによって提供されるものである。
  • ホストが Red Hat Enterprise Linux Identity Management (IdM) ドメインに登録されている。

手順

  1. 秘密鍵を作成し、IdM から証明書を要求します。

    Copy to Clipboard Toggle word wrap
    # ipa-getcert request -w -k /etc/pki/tls/private/radius.key -f /etc/pki/tls/certs/radius.pem -o "root:radiusd" -m 640 -O "root:radiusd" -M 640 -T caIPAserviceCert -C 'systemctl restart radiusd.service' -N freeradius.idm.example.com -D freeradius.idm.example.com -K radius/freeradius.idm.example.com

    certmonger サービスが、秘密鍵を /etc/pki/tls/private/radius.key ファイルに保存し、証明書を /etc/pki/tls/certs/radius.pem ファイルに保存して、セキュアな権限を設定します。さらに、certmonger は証明書を監視し、有効期限が切れる前に更新し、証明書の更新後に radiusd サービスを再起動します。

  2. CA が証明書を正常に発行したことを確認します。

    Copy to Clipboard Toggle word wrap
    # ipa-getcert list -f /etc/pki/tls/certs/radius.pem
    ...
    Number of certificates and requests being tracked: 1.
    Request ID '20240918142211':
            status: MONITORING
            stuck: no
            key pair storage: type=FILE,location='/etc/pki/tls/private/radius.key'
            certificate: type=FILE,location='/etc/pki/tls/certs/radius.crt'
            ...
  3. Diffie-Hellman (DH) パラメーターを使用して /etc/raddb/certs/dh ファイルを作成します。たとえば、2048 ビットの素数を持つ DH ファイルを作成するには、次のように実行します。

    Copy to Clipboard Toggle word wrap
    # openssl dhparam -out /etc/raddb/certs/dh 2048

    セキュリティー上の理由から、素数が 2048 ビット未満の DH ファイルは使用しないでください。ビット数によっては、ファイルの作成に数分かかる場合があります。

  4. /etc/raddb/mods-available/eap ファイルを編集します。

    1. tls-config tls-common ディレクティブで TLS 関連の設定を指定します。

      Copy to Clipboard Toggle word wrap
      eap {
          ...
          tls-config tls-common {
              ...
      	private_key_file = /etc/pki/tls/private/radius.key
      	certificate_file = /etc/pki/tls/certs/radius.pem
      	ca_file = /etc/ipa/ca.crt
              ...
          }
      }
    2. eap ディレクティブの default_eap_type パラメーターを ttls に設定します。

      Copy to Clipboard Toggle word wrap
      eap {
          ...
          default_eap_type = ttls
          ...
      }
    3. 安全でない EAP-MD5 認証方式を無効にするには、md5 ディレクティブをコメントアウトします。

      Copy to Clipboard Toggle word wrap
      eap {
          ...
          # md5 {
          # }
          ...
      }

      デフォルトの設定ファイルでは、他の安全でない EAP 認証方法がデフォルトでコメントアウトされていることに注意してください。

  5. /etc/raddb/sites-available/default ファイルを編集し、eap 以外のすべての認証方法をコメントアウトします。

    Copy to Clipboard Toggle word wrap
    authenticate {
        ...
        # Auth-Type PAP {
        #     pap
        # }
    
        # Auth-Type CHAP {
        #     chap
        # }
    
        # Auth-Type MS-CHAP {
        #     mschap
        # }
    
        # mschap
    
        # digest
        ...
    }

    これにより、外部認証で EAP のみが有効になり、プレーンテキスト認証方法が無効になります。

  6. /etc/raddb/sites-available/inner-tunnel ファイルを編集し、次の変更を加えます。

    1. -ldap エントリーをコメントアウトし、ldap モジュール設定を authorize ディレクティブに追加します。

      Copy to Clipboard Toggle word wrap
      authorize {
          ...
      
          #-ldap
          ldap
          if ((ok || updated) && User-Password) {
              update {
                  control:Auth-Type := ldap
              }
          }
      
          ...
      }
    2. authenticate ディレクティブ内の LDAP 認証タイプのコメントを解除します。

      Copy to Clipboard Toggle word wrap
      authenticate {
          Auth-Type LDAP {
              ldap
          }
      }
  7. ldap モジュールを有効にします。

    Copy to Clipboard Toggle word wrap
    # ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
  8. /etc/raddb/mods-available/ldap ファイルを編集し、次の変更を加えます。

    1. ldap ディレクティブで、IdM LDAP サーバーの URL とベース識別名 (DN) を設定します。

      Copy to Clipboard Toggle word wrap
      ldap {
          ...
          server = 'ldaps://idm_server.idm.example.com'
          base_dn = 'cn=users,cn=accounts,dc=idm,dc=example,dc=com'
          ...
      }

      FreeRADIUS ホストと IdM サーバー間で TLS 暗号化接続を使用するには、サーバー URL に ldaps プロトコルを指定します。

    2. ldap ディレクティブで、IdM LDAP サーバーの TLS 証明書検証を有効にします。

      Copy to Clipboard Toggle word wrap
      tls {
          ...
              require_cert = 'demand'
          ...
      }
  9. /etc/raddb/clients.conf ファイルを編集します。

    1. localhost および localhost_ipv6 クライアントディレクティブでセキュアなパスワードを設定します。

      Copy to Clipboard Toggle word wrap
      client localhost {
          ipaddr = 127.0.0.1
          ...
          secret = localhost_client_password
          ...
      }
      
      client localhost_ipv6 {
          ipv6addr = ::1
          secret = localhost_client_password
      }
    2. ネットワークオーセンティケーターのクライアントディレクティブを追加します。

      Copy to Clipboard Toggle word wrap
      client hostapd.example.org {
          ipaddr = 192.0.2.2/32
          secret = hostapd_client_password
      }
    3. オプション: 他のホストも FreeRADIUS サービスにアクセスできるようにするには、それらのホストにもクライアントディレクティブを追加します。以下に例を示します。

      Copy to Clipboard Toggle word wrap
      client <hostname_or_description> {
          ipaddr = <IP_address_or_range>
          secret = <client_password>
      }

      ipaddr パラメーターは IPv4 および IPv6 アドレスを受け入れ、オプションのクラスレスドメイン間ルーティング (CIDR) 表記を使用して範囲を指定できます。ただし、このパラメーターに設定できる値は 1 つだけです。たとえば、IPv4 アドレスと IPv6 アドレスの両方へのアクセスを許可するには、2 つのクライアントディレクティブを追加する必要があります。

      ホスト名や IP 範囲が使用される場所を説明する単語など、クライアントディレクティブのわかりやすい名前を使用します。

  10. 設定ファイルを確認します。

    Copy to Clipboard Toggle word wrap
    # radiusd -XC
    ...
    Configuration appears to be OK
  11. firewalld サービスで RADIUS ポートを開きます。

    Copy to Clipboard Toggle word wrap
    # firewall-cmd --permanent --add-service=radius
    # firewall-cmd --reload
  12. radiusd サービスを有効にして開始します。

    Copy to Clipboard Toggle word wrap
    # systemctl enable --now radiusd

トラブルシューティング

  • radiusd サービスの起動に失敗した場合は、IdM サーバーのホスト名を解決できることを確認します。

    Copy to Clipboard Toggle word wrap
    # host -v idm_server.idm.example.com
  • その他の問題が発生した場合は、radiusd をデバッグモードで実行します。

    1. radiusd サービスを停止します。

      Copy to Clipboard Toggle word wrap
      # systemctl stop radiusd
    2. デバッグモードでサービスを開始します。

      Copy to Clipboard Toggle word wrap
      # radiusd -X
      ...
      Ready to process requests
    3. Verification セクションで参照されているように、FreeRADIUS ホストで認証テストを実行します。

次のステップ

  • 不要になった認証方法や使用しないその他の機能を無効にします。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.