3.1.6. Ek yazılım yükleme ve yapılandırma
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:
- 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
- Ç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.
- 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.:
- Hizmet Asıl Adı (SPN) (https://docs.microsoft.com/windows/win32/ad/service-principal-names).
- Çalışma sunucusu özellikleri (bkz. sayfa Çalışma sunucularını kümeye ekleme).
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:
- 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).
- 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.
- 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.
NOT 1. 1C:Enterprise sunucu sürüm 8.3 usr1cv82 kullanıcısı adına çalışıyorsa, usr1cv82/srv1c.krb.local sunucu servis adını kullanın. Bu durumda, etki alanı kullanıcı adı değişmeden kalabilir (bu örnekte usr1cv8).
NOT 2. Gizli anahtarlı dosya oluşturduğunuzda (ktpass yardımcı programını kullanarak), (1C:Enterprise sunucusunun yüklü olduğu) bilgisayarın tam adını sunucu servis adında (-princ parametresi) küçük harfle belirtin. Aksi takdirde, kimlik doğrulama mekanizması düzgün çalışmayabilir.
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.
NOT. Kurulum süreci belirli Linux dağıtım paketine bağlıdır. Örneğimizde, /etc/resolv.conf dosyasını düzenlemek için açmanız ve bu dosyada etki alanı denetleyicisi IP adresini manuel olarak belirtmeniz gerekir.
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:~#
ÖNEMLİ! Kimlik doğrulama sürecine katılan bilgisayarlar için, sistem saatleri arasında büyük farka izin verilmez çünkü kimlik doğrulama paketlerinin sınırlı bir süresi vardır.
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.