3.1.6. Ek yazılım yükleme ve yapılandırma


<< Prev   Next >>

3.1.6.1. Windows'ta

3.1.6.1.1. Kerberos kimlik doğrulaması için sunucu servis adı oluşturma

Windows kimlik doğrulaması iki kimlik doğrulama protokolü içerir: NTLM ve Kerberos. Şeffaf kimlik doğrulamalı sistemler oluşturduğunuz zaman (tek oturum açma, SSO) Kerberos protokolünü kullanın. Bu protokol, istemci adına işlemleri gerçekleştirmek için yetkilendirme verilerini diğer katılımcılara (hizmetlere) güvenli bir şekilde iletmenizi sağlayan yetkilendirmeyi destekler.

Yayınlanan infobase'i içeren web sunucusu ile 1C:Enterprise sunucu kümesi farklı bilgisayarlarda yer alıyorsa veya 1C:Enterprise sunucu kümesi birden fazla sunucu içeriyorsa, Windows kimlik doğrulaması sadece Kerberos ile çalışabilir.

Hizmet asıl adı (Service Principal Name, SPN) servis UUID örneğidir. Hizmet asıl adları Kerberos kimlik doğrulamasında, servis örneğini servise giriş yapmak için kullanılan hesaba bağlamak için kullanılır. İstemcinin hesap adı olmasa bile istemci uygulamanın servisten hesap kimlik doğrulaması talep etmesini sağlar.

Kerberos kimlik doğrulamasının doğru çalışması için sunucu hizmet adı oluşturulması önerilir ve sınırlı Kerberos yetkilendirmesini yapılandırmak için gereklidir. Sunucu hizmet adı oluşturulduğunda, 1C:Enterprise sunucu hizmetini başlatan etki alanı hesabıyla ilişkilendirilir.

1C:Enterprise sunucu kümesine dahil olan her bir çalışma sunucusu için bir sunucu servis adı belirtin. En yaygın SPN formatı: <service class>/<host name> (ana bilgisayar bazlı servisler). http, host, termsrv vb. gibi yaygın olarak kullanılan servis sınıfı adları olduğunu unutmayın. 1C:Enterprise sunucu kümesi için hizmet adı olarak bunları kullanmanızı önermiyoruz. 1C:Enterprise ile ilişkilendirilebilecek ve herhangi bir üretici veya yazılım tarafından kullanılma ihtimali düşük olan bir ad kullanmanız öneriyoruz. Örneğin, bu servis sınıfı olarak şu adları kullanabilirsiniz: srv1c veya svc1c.

Dolayısıyla, myserver.mydomain bilgisayarda çalışan bir sunucu kümesi için sunucu hizmet adı şu şekilde görünebilir: srv1c/myserver.mydomain veya svc1c/myserver.mydomain.

Sunucu kümesinin sunucu servis adını belirtmek için aşağıdaki adımları takip edin:

  1. Etki alanı denetleyicisine bir sunucu hizmeti adı kaydedin, setspn komutunu kullanın:
setspn -S srv1c/myserver.mydomain mydomain\svc-1c

Bu komut satırında:

  • srv1c/myserver.mydomain sunucu servis adı.
  • domain1\svc-1c, 1C:Enterprise sunucu kümesi çalıştıran kullanıcının etki alanı hesap adıdır.

    Etki alanı denetleyicisi olarak hizmet veren bilgisayarda aşağıdaki komutu çalıştırarak bir hesap için kayıtlı sunucu hizmet adlarının listesini alabilirsiniz:

setspn -L mydomain\svc-1c
  1. Çalışma sunucusu için 1C:Enterprise sunucu servis adı (SPN) özellik değerini belirtin. Yukarıdaki örnekte, bilgisayar myserver ve sunucu hizmet adı srv1c/myserver.mydomain'dir.

    1C:Enterprise sunucu kümesi servisi, yerel sistem hesabı (Local System) adına çalışıyorsa, aşağıdaki formatta kayıtlı bir servis adı kullanabilirsiniz: HOST/server_name. Ancak bu adı kullanmanızı tavsiye etmiyoruz.

  2. Etki alanı denetleyicisi ayarlarında, web sunucusunu çalıştıran bilgisayarın özelliklerinde veya web sunucusunu çalıştıran kullanıcının hesap özelliklerinde, SPN srv1c/myserver.mydomain için tam veya sınırlı yetkilendirmeyi etkinleştirin.

