UbuntuでWPA2のRADIUS + LDAPを設定する


16

最大150人のユーザー向けにワイヤレスネットワークをセットアップしています。要するに、LDAPに対してWPA2を認証するようにRADIUSサーバーを設定するためのガイドを探しています。Ubuntuで。

  • 動作するLDAPを入手しましたが、実稼働では使用されていないため、このプロジェクトに必要な変更に非常に簡単に適合させることができます。
  • 私はFreeRADIUSを見てきましたが、どんなRADIUSサーバーでも可能です。
  • WiFi専用の物理ネットワークを別に用意したので、その面のセキュリティについてあまり心配する必要はありません。
  • 私たちのAPはHPのローエンドエンタープライズ向けのものです。あなたが考えうるものは何でもサポートしているようです。
  • すべてのUbuntuサーバー、ベイビー!

そして悪いニュース:

  • 私は今や最終的に管理を引き継ぐよりも知識の乏しい誰かなので、セットアップは可能な限り「些細な」ものでなければなりません。
  • これまでのところ、LDAP管理Webアプリケーションといくつかの小さな特別なスクリプトを除き、Ubuntuリポジトリのソフトウェアのみに基づいてセットアップが行われています。したがって、回避可能な場合、「パッケージXのフェッチ、untar、。/ configure」-ものはありません。

更新2009-08-18:

いくつかの有用なリソースを見つけましたが、重大な障害が1つあります。

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でテストユーザーを作成しました。mr2Yx36Mこれにより、おおよそ次のLDAPエントリが得られます。

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 09

回答:


12

ここでLDAPの質問に答えてみます。

簡単な答えは次のとおりldapです。モジュールがauthenticateセクションから削除されていることを確認し、mschapモジュールがセクションauthorizeauthenticateセクションの両方に存在することを確認してください。そして、「No good good」パスワードは無視します。

そして、ここに(非常に)長い答えがあります。

ldapモジュールはどのように機能しますか?

セクションでldapモジュールをアクティブにするとauthorize、これは、RADIUSパケットがFreeRADIUSによって受信されたときの動作です。

  1. LDAPサーバーへのバインドを試みます(ゲストユーザーとして、またはで構成されている場合は指定されたIDを使用ldap.conf
  2. ベースDN(で設定ldap.conf)の下にあるフィルターを使用して、ユーザーのDNエントリを検索します。
  3. で構成された属性のうち取得できるすべてのLDAP属性を取得しldap.attrmap、RADIUS属性に変換します。
  4. これらの属性をRADIUSパケットのチェック項目リストに追加します。

セクションでldapモジュールをアクティブにするとauthenticate、これがFreeRADIUSの機能です。

  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を使用していない限りldapauthenticateセクションからモジュールを安全に削除できます。実際には、次のことを行う必要があります。

を使用するときにテストが機能する場合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ライセンスと(多少)互換性がありませんでした。したがって、Ubuntuの人々は、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を含む)に切り替えるか、コンパイルを続ける必要があります。Debianユーザーの場合、状況は少し明るくなっています。LennyバックポートにはFreeRADIUS 2.1.8が含まれています。したがって、非常に安定した、インストールと保守が簡単なものが必要な場合は、Debian Lennyでサーバーをデプロイし、バックポートされたFreeRADIUSパッケージをインストールすることをお勧めします(再コンパイルすることなく、Pythonモジュールを無料で作成することもできますすべての実験モジュール)。

http://CACert.orgから証明書を取得し ました可能であれば、おそらく「実際の」証明書を取得する必要があります)

「自己署名証明書とは対照的に」「実際の」証明書を使用する「落とし穴」が1つあります。

Thawteが署名したものを使用しました。正常に機能し、ユーザーにはのような名前の美しい「有効な」証明書が表示されますwww.my-web-site.comユーザーが証明書を受け入れると、コンピューターは実際に同じ認証局によって発行されたすべての証明書が信頼されるべきであることを理解します(これをWindows VistaとMacOSX Snow Leopardでテストしました)!そのため、私の場合、ハッカーがたとえばwww.some-other-web-site.comThawteによって署名された証明書を持っている場合、ユーザーのコンピューターに警告が表示されることなく、中間者攻撃を簡単に実行できます。

これに対する解決策は、「www.my-web-site.com」のみを信頼するように具体的に指定するために、ユーザーのコンピューターのネットワーク構成に深くあります。数分で完了しますが、ほとんどのユーザーは、明確な手順を提供し、すべてのユーザーがそれに従うことを確認しない限り、これを設定する場所を知りません。私は今でも「有効な」証明書を使用していますが、率直に言って、WindowsとMacOSXの両方がこの「バグ」を共有しているのは残念です。特定の証明書の代わりに認証局を信頼します。痛い...


1

バグレポートによると、FreeRADIUSを簡単に再構築すると、OpenSSHサポートの問題が修正されるはずです。一度だけ行う必要があります。

管理のしやすさがセットアップにどのように関係するのかわかりません。多くの場合、セットアップはすべてのベースをカバーしているため、セットアップがより複雑で詳細であるほど、管理が容易になります。構成を他のサーバーにも簡単にドロップする必要があるということですか?いくつの無線LANを設定していますか?

構成したら、管理はLDAPユーザーの追加、削除、および変更に限定する必要があります。これらは、ldapmodify(など)を使用してスクリプトを作成するか、まともなLDAPグラフィカルフロントエンドを見つけて、スクリーンショットでプロセスを文書化するのに十分簡単でなければなりません。


まず、アップデートが提供されるたびにパッケージを再コンパイルする必要があります(Gentooの皆さんはここにいます:))。他の部分については、私は完全に同意します-セットアップがすべてのベースをカバーする場合、後継者が行う作業が少なくなります(そしてリバースエンジニアへのハッキングが少なくなります)。
モーテンシーバー2009


-1

FreeRADIUS2(OpenSSLを使用)+ EAP-TLS + WPA2-Enterpriceを使用できます。以下は、詳細なHOW-TOです。Windows XP SP3は、Windows 7、Android 2.3、iPhone、Symbianと同様にネイティブサポートしています。しかし、そのようなスキームでのSLDAPとの互換性については知りません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.