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
    Copy to Clipboard Toggle word wrap

    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'
            ...
    Copy to Clipboard Toggle word wrap
  3. Diffie-Hellman(DH) 매개변수를 사용하여 /etc/raddb/certs/dh 파일을 만듭니다. 예를 들어 2048비트 소수를 사용하여 DH 파일을 만들려면 다음을 입력합니다.

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

    보안상의 이유로 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
              ...
          }
      }
      Copy to Clipboard Toggle word wrap
    2. Cryostat 지시문에서 default_eap_type 매개변수를 ttls:로 설정합니다.

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

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

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

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

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

    이렇게 하면 외부 인증에 대해 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
              }
          }
      
          ...
      }
      Copy to Clipboard Toggle word wrap
    2. authenticate 지시문에서 LDAP 인증 유형의 주석을 제거합니다.

      authenticate {
          Auth-Type LDAP {
              ldap
          }
      }
      Copy to Clipboard Toggle word wrap
  7. ldap 모듈을 활성화합니다.

    # ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
    Copy to Clipboard Toggle word wrap
  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'
          ...
      }
      Copy to Clipboard Toggle word wrap

      FreeRADIUS 호스트와 IdM 서버 간에 TLS 암호화 연결을 사용하도록 서버 URL에서 ldaps 프로토콜을 지정합니다.

    2. ldap 지시문에서 IdM LDAP 서버의 TLS 인증서 유효성 검사를 활성화합니다.

      tls {
          ...
              require_cert = 'demand'
          ...
      }
      Copy to Clipboard Toggle word wrap
  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
      }
      Copy to Clipboard Toggle word wrap
    2. 네트워크 인증자의 클라이언트 지시문을 추가합니다.

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

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

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

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

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

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

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

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

문제 해결

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

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

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

      # systemctl stop radiusd
      Copy to Clipboard Toggle word wrap
    2. 디버그 모드에서 서비스를 시작합니다.

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

다음 단계

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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat