透過的なユーザー認証を使用してAD2008ドメインのDebianにOpenfireサーバーをインストールする

こんにちは



SpO SSOクライアントを使用して、AD Windows Server 2008 ADドメインのDebianOpenfireサーバーをインストールした経験を共有したいと思います。



インストール自体は簡単で、少し時間がかかります。ソフトウェアバンドル全体のKerberos認証を設定するときに、私にとって主な困難が生じました。



インフラ

Openfire 3.8.2は、MySQL DBMSを使用してDebian 7.0 "Wheezy" x64にインストールされます。

Debianサーバー名:openfireserver。

Active DirectoryはWindows 2008 Server Standardに展開されます(KerberosはデフォルトでRC4-HMAC-NT暗号化を使用します)。

ドメインrealm.local。

Spark 2.6.3クライアントがインストールされたWindows XP ProおよびWindows 7 Pro x32 / x64ワークステーション。





段階的なインストール(Debianには既にMySQL、Samba、Sun / Oracle Javaがプリインストールされています):



1)ルートとしてログインします。



2)プリインストールされたソフトウェアを確認します。

  #cat / etc / issue 


Debian GNU / Linux 7.0 \ n \ l



  #smbd -V 


バージョン3.6.6



  #mysql -V 


mysql Ver 14.14 Distrib 5.5.31、readline 6.2を使用したdebian-linux-gnu(x86_64)用



  #java -version 


Javaバージョン "1.7.0_21"

Java(TM)SEランタイム環境(ビルド1.7.0_21-b11)

Java HotSpot(TM)64ビットサーバーVM(ビルド23.21-b01、混合モード)



3)データベース「openfire」とMySQLユーザー「openfire」を作成します。

  #mysql -p 


パスワードの入力:[MySQLでルートユーザーのパスワードを入力します]

MySQLモニターへようこそ。 コマンドの末尾は; または\ g。

MySQL接続IDは49です

サーバーバージョン:5.5.31-0 + wheezy1(Debian)

Copyright 2000、2013、Oracleおよび/またはその関連会社。 無断複写・転載を禁じます。

Oracleは、Oracle Corporationおよび/またはその登録商標です。

アフィリエイト。 その他の名称はそれぞれの商標である場合があります

所有者。

「help;」と入力します または '\ h'がヘルプを表示します。 「\ c」と入力して、現在の入力ステートメントをクリアします。



  mysql> CREATE DATABASE openfire; 


クエリOK、1行影響(0.00秒)



  mysql> openfireですべての特権を付与する*「openfire」@「localhost」に「PasswordGoldFish」で付与オプションを付与して; 


クエリOK、影響を受ける行はありません(0.00秒)



  mysql> FLUSH PRIVILEGES; 


クエリOK、影響を受ける行はありません(0.00秒)



  mysql> exit 


さようなら



4)Openfireサーバーをダウンロードしてインストールします。

  #cd / tmp
 #wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.8.2_all.deb 


100%[=====================================] = 12 838 026 2.92M / s for 7、 6秒

2013-05-28 12:58:04(1.62 MB / s)-「downloadServlet?ファイル名= openfire%2Fopenfire_3.8.2_all.deb」が保存されました[12838026/12838026]

  / tmp#cp downloadServlet \?filename \ = openfire%2Fopenfire_3.8.1_all.deb openfire_3.8.2_all.deb
 / tmp#rm downloadServlet \?filename \ = openfire%2Fopenfire_3.8.2_all.deb
 / tmp#dpkg -i openfire_3.8.2_all.deb 


警告:/ var / lib / openfire

OpenFireの開始:OpenFire



  #/etc/init.d/openfire stop 


openfireの停止:openfire。



所有者の変更:

  #chown -R openfire:openfire / var / lib / openfire

 #/etc/init.d/openfire start 


openfireの開始:openfire。



5)(私はMozilla Firefoxを使用しています)のブラウザーに移動します。

http:// openfireserver:9090

言語を選択します(ロシア語の曲線の翻訳、英語を残しました)

ドメイン名を入力します:openfireserver.realm.local

次に、「標準データベース接続」を選択します

