SpO SSOクライアントを使用して、AD Windows Server 2008 ADドメインのDebianにOpenfireサーバーをインストールした経験を共有したいと思います。
インストール自体は簡単で、少し時間がかかります。ソフトウェアバンドル全体の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を無効にします。
頑張って
製品の開発が続くと...