透過的なユーザー認証を使用して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を無効にします。

頑張って

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

Source: https://habr.com/ru/post/J181374/


All Articles