プリセットMySQLの選択

localhostの[hostname]とopenfireの[database-name]を修正します

入力したユーザー名:openfire

タイプパスワード:PasswordGoldFish

[続行]をクリックします

プロファイルのセットアップ、ステップ1:

「Directory Server(LDAP)」を選択します

サーバーの種類を選択:Active Directory

Host:realm.localと入力します

ベースDNと入力します:ou = Jabber、ou = Company_Users、dc = realm、dc = local

管理者DNと入力します:cn = LDAP、cn = Users、dc = realm、dc = local

Password:Password_LDAPと入力します

この手順では、以前にLDAP名と永遠のパスワードを使用してADにユーザーを作成しました:Password_LDAP

保存して続行します。

ステップ2と3は変更されずに保存されます。

Openfire管理者を追加します。ベースDNの任意のユーザーを使用できます。

ユーザー名を入力して「追加」をクリックするだけです。

ユーザーが正常に追加されたら、「続行」をクリックします。



これでOpenfireのインストールが完了しました。管理コンソールにアクセスできます。

「ユーザー」セクションに移動すると、ベースDNのすべてのユーザーがすでにそこにいることがわかります。

すべてがすでに機能しており、ユーザーは通常の方法でログインできますが、私の目標はSSOです(主な問題はパスワードを変更した後、ADのアカウントをブロックすることです)。

これを行うには、さらに先へ進みます...



6)Sambaを構成します。

  #nano /etc/samba/smb.conf 


  [グローバル]
   ワークグループ= REALM
   レルム= REALM.LOCAL
   セキュリティ= ADS
   パスワードの暗号化= true
    DNSプロキシ= no
   ソケットオプション= TCP_NODELAY
    Kerberosメソッド=シークレットとキータブ
    winbind更新チケット=はい
   パスワードサーバー= realm.local
   ドメインマスター=いいえ
   ローカルマスター=いいえ
   優先マスター=いいえ
    OSレベル= 0
   ドメインログオン=いいえ
   プリンターをロードする=いいえ
    show printer add wizard = no
    printcap name = / dev / null
   スプールを無効にする=はい 




7)Kerberosを構成します。

  #nano /etc/krb5.conf 


  [libdefaults]
         default_realm = REALM.LOCAL
         kdc_timesync = 1
        転送可能= true
        プロキシ可能= true
         default_tkt_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
         default_tgs_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
         allowed_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
 [レルム]
         REALM.LOCAL = {
                 kdc = realm.local
                 admin_server = realm.local
                 default_domain = REALM.LOCAL
         }
 [domain_realm]
         .realm.local = REALM.LOCAL
         realm.local = REALM.LOCAL




8)Sambaを再起動する

  #/etc/init.d/samba restart 




9)DebianサーバーをADに接続します。

  #net ads join -U DomainAdminAccount -D REALM.LOCAL 


または



  #net rpc join -U DomainAdminAccount 




10)参加方法を確認します。

  #net ads testjoin 


参加OK



  #net rpc testjoin 


「REALM」への参加はOK



11)DNSチェック:

  #nslookup
 > openfireserver 


サーバー:192.168.1.1

アドレス:192.168.1.1#53

名前:openfireserver.realm.local

アドレス:192.168.1.22



  > 192.168.1.22 


サーバー:192.168.1.1

アドレス:192.168.1.1#53

22.1.168.192.in-addr.arpa name = openfireserver.realm.local。



  >終了 




次の5つの手順は、Windows Server 2008ドメインコントローラーで実行されます。



12)ADでxmpp-openfireユーザーを作成し、永遠のパスワードと「Kerberos事前認証を必要としない」オプションを有効にします(Kerberos事前認証なし)。



13)SPNを作成し、ユーザーxmpp-openfireにバインドします。

管理者権限でコマンドラインを実行します。

  > setspn -A xmpp/openfireserver.realm.local@REALM.LOCAL xmpp-openfire
 > ktpass -princ xmpp/openfireserver.realm.local@REALM.LOCAL -mapuser xmpp-openfire@realm.local -pass * -ptype KRB5_NT_PRINCIPAL


ユーザーxmpp-openfireのパスワードを入力します。



14)JREを使用してkeytabファイルを生成する場合、次の内容でファイルC:\ Windows \ krb5.iniを作成します。

  [libdefaults]
     default_realm = REALM.LOCAL
 [レルム]
     REALM.LOCAL = {
         kdc = realm.local
         admin_server = realm.local
         default_domain = REALM.LOCAL
     }
 [domain_realm]
     .realm.local = REALM.LOCAL
     realm.local = REALM.LOCAL 




15)keytabファイルを作成します(Sun / Oracle JRE6をインストールする必要があります):

  cd C:\ Program Files(x86)\ Java \ jre6 \ bin>
 C:\ Program Files(x86)\ Java \ jre6 \ bin> ktab -k xmpp.keytab -a xmpp/openfireserver.realm.local@REALM.LOCAL 


ユーザーxmpp-openfireのパスワードを入力します。



または、JREなしで別の方法を使用できます

  > ktpass -princ xmpp/openfireserver.realm.local@REALM.LOCAL -mapuser xmpp-openfire@realm.local -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab 


ユーザーxmpp-openfireのパスワードを入力します。



16)作成されたkeytabファイルを確認します(JREが必要です):

  C:\ Program Files(x86)\ Java \ jre6 \ bin> kinit -k -t xmpp.keytab xmpp/openfireserver.realm.local@REALM.LOCAL 




17)検証済みのxmpp.keytabファイルを/ usr / share / openfire / resourcesのDebianサーバーに転送します

所有者の変更:

  #chown openfire:openfire xmpp.keytab 




18)Debianサーバー上のxmpp.keytabファイルを確認します。

  #kinit -V -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/openfireserver.realm.local@REALM.LOCAL 




19)次の内容を含むファイル\ etc \ openfire \ gss.confをDebianサーバーに作成します。

  com.sun.security.jgss.accept {
     com.sun.security.auth.module.Krb5LoginModule
    必要な
     storeKey = true
     keyTab = "/ usr / share / openfire / resources / xmpp.keytab"
     doNotPrompt = true
     useKeyTab = true
     realm = "REALM.LOCAL"
    プリンシパル= "xmpp/openfireserver.realm.local@REALM.LOCAL"
     isInitiator = false
     debug = true;
 }; 




20)ブラウザでOpenfire管理コンソールにアクセスし、システムプロパティセクションにパラメーターを追加します。

sasl.gssapi.config = /etc/openfire/gss.conf

sasl.gssapi.debug = false

sasl.gssapi.useSubjectCredsOnly = false

sasl.mechs = GSSAPI

sasl.realm = REALM.LOCAL

xmpp.fqdn = openfireserver.realm.local



21)Openfireを再起動します

  #/etc/init.d/openfire restart 




22)Jabberクライアントのワークステーションに、JREを使用してSpark 2.6.3をインストールします。



23)レジストリを編集します。

セクションへ

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Lsa \ Kerberos \パラメーター

(XPの場合:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Lsa \ Kerberos)

DWORD型のパラメーターを追加します

値が1のAllowTGTSessionKey。



24)C:\ Windowsで、次の内容のkbd5.iniファイルを作成します。

  [libdefaults]
     default_realm = REALM.LOCAL
     default_tkt_enctypes = rc4-hmac
     default_tgs_enctypes = rc4-hmac
 [レルム]
     REALM.LOCAL = {
         kdc = realm.local
         admin_server = realm.local
         default_domain = REALM.LOCAL
     }
 [domain_realm]
     .realm.local = REALM.LOCAL
     realm.local = REALM.LOCAL 




25)ワークステーションを再起動します。



26)Sparkで、「GSSAPI経由のシングルサインオン(SSO)を使用する」オプションを選択し、「サーバー」フィールドにopenfireserverと入力して接続します。



Windows XPでは問題はありませんが、Windows 7では、SparkのSSOは、権限のないユーザーでのみ機能します。

管理者アカウントで作業している場合は、管理者としてSparkを実行するか、UACを無効にします。



頑張って



製品の開発が続くと...



All Articles