36.3. EAP를 사용하여 네트워크 클라이언트를 안전하게 인증하도록 FreeRADIUS 구성


Freeradius는 EAP(Extensible Authentication Protocol)의 다양한 방법을 지원합니다. 그러나 지원되는 보안 시나리오의 경우 EAP-TTLS(tunneled transport layer security)를 사용합니다.

EAP-TTLS를 사용하면 클라이언트는 보안 TLS 연결을 외부 인증 프로토콜로 사용하여 터널을 설정합니다. 그런 다음 내부 인증은 LDAP를 사용하여 Identity Management에 인증합니다. EAP-TTLS를 사용하려면 TLS 서버 인증서가 필요합니다.

참고

기본 FreeRADIUS 구성 파일은 문서 역할을 하며 모든 매개변수 및 지시문을 설명합니다. 특정 기능을 비활성화하려면 구성 파일에서 해당 부분을 제거하는 대신 주석 처리하십시오. 이를 통해 구성 파일 및 포함된 문서의 구조를 유지할 수 있습니다.

사전 요구 사항

  • freeradiusfreeradius-ldap 패키지를 설치했습니다.
  • /etc/raddb/ 디렉토리의 구성 파일은 변경되지 않고 freeradius 패키지에서 제공하는 대로 설정됩니다.
  • 호스트는 Red Hat Enterprise Linux IdM(Identity Management) 도메인에 등록되어 있습니다.

프로세스

  1. 개인 키를 생성하고 IdM에서 인증서를 요청합니다.

    # 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 는 인증서를 모니터링하고 만료되기 전에 갱신한 후 인증서가 갱신된 후 반경된 서비스를 다시 시작합니다.

  2. CA에서 인증서를 발급했는지 확인합니다.

    # 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 파일을 만들려면 다음을 입력합니다.

    # openssl dhparam -out /etc/raddb/certs/dh 2048

    보안상의 이유로 2048비트 소수가 있는 DH 파일을 사용하지 마십시오. 비트 수에 따라 파일 생성에 몇 분이 걸릴 수 있습니다.

  4. /etc/raddb/mods-available/eap 파일을 편집합니다.

    1. tls-config tls-common 지시문에서 TLS 관련 설정을 구성합니다.

      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. Cryostat 지시문에서 default_eap_type 매개변수를 ttls:로 설정합니다.

      eap {
          ...
          default_eap_type = ttls
          ...
      }
    3. 비보안 EAP-MD5 인증 방법을 비활성화하려면 md5 지시문을 주석 처리합니다.

      eap {
          ...
          # md5 {
          # }
          ...
      }

      기본 구성 파일에서 다른 비보안 EAP 인증 방법은 기본적으로 주석 처리됩니다.

  5. /etc/raddb/sites-available/default 파일을 편집하고 Cryostat 이외의 모든 인증 방법을 주석 처리합니다.

    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 지시문에 추가합니다.

      authorize {
          ...
      
          #-ldap
          ldap
          if ((ok || updated) && User-Password) {
              update {
                  control:Auth-Type := ldap
              }
          }
      
          ...
      }
    2. authenticate 지시문에서 LDAP 인증 유형의 주석을 제거합니다.

      authenticate {
          Auth-Type LDAP {
              ldap
          }
      }
  7. ldap 모듈을 활성화합니다.

    # ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
  8. /etc/raddb/mods-available/ldap 파일을 편집하고 다음과 같이 변경합니다.

    1. ldap 지시문에서 IdM LDAP 서버 URL과 기본 고유 이름(DN)을 설정합니다.

      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 인증서 유효성 검사를 활성화합니다.

      tls {
          ...
              require_cert = 'demand'
          ...
      }
  9. /etc/raddb/clients.conf 파일을 편집합니다.

    1. localhostlocalhost_ipv6 클라이언트 지시문에 보안 암호를 설정합니다.

      client localhost {
          ipaddr = 127.0.0.1
          ...
          secret = localhost_client_password
          ...
      }
      
      client localhost_ipv6 {
          ipv6addr = ::1
          secret = localhost_client_password
      }
    2. 네트워크 인증자의 클라이언트 지시문을 추가합니다.

      client hostapd.example.org {
          ipaddr = 192.0.2.2/32
          secret = hostapd_client_password
      }
    3. 선택 사항: 다른 호스트도 FreeRADIUS 서비스에 액세스할 수 있어야 하는 경우 다음과 같이 클라이언트 지시문을 추가합니다.

      client <hostname_or_description> {
          ipaddr = <IP_address_or_range>
          secret = <client_password>
      }

      ipaddr 매개변수는 IPv4 및 IPv6 주소를 허용하고, 선택적 CIDR(Classless inter-domain routing) 표기법을 사용하여 범위를 지정할 수 있습니다. 그러나 이 매개변수에서 하나의 값만 설정할 수 있습니다. 예를 들어 IPv4 및 IPv6 주소에 대한 액세스 권한을 부여하려면 두 개의 클라이언트 지시문을 추가해야 합니다.

      클라이언트 지시문에 설명이 포함된 이름(예: 호스트 이름 또는 IP 범위가 사용되는 위치를 설명하는 단어)을 사용합니다.

  10. 구성 파일을 확인합니다.

    # radiusd -XC
    ...
    Configuration appears to be OK
  11. firewalld 서비스에서 RADIUS 포트를 엽니다.

    # firewall-cmd --permanent --add-service=radius
    # firewall-cmd --reload
  12. 반경된 서비스를 활성화하고 시작합니다.

    # systemctl enable --now radiusd

문제 해결

  • 반경 서비스가 시작되지 않으면 IdM 서버 호스트 이름을 확인할 수 있는지 확인합니다.

    # host -v idm_server.idm.example.com
  • 다른 문제의 경우 디버그 모드에서 반경을 실행하십시오.

    1. 반경된 서비스를 중지합니다.

      # systemctl stop radiusd
    2. 디버그 모드에서 서비스를 시작합니다.

      # radiusd -X
      ...
      Ready to process requests
    3. 확인 섹션에서 참조된 FreeRADIUS 호스트에서 인증 테스트를 수행합니다.

다음 단계

  • 더 이상 필수 인증 방법 및 사용하지 않는 기타 기능을 비활성화합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동