Ayrıca bkz.:

3.1.6.2. Linux'te

3.1.6.2.1. Kerberos Kimlik Doğrulamasını Yapılandırma

Bu bölümde, üç bilgisayardan oluşan temel bir sistem için 1C:Enterprise sunucusunun Kerberos kimlik doğrulamasının nasıl yapılandırılacağı açıklanmaktadır: etki alanı denetleyicisi, 1C:Enterprise kümesinin ana sunucusu ve iş istasyonu.

Temel sistem tanımı

Temel sistem şu bilgisayarları içerir:

  • Aktif Dizin etki alanı denetleyicisi:
    • Ana bilgisayar adı: main.
    • IP adresi:192.168.29.150.
    • Etki alanı: krb.local.
  • 1C:Enterprise kümesinin ana sunucusu:
    • İşletim sistemi: Fedora 7.
    • Ana bilgisayar adı: srv1c.
    • IP adresi:192.168.29.151.
    • MIT Kerberos uygulaması yüklü(krb5-workstation paketi).
  • İş istasyonu.
Etki alanı denetleyicisi kurma

Bu bölüm, Aktif Dizin etki alanı denetleyicisinin yapılandırılmış ve çalışmakta olduğunu varsayar. Buna bağlı olarak, Kerberos kimlik doğrulamasını yapılandırmak için aşağıdaki adımları takip etmeniz gerekir:

  1. DNS sunucusunda, tüm Linux bilgisayarları manuel olarak kaydetmeniz gerekir. Windows bilgisayarlar etki alanına dahil edildiklerinde otomatik olarak kaydedilirler. Bizim örneğimizde, 1C:Enterprise kümesinin ana sunucusunu manuel olarak kaydetmeniz (sunucunun Linux sürümünü çalıştırdığından) ve iş istasyonunu etki alanına dahil etmeniz gerekir (otomatik olarak kaydedilecektir).
  2. Bunun ardından, 1C:Enterprise sunucusuna yetkilendirme taleplerinin ilişkilendirileceği bir etki alanı kullanıcı hesabı oluşturun. Örneğimizde bu, pass1cv8 şifreli usr1cv8 kullanıcısıdır. Bu hesabın özelliklerinde, Bu hesapta DES şifreleme türlerini kullan onay kutusunun işaretini kaldırın. Kerberos uygulamanız RC4-HMAC şifreleme algoritmasını desteklemiyorsa, onay kutusunu işaretleyin.
  3. Ardından, usr1cv8 etki alanı kullanıcısı için gizli anahtar içeren bir dosya oluşturun. Bunun için Windows Destek Araçları paketinde bulunan ktpass yardımcı programını kullanın. Onu Microsoft Windows kurulum diskinin SUPPORT alt dizininde bulabilirsiniz.

    Komut satırında ktpass yardımcı programını başlatın. Örneğimiz için, komut satırı aşağıdaki gibi görünmelidir:

C:\>ktpass -princ usr1cv8/srv1c.krb.local@KRB.LOCAL -mapuser usr1cv8 -pass pass1cv8 -out usr1cv8.keytab
C:\>

RC4-HMAC algoritması desteklenmiyorsa, komut satırı aşağıdaki gibi olmalıdır:

C:\>ktpass -crypto DES-CBC-CRC -princ usr1cv8/srv1c.krb.local@KRB.LOCAL -mapuser usr1cv8 -pass pass1cv8 -out usr1cv8.keytab
C:\>

Sonuç olarak, mevcut dizinde usr1cv8.keytab dosyası oluşturulur (örnekte C: sürücüsünün köküdür) ve usr1cv8/srv1c.krb.local sunucu servis adı usr1cv8 kullanıcısıyla ilişkilendirilir. Windows etki alanında sınırlı yetkilendirmeyi yapılandırmak için sunucu servis adını kullanın.

pass parametresinde, usr1cv8 etki alanı kullanıcı hesabının pass1cv8 parolası geçirilir.

out parametresi, anahtarlı dosyanın adını belirtir. Bizim örneğimizde bu: usr1cv8.keytab. 1C:Enterprise 8.3 sunucu kümesi örneğin usr1cv82 gibi başka bir kullanıcı adına çalışıyorsa, anahtar dosyasının adı olarak usr1cv82.keytab belirtin.

1C:Enterprise kümesinin ana sunucusunu yapılandırma

Bu bölümde, 1C:Enterprise sunucu kümesinin zaten yüklü olduğu ve kümenin ana sunucusunda çalıştığı varsayılmaktadır.

İlk olarak, kümenin ana sunucusu için DNS sunucusunu belirtmeniz gerekir. Bu bir DNS etki alanı denetleyicisi olmalıdır.

Sonuç olarak, dosya aşağıdaki satırları içermelidir:

nameServer 192.168.29.150
search krb.local

Bundan sonra, DNS işlemini kontrol edin. Bunun için, ping komutunu çalıştırın:

srv1c:~#ping main -c 1
PING main.krb.local (192.168.29.150)56(84)bytesofdata.
64 bytes from 192.168.29.150: icmp_seq=1 ttl=128 time=0.177 ms

--- main.krb.localpingstatistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.177/0.177/0.177/0.000 ms
srv1c:~#

Bu nedenle, kümenin ana sunucusu ile etki alanı denetleyicisinin zamanını senkronize etmeniz gerekir. Bunun için, ntpdate komutunu kullanın:

srv1c:~#ntpdate main
4 Jun 11:51:53 ntpdate[2527]: step time Server 192.168.29.150 offset -56.766439 sec
srv1c:~#

Şimdi Kerberos'u yapılandırmanız gerek. Bunu yapmak için /etc/krb5.conf dosyasını düzenleyin. Bu durumda, etki alanı denetleyicisinin NETBIOS adına ihtiyacımız var. Bu genellikle büyük harfli bir etki alanı adıdır. Bu nedenle, bizim örneğimizde NETBIOS adı KRB.LOCAL olacak. Sonuç olarak, /etc/krb5.conf dosyası aşağıdaki gibi görünmelidir:

srv1c:~#cat/etc/krb5.conf
[logging]
Default = FILE:/var/log/krb5libs.log
Kdc = FILE:/var/log/krb5kdc.log
admin_Server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = KRB.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac

[realms]
KRB.LOCAL = {
kdc=main.krb.local:88
default_domain=krb.local
}

[domain_realm]
krb.local = KRB.LOCAL
.krb.local = KRB.LOCAL
KRB.LOCAL = KRB.LOCAL
.KRB.LOCAL = KRB.LOCAL

[kdc]
Profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
Pam = {
Debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = false
krb4_convert = false
}

srv1c:~#

RC4-HMAC algoritması desteklenmiyorsa, default_tkt_enctypes ve default_tgs_enctypes parametreleri aşağıdaki gibi görünmelidir:

...
default_tkt_enctypes = des-cbc-crc des-cbc-md5
default_tgs_enctypes = des-cbc-crc des-cbc-md5
...

Şimdi kimlik doğrulama sisteminin çalışmasını kontrol etmeniz gerekiyor. Bunun için, kinit <name> komutunu çalıştırın, burada name krb.local etki alanında kayıtlı rastgele kullanıcının adıdır. Örnekte bu, user adıdır. Ardından, bu kullanıcının parolasını belirleyin ve Enter tuşuna basın. Program bundan sonra herhangi bir mesaj göstermezse, her şeyi doğru yaptınız demektir.

Bunu doğrulamak için klist komutunu kullanabilirsiniz. Gördüğünüz gibi, Anahtar Dağıtım Merkezi'nden sözde bilet sağlayan bilet aldık. Bu fonksiyon etki alanı denetleyicisi tarafından gerçekleştirilir. Ardından, yerel bilet ön belleğini temizleyip orijinal haline döndürmek için kdestroy komutunu kullanın.

srv1c:~#kinit user
Password for user@KRB.LOCAL:
srv1c:~#klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: user@KRB.LOCAL

Valid starting Expires Service principal
06/04/08 11:29:21 06/04/08 21:28:28 krbtgt/KRB.LOCAL@KRB.LOCAL
renew until 06/05/08 11:29:21

Kerberos 4 ticket cache: /tmp/tkt0
Klist : You have no tickets cached
srv1c:~#kdestroy
srv1c:~#

Bundan sonra, usr1cv8.keytab dosyasını etki alanı denetleyicisi kurulumu sırasında elde edilen gizli anahtarla birlikte 1C:Enterprise kümesinin ana sunucusuna gönderin. Bu dosyayı 1C:Enterprise sunucusunun yüklü olduğu dizine kopyalayın (varsayılan olarak /opt/1cv8/i386/A.B.C.D veya 64 bit sürümü için /opt/1cv8/x86_64/A.B.C.D) ve dosyanın yetkilerini ve sahibini aşağıdaki gibi ayarlayın:

srv1c:~#cd /opt/1cv8/i386/A.B.C.D
srv1c:i386#chown usr1cv8:grp1cv8 usr1cv8.keytab
srv1c:i386#chmod 600 usr1cv8.keytab
srv1c:i386#

Gizli anahtarlı dosyayı başka bir yere yerleştirmek için, yeni dosya konumunu belirtmek üzere yapılandırma dosyasındaki SRV1CV8_KEYTAB değişkenini değiştirin.

Bunun ardından, klist komutunu kullanarak tüm ayarların doğrulunu kontrol etmelisiniz. Bunun için aşağıdaki komutu çalıştırın:

srv1c:~#klist -e -k -t /opt/1cv8/i386/A.B.C.D/usr1cv8.keytab

Kullanılan örnek için, komut sonucu aşağıdaki gibi görünmelidir:

Keytab name: FILE: /opt/1cv8/i386/A.B.C.D/usr1cv8.keytab
KVNO Principal
---- -------------------------------------------------------------
13 usr1cv8/srv1c.krb.local@KRB.LOCAL (ArcFour with HMAC/md5)

RC4-HMAC algoritması desteklenmiyorsa, komut yürütme sonucu aşağıdaki gibi görünecektir:

Keytab name:FILE: /opt/1cv8/i386/A.B.C.D/usr1cv8.keytab
KVNO Principal
---- -------------------------------------------------------------
13 usr1cv8/srv1c.krb.local@KRB.LOCAL (DES cbc mode with RSA-MD5)

Gördüğünüz gibi, gizli anahtarlı dosya tam olarak ihtiyacımız olanı içeriyor: Principal sütunu, gizli anahtarlı dosyayı oluştururken belirttiğimiz servis adını ve doğru şifreleme algoritmasını (ArcFour with HMAC/md5 for RC4-HMAC or DES cbc mode with RSA-MD5 for DES) gösterir .

Bir sonraki adımda, Kerberos sisteminin gizli anahtar kullanarak şifresiz çalışıp çalışamayacağını kontrol etmeniz gerekir. Dosyadaki kimlik doğrulama bilgilerini kullanmanız gerektiğini belirtmek için (/opt/1cv8/i386/A.B.C.D/usr1cv8.keytab veya 64 bit sürüm için /opt/1cv8/x86_64/A.B.C.D /usr1cv8.keytab) kinit komutunu kullanın ve usr1cv8/srv1c.krb.local@KRB.LOCAL servisi için anahtarı buradan okuyun. Sonuç olarak, kinit herhangi bir mesaj vermeden çalışmalı, şifre istememeli ve kontrolü komut satırına döndürmelidir:

srv1c:~#kinit -k -t /opt/1cv8/i386/A.B.C.D/usr1cv8.keytab usr1cv8/srv1c.krb.local@KRB.LOCAL
srv1c:~#

Önceki işlemlerin sonuçlarını gözden geçirmek için klist komutunu kullanın. Başarılı oldukları takdirde, yaklaşık olarak aşağıdaki gibi görünen bilgileri göreceksiniz:

srv1c:~#klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: usr1cv8/srv1c.krb.local@KRB.LOCAL

Valid starting Expires Service principal
06/04/08 11:44:54 06/04/08 21:43:58 krbtgt/KRB.LOCAL@KRB.LOCAL
renew until 06/05/08 11:44:54

Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
srv1c:~#

Herhangi bir ayar yanlışsa, bu komut görüntülenecektir:

srv1c:~#klist
klist: No credential scache found (ticket cache FILE:/tmp/krb5cc_1000)
Kerberos 4 ticket cache: /tmp/tkt1000

klist: You have no tickets cached
srv1c:~#

Sistem durum denetimi başarılı olursa, bu andan itibaren 1C:Enterprise küme sunucusu kimlik doğrulama isteklerini işleyebilir. Bu durumda, gizli anahtarlı dosyanın konumu yapılandırma dosyasında değiştirilmediği sürece sunucunun yeniden başlatılması gerekmez.

<< Prev   Next >>

Icon/Social/001 Icon/Social/006 Icon/Social/005 Icon/Social/004 Icon/Social/002