우분투에서 WPA2를위한 RADIUS + LDAP 설정


16

~ 150 명의 사용자를위한 무선 네트워크를 설정하고 있습니다. 요컨대, RADIUS 서버가 LDAP에 대해 WPA2를 인증하도록 설정하는 안내서를 찾고 있습니다. 우분투에서.

  • 작동하는 LDAP가 있지만 프로덕션 환경에서 사용하지 않으므로이 프로젝트에 필요한 변경 사항에 쉽게 적용 할 수 있습니다.
  • FreeRADIUS를 살펴 봤지만 모든 RADIUS 서버는 가능합니다.
  • 우리는 WiFi만을위한 별도의 물리적 네트워크를 가지고 있었기 때문에 그 전면의 보안에 대해 너무 걱정하지 않아도됩니다.
  • AP는 HP의 저가 엔터프라이즈 제품으로, 여러분이 생각할 수있는 모든 것을 지원하는 것 같습니다.
  • 모든 우분투 서버, 자기야!

그리고 나쁜 소식 :

  • 나는 이제 나보다 지식이 부족한 사람이 결국에는 관리를 인계 받게되므로 설정은 가능한 한 "사소"해야합니다.
  • 지금까지 설정은 LDAP 관리 웹 응용 프로그램 및 몇 가지 작은 특수 스크립트를 제외하고 Ubuntu 리포지토리의 소프트웨어만을 기반으로합니다. 따라서 피할 수 있다면 "패키지 X, untar, ./configure"를 가져 오지 마십시오.

2009-08-18 업데이트 :

몇 가지 유용한 리소스를 찾았지만 한 가지 심각한 장애물이 있습니다.

Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.

기본적으로 FreeRADIUS의 Ubuntu 버전은 SSL ( 버그 183840 )을 지원하지 않으므로 모든 보안 EAP 유형을 쓸모 없게 만듭니다. 버머.

그러나 관심있는 사람을위한 유용한 문서 :

2009-08-19 업데이트 :

에서 정말 좋은 조리법 거기 - 나는 내 자신하기 FreeRADIUS 패키지 어제 저녁을 컴파일 결국 http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html (참조가 업데이트 된 지침은 게시물에 대한 의견).

http://CACert.org 에서 인증서를 받았습니다 (가능한 경우 "실제"인증서를 받아야합니다)

그런 다음 http://vuksan.com/linux/dot1x/802-1x-LDAP.html 의 지침을 따랐습니다 . 이 링크는 http://tldp.org/HOWTO/html_single/8021X-HOWTO/ 링크로 연결되어 있으며 WiFi 보안이 어떻게 작동하는지 알고 싶다면 매우 가치가 있습니다.

2009-08-27 업데이트 :

위의 가이드를 따르면 FreeRADIUS가 LDAP와 통신 할 수있게되었습니다.

암호를 사용하여 LDAP에서 테스트 사용자를 만들었습니다. mr2Yx36MLDAP 항목은 대략 다음과 같습니다.

uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja

를 사용할 때 radtest잘 연결할 수 있습니다.

> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
    User-Name = "msiebuhr"
    User-Password = "mr2Yx36N"
    NAS-IP-Address = 127.0.1.1
    NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
> 

그러나 AP를 통해 시도하면 비행하지 않습니다. NT 및 LM 암호를 확인한다는 것을 확인합니다.

...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP.  Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
...

NT 및 LM 비밀번호는 위와 다르지만 메시지 [ldap] user testuser authorized to use remote access는 나중에 사용자가 거부됩니다.


NT 및 LM 암호는 암호화되어 저장되므로 암호가 다른지 확실하지 않습니다. AP가 어떤 암호를 사용하고 있는지 확인해야합니다. 암호가 일반 암호로 전달되면 MD5가 대신 전달됩니다. RADIUS 클라이언트는 암호 또는 암호와 같은 인증에 여러 개의 RADIUS 특성을 사용할 수 있습니다. 또한 만기 속성을 채우십시오.
kmarsh

답변:


12

여기서 LDAP 질문에 대답하려고합니다.

여기에 짧은 대답입니다 : 있는지 확인 ldap모듈이 제거되는 authenticate부분, 그리고 있는지 확인 mschap모듈 모두에 존재 authorize하고 authenticate섹션을 참조하십시오. 그리고 "No"known good "암호는 무시하십시오.

그리고 지금 여기에 (매우) 긴 대답이 있습니다.

ldap 모듈은 어떻게 작동합니까?

섹션 에서 ldap모듈 을 활성화하면 authorizeFreeRADIUS가 RADIUS 패킷을 수신 할 때 수행하는 작업입니다.

  1. LDAP 서버에 바인드하려고 시도합니다 (게스트 사용자로서 또는에 구성된 경우 지정된 아이디 사용 ldap.conf).
  2. 기본 DN (에서 구성됨 ldap.conf) 아래의 필터를 사용하여 사용자의 DN 항목을 검색합니다 .
  3. 에서 구성된 속성 중 얻을 수있는 모든 LDAP 속성을 가져 ldap.attrmap와서 RADIUS 속성으로 변환합니다.
  4. 해당 속성을 RADIUS 패킷의 검사 항목 목록에 추가합니다.

섹션 에서 ldap모듈 을 활성화하면 authenticateFreeRADIUS가 수행하는 작업입니다.

  1. 사용자로서 LDAP 서버에 바인드합니다 .
  2. 바인딩 할 수 있으면 인증이 성공한 Radius-Accept것이며 패킷이 클라이언트로 다시 전송되거나 실패한 경우 Radius-Reject패킷이 발생합니다.

그렇다면 PEAP / MS-CHAP-v2가 LDAP에서 작동하도록 FreeRADIUS를 어떻게 구성 할 수 있습니까?

여기서 중요한 점 은 FreeRADIUS 서버가 수신 한 RADIUS 패킷에서 사용자의 일반 텍스트 비밀번호를 검색 할 수있는 경우에만 사용자 가 바인딩 할 수 있다는 것입니다. 이는 PAP 또는 TTLS / PAP 인증 방법 (및 EAP / GTC)이 사용 된 경우에만 해당됩니다. TTLS / PAP 방법 만 실제로 안전하며 Windows에서는 기본적으로 사용할 수 없습니다. 사용자가 TTLS / PAP에 연결하려면 TTLS 요청자 소프트웨어를 설치해야합니다.이 소프트웨어는 거의 옵션이 아닙니다. 대부분의 경우 WPA Enterprise 보안을 사용하여 WiFi를 배포 할 때 PEAP / MS-CHAP-v2가 유일한 합리적인 옵션입니다.

결론은 다음과 같습니다. PAP 또는 TTLS / PAP를 사용하지 않는 한 섹션 에서 ldap모듈을 안전하게 제거 할 수 authenticate있으며 실제로는 사용자가 작동하지 않으므로 바인딩해야합니다.

를 사용할 때 테스트가 작동하면 radtest아마도 ldap모듈이 authenticate섹션 에서 활성화 되었음을 의미합니다 . 사용자로 바인딩하려고 시도하고 radtest가 PAP 인증을 사용하므로 성공합니다. 그러나 PEAP / MS-CHAP-v2를 사용하고 있기 때문에 액세스 포인트를 통해 연결하려고하면 실패합니다.

당신이해야 할 것은 제거입니다 ldap으로부터 모듈을 authenticate섹션, 그리고 당신이 활성화 할 mschap모두에 모듈을 authorize하고 authenticate절을 참조하십시오. 일어날 일은 mschap모듈이 단계 NT-Password동안 LDAP 서버에서 검색된 속성을 사용하여 인증을 처리한다는 것입니다 authorize.

여기 무슨 sites-enabled/default파일 (모든 의견없이)과 같아야합니다 :

    ...
    authorize {
        preprocess
        suffix
        eap {
            ok = return
        }
        expiration
        logintime
    }
    authenticate {
        eap
    }
    ...

다음은 sites-enabled/inner-tunnel파일 모양입니다.

    ...
    authorize {
        mschap
        suffix
        update control {
               Proxy-To-Realm := LOCAL
        }
        eap {
            ok = return
        }
        ldap
        expiration
        logintime
    }
    authenticate {
        Auth-Type MS-CHAP {
            mschap
        }
        eap
    }
    ...

'알려진 올바른 비밀번호 없음'경고는 어떻습니까?

글쎄, 당신은 안전하게 무시할 수 있습니다. ldap모듈이 단계 UserPassword중에 LDAP 서버에서 사용자 세부 사항을 페치 할 때 속성을 찾을 수 없기 때문 authorize입니다. 귀하의 경우에는 NT-Password속성이 있으며 이는 PEAP/MS-CHAP-v2인증에 완벽 합니다.

ldap모듈이 설계 되었을 때 PEAP/MS-CHAP-v2아직 존재하지 않았기 때문에 경고가 존재한다고 생각합니다 . 따라서 당시에 이해가 된 유일한 것은 LDAP 서버에서 UserPassword 속성을 검색하여 PAP, CHAP, EAP / MD5 또는 이러한 인증 방법.


3

여기서 OpenSSL 질문에 대답하려고합니다. 간단한 대답은 OpenSSL을 포함하는 FreeRADIUS 2.1.8 이상사용하는 것 입니다. Ubuntu Lucid 및 Debian Lenny 백 포트에서 사용할 수 있습니다 (아마도 Ubuntu Karmic 백 포트에서도 가능함).

긴 대답은 다음과 같습니다.

불행히도 OpenSSL 라이센스는 FreeRADIUS 라이센스와 호환되지 않았습니다. 따라서 우분투 사람들은 OpenSSL과 연결 되지 않은 FreeRADIUS 바이너리를 제공하기로 결정했습니다 . 당신은 EAP / TLS, PEAP 또는 TTLS를 원한다면, 당신은 소스를 얻고 그들을 컴파일 --with-openssl(당신이 사용하는 조리법이 설명대로) 옵션을 선택합니다.

그러나 최근 라이센스 문제가 해결되었습니다 . FreeRADIUS 버전 2.1.8 이상은 OpenSSL을 사용하여 컴파일 및 배포 할 수 있습니다. 나쁜 소식은 가장 안정적인 Ubuntu 배포판 (Karmic Koala)에 OpenSSL이없는 FreeRADIUS 2.1.0 만 포함되어 있다는 것입니다 (Lenny는 FreeRADIUS 2.0.4 만 포함하므로 Debian도 마찬가지입니다). Karmic-backports를 확인했지만 FreeRADIUS 2.1.8 이상이 아직 업로드되지 않은 것 같습니다 (그러나 곧 추가 될 수 있습니다. 여기 에서 확인하십시오)). 따라서 지금은 Ubuntu Lucid (FreeRADIUS 2.1.8 포함)로 전환하거나 컴파일을 고수해야합니다. 데비안 사용자의 경우 상황이 약간 밝아집니다. Lenny 백 포트에는 FreeRADIUS 2.1.8이 포함됩니다. 따라서 매우 안정적이고 설치 및 유지 보수가 쉬운 것을 원한다면 데비안 레니 (Debian Lenny)로 서버를 배포하고 백 포트 된 FreeRADIUS 패키지를 설치하는 것이 좋습니다 (다시 컴파일하지 않고도 무료로 파이썬 모듈을 작성할 수 있습니다) 모든 실험 모듈).

http://CACert.org 에서 인증서를 받았습니다 (가능한 경우 "실제"인증서를 받아야합니다)

"실제"인증서가있는 "gotcha"가 있습니다 (자체 서명 된 인증서와 반대).

나는 Thawte가 서명 한 것을 사용했습니다. 그것은 잘 작동하고 사용자는 같은 "유효한"인증서 같은 것을 볼 수 www.my-web-site.com있습니다. 사용자가 인증서를 수락하면 컴퓨터는 실제로 동일한 인증 기관에서 발급 한 모든 인증서를 신뢰할 수 있음을 이해합니다 (Windows Vista 및 MacOSX Snow Leopard에서 테스트했습니다). 따라서 해커가 www.some-other-web-site.comThawte가 서명 한 인증서를 가지고 있으면 사용자의 컴퓨터에 경고가 표시되지 않고 중간자 공격을 쉽게 실행할 수 있습니다!

이에 대한 해결책은 "www.my-web-site.com"만 신뢰할 수 있도록 구체적으로 지정하기 위해 사용자 컴퓨터의 네트워크 구성에 있습니다. 단 1 분 밖에 걸리지 않지만 대부분의 사용자는 명확한 절차를 제공하지 않고 모든 사용자가 따라야하는 경우가 아니면이 구성 위치를 알 수 없습니다. 나는 여전히 "유효한"인증서를 사용하지만 솔직히 Windows와 MacOSX가이 "버그"를 공유한다는 것을 아는 것은 실망 스럽습니다. 특정 인증서 대신 인증 기관을 신뢰합니다. 아야...


1

버그 보고서에 따르면 FreeRADIUS의 간단한 재 구축은 OpenSSH 지원 문제를 해결해야합니다. 한 번만 수행하면됩니다.

설치가 관리의 용이성과 어떤 관련이 있는지 잘 모르겠습니다. 설정이 모든 기반을 포함하기 때문에 설정이 더 복잡하고 상세할수록 관리하기가 더 쉽습니다. 다른 서버에서도 구성을 쉽게 삭제해야합니까? 몇 개의 무선 LAN을 설정하고 있습니까?

일단 구성되면 관리는 LDAP 사용자 추가, 삭제 및 수정으로 제한되어야합니다. 이것들은 ldapmodify (et al)로 스크립트하거나 적절한 LDAP 그래픽 프론트 엔드를 찾고 스크린 샷으로 프로세스를 문서화하기에 충분히 쉬워야합니다.


먼저, 업데이트가 제공 될 때마다 패키지를 다시 컴파일해야합니다 (여기서 Gentoo 사람들이 부러워합니다). 다른 부분에서, 나는 동의합니다-설치가 모든 기지를 다룰 경우, 후임자는 할 일이 적고 리버스 엔지니어링에 대한 해킹이 적습니다.
Morten Siebuhr


-1

FreeRADIUS2 (OpenSSL 사용) + EAP-TLS + WPA2-Enterprice를 사용할 수 있습니다. 여기에 자세한 방법이 있습니다. Windows XP SP3은 Windows 7, Android 2.3, iPhone, Symbian뿐만 아니라 기본 지원합니다. 그러나 나는 그런 계획에서 SLDAP와의 호환성에 대해 모른다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.