en
Dil
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI çevirisi
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Kerberos kimlik doğrulaması nasıl kurulur

Kerberos
TOA

Giriş

Ocak 2019'dan itibaren Easy Redmine (sürüm 2018.1.3, platform 05.02), Kerberos aracılığıyla kullanıcı kimlik doğrulamasını destekler. Easy Software, Kerberos kimlik doğrulamasını bir kerelik ücretle ücretlendirilebilen birinci sınıf bir hizmet olarak sağlar.

İşlev, genel SSO kimlik doğrulama ayarının bir parçasıdır (sürüm 10: Yönetim >> Ayarlar >> Kimlik Doğrulama; sürüm 11: Yönetim >> Kolay SSO ).

Aşağıda ayrıntılı olarak açıklanan yapılandırma ile şunları girersiniz: yönetici/admin@EASYPROJECT.COM EASYPROJECT.COM bölge adıdır.

Bu ayar işin kolay kısmı. Ancak daha büyük kısım sunucu tarafında yapılır. Easy Redmine için Kerberos, Apache web sunucusu gerektirir. Konfigürasyon, sunucu uzmanlarımız tarafından ihtiyaçlarınıza göre gerçekleştirilir.

Aşağıda yapılandırma için bir kılavuz bulabilirsiniz. Yalnızca yapılacak kurulum hakkında referans materyali olarak hizmet eder. Lütfen bunun garantili bir kılavuz olmadığını unutmayın. Sunucunuzda Kerberos'u veya başka bir SSO kimlik doğrulamasını yapılandırmaya çalışarak, uygulamanın güvenliğinin ve genel işleyişinin tüm sorumluluğunu üstlenirsiniz.

Hesap yöneticinizle iletişime geçmekten çekinmeyin veya destek yapılandırmayı uzmanlarımızla birlikte planlamak.

Linux sunucusunda Kerberos kurulumu

İçerik

Kerberos sunucusu nasıl kurulur ve hazırlanır
Apache2 web sunucusunda kerberos kimlik doğrulaması nasıl kullanılır?
Nginx web sunucusunda kerberos kimlik doğrulaması nasıl kullanılır (yalnızca CentOS tabanlı makinelerde!)
Kaynaklar ve faydalı bağlantılar

Kerberos'un Kurulumu

Bu tartışma için, aşağıdaki özelliklere sahip bir MIT Kerberos etki alanı oluşturacağız (bunları ihtiyaçlarınıza göre düzenleyin):

Bölge: EASYPROJECT.COM
Birincil KDC: kdc01.easyproject.com (192.168.0.1)
İkincil KDC: kdc02.easyproject.com (192.168.0.2)
Kullanıcı sorumlusu: yönetici
Yönetici sorumlusu: kolay/kolay666

Ağ kimliği doğrulanmış kullanıcılarınızın kullanıcı kimliklerini yerel kullanıcılarınızdan farklı bir aralıkta (örneğin, 5000'den başlayarak) bulundurmaları şiddetle önerilir.

Kerberos sunucusunu kurmadan önce, etki alanınız için uygun şekilde yapılandırılmış bir DNS sunucusu gereklidir. Kerberos Bölgesi kural olarak etki alanı adıyla eşleştiğinden, bu bölüm DNS belgelerinin Birincil Yöneticisinde yapılandırılan EASYPROJECT.COM etki alanını kullanır.

Sonraki bölüm çok önemli!

!!!Ayrıca, Kerberos zamana duyarlı bir protokoldür. Bu nedenle, bir istemci makine ile sunucu arasındaki yerel sistem zamanı (varsayılan olarak) beş dakikadan fazla farklılık gösteriyorsa, iş istasyonu kimlik doğrulaması yapamaz. Sorunu düzeltmek için tüm ana bilgisayarların zamanlarını aynı Ağ Zaman Protokolü (NTP) sunucusunu kullanarak senkronize etmesi gerekir. NTP kurulumuna ilişkin ayrıntılar için bkz. Zaman Senkronizasyonu.!!!

 

Kerberos sunucusunun kurulumu

1) Öncelikle krb5-kdc ve krb5-admin-server paketlerini kurmamız gerekiyor.

sudo apt kurulum krb5-kdc krb5-admin-sunucusu

Kurulumun sonunda, bölge için aynı sunucu olabilecek veya olmayabilecek Kerberos ve Yönetici sunucuları için ana bilgisayar adını sağlamanız istenecektir.

Varsayılan olarak bölge, KDC'nin etki alanı adından oluşturulur.

2) Şimdi kdb5_newrealm yardımcı programı ile yeni alanı oluşturmamız gerekiyor:

sudo krb5_newrealm

Proje yönetiminizi yükseltin

İhtiyaçlarınıza uyum sağlayan ve size mükemmel bir genel bakış sunan sonraki seviye Redmine özelliklerini edinin.

Kerberos sunucusunun konfigürasyonu

1) Kurulum sırasında sorulan sorular /etc/krb5.conf dosyasını yapılandırmak için kullanılır. Anahtar Dağıtım Merkezi (KDC) ayarlarını yapmanız gerekiyorsa, dosyayı düzenlemeniz ve krb5-kdc arka plan programını yeniden başlatmanız yeterlidir. Kerberos'u sıfırdan yeniden yapılandırmanız gerekirse, belki de bölge adını değiştirmek için sonraki komutu çalıştırabilirsiniz.

sudo dpkg-krb5-kdc'yi yeniden yapılandır

2) KDC düzgün bir şekilde çalıştığında, bir yönetici kullanıcıya (yönetici sorumlusu) ihtiyaç duyulur. Günlük kullanıcı adınızdan farklı bir kullanıcı adı kullanmanız önerilir. Çalıştırmak

sudo kadmin.local Ana kök/admin@EASYPROJECT.COM olarak parola ile kimlik doğrulama. kadmin.local: addprinc manager/easy UYARI: manager/admin@EASYPROJECT.COM için politika belirtilmemiş; varsayılan olarak ilke yok "manager/admin@EASYPROJECT.COM" sorumlusu için parola girin: "manager/admin@EASYPROJECT.COM" sorumlusu için parolayı yeniden girin: Asıl "manager/admin@EASYPROJECT.COM" oluşturuldu. kadmin.local: çık

Yukarıdaki örnekte yönetici Yöneticidir, /admin bir Eşgörünümdür ve @EASYPROJECT.COM alanı belirtir. "Her gün" Sorumlusu, yani kullanıcı sorumlusu, manager@EASYPROJECT.COM olacaktır ve yalnızca normal kullanıcı haklarına sahip olmalıdır.

EASYPROJECT.COM ve yöneticisini Bölge ve yönetici kullanıcı adınızla değiştirin.

3) Ardından, yeni yönetici kullanıcının uygun Erişim Kontrol Listesi (ACL) izinlerine sahip olması gerekir. İzinler /etc/krb5kdc/kadm5.acl dosyasında yapılandırılır:

yönetici/admin@EASYPROJECT.COM *

Bu girdi, yöneticiye/yöneticiye, bölgedeki tüm ilkeler üzerinde herhangi bir işlem gerçekleştirme yeteneği verir. Müdürleri daha kısıtlayıcı ayrıcalıklarla yapılandırabilirsiniz; bu, genç personelin Kerberos istemcilerinde kullanabileceği bir yönetici müdürüne ihtiyacınız varsa kullanışlıdır. Ayrıntılar için lütfen kadm5.acl kılavuz sayfasına bakın.

4) Şimdi yeni ACL'nin etkili olması için krb5-admin-server'ı yeniden başlatın:

sudo systemctl krb5-admin-server.service'i yeniden başlatın

5) Yeni kullanıcı sorumlusu kinit yardımcı programı kullanılarak test edilebilir:

kinit manager/admin manager/admin@EASYPROJECT.COM'un Şifresi:

Şifreyi girdikten sonra, Bilet Verme Bileti (TGT) hakkındaki bilgileri görüntülemek için klist yardımcı programını kullanın:

klist Kimlik bilgileri önbelleği: FILE:/tmp/krb5cc_1000 Asıl: manager/admin@EASYPROJECT.COM Düzenlendi Asıl Süresi Doldu 13 Temmuz 17:53:34 14 Temmuz 03:53:34 krbtgt/EASYPROJECT.COM@EASYPROJECT.COM

Burada krb5cc_1000 önbellek dosya adı, krb5cc_ öneki ve bu durumda 1000 olan kullanıcı kimliğinden (uid) oluşur. İstemcinin KDC'yi bulabilmesi için KDC için /etc/hosts'a bir giriş eklemeniz gerekebilir. Örneğin:

192.168.0.1 kdc01.example.com kdc01

192.168.0.1'in KDC'nizin IP adresiyle değiştirilmesi. Bu genellikle, yönlendiricilerle ayrılmış farklı ağları kapsayan bir Kerberos bölgeniz olduğunda olur.

İstemcilerin Bölge için KDC'yi otomatik olarak belirlemesine izin vermenin en iyi yolu, DNS SRV kayıtlarını kullanmaktır. Aşağıdakileri /etc/named/db.example.com'a ekleyin:

_kerberos._udp.EASYPROJECT.COM. SRV'DE 1 0 88 kdc01.easyproject.com. _kerberos._tcp.EASYPROJECT.COM. SRV'DE 1 0 88 kdc01.easyproject.com. _kerberos._udp.EASYPROJECT.COM. SRV 10 0 88 kdc02.easyproject.com'da. _kerberos._tcp.EASYPROJECT.COM. SRV 10 0 88 kdc02.easyproject.com'da. _kerberos-adm._tcp.EASYPROJECT.COM. SRV 1 0 749 kdc01.easyproject.com'da. _kpasswd._udp.EASYPROJECT.COM. SRV 1 0 464 kdc01.easyproject.com'da.

EASYPROJECT.COM, kdc01 ve kdc02'yi alan adınız, birincil KDC ve ikincil KDC ile değiştirin.

DNS kurulumuyla ilgili ayrıntılı talimatlar için Etki Alanı Adı Hizmeti'ne (DNS) bakın.

Yeni Kerberos Bölgeniz artık istemcilerin kimliğini doğrulamaya hazır.

İkincil KDC Yapılandırması (Opsiyonel)

Birincil KDC'nin kullanılamaması durumunda İkincil KDC'ye sahip olmak iyi bir uygulamadır. Ayrıca, farklı ağlarda bulunan (muhtemelen NAT kullanan yönlendiricilerle ayrılmış) Kerberos istemcileriniz varsa, bu ağların her birine ikincil bir KDC yerleştirmek akıllıca olur.

1) paketleri kurun ve Kerberos ve Yönetici sunucu adları istendiğinde Birincil KDC'nin adını girin:

sudo apt kurulum krb5-kdc krb5-admin-sunucusu

2) Paketleri kurduktan sonra, İkincil KDC'nin ana bilgisayar sorumlusunu oluşturun. Bir terminal isteminden şunu girin:

kadmin -q "addprinc -randkey ana bilgisayarı/kdc02.easyproject.com"

Herhangi bir kadmin komutunu verdikten sonra, kullanıcı adınız/admin@EASYPROJECT.COM ana parolanız istenecektir.

3) Keytab dosyasını çıkarın:

kadmin -q "ktadd -norandkey -k keytab.kdc02 ana bilgisayar/kdc02.easyproject.com"

4) Şimdi geçerli dizinde bir keytab.kdc02 olmalı, dosyayı /etc/krb5.keytab'a taşıyın:

sudo mv keytab.kdc02 /etc/krb5.keytab

keytab.kdc02 dosyasının yolu farklıysa buna göre ayarlayın.

5) Ayrıca, klist yardımcı programını kullanarak sorun giderme sırasında yararlı olabilecek bir Keytab dosyasındaki ilkeleri listeleyebilirsiniz:

sudo klist -k /etc/krb5.keytab

-k seçeneği, dosyanın bir keytab dosyası olduğunu gösterir.

6) Ardından, her KDC'de Diyar için tüm KDC'leri listeleyen bir kpropd.acl dosyası olması gerekir. Örneğin, hem birincil hem de ikincil KDC'de /etc/krb5kdc/kpropd.acl oluşturun:

host/kdc01.easyproject.com@EASYPROJECT.COM host/kdc02.easyproject.com@EASYPROJECT.COM

7) İkincil KDC'de boş bir veritabanı oluşturun:

sudo kdb5_util -s oluştur

8) Şimdi kprop yardımcı programından gelen bağlantıları dinleyen kpropd arka plan programını başlatın. kprop, döküm dosyalarını aktarmak için kullanılır:

sudo kpropd-S

9) Birincil KDC'de, ana veritabanının bir döküm dosyası oluşturun:

sudo kdb5_util dökümü /var/lib/krb5kdc/dump

10) Birincil KDC'nin keytab dosyasını çıkartın ve /etc/krb5.keytab'a kopyalayın:

kadmin -q "ktadd -k keytab.kdc01 ana bilgisayar/kdc01.easyproject.com" sudo mv keytab.kdc01 /etc/krb5.keytab

Keytab'ı çıkarmadan önce kdc01.easyproject.com için bir ana bilgisayar olduğundan emin olun.

11) kprop yardımcı programını kullanarak veritabanını İkincil KDC'ye itin:

sudo kprop -r EASYPROJECT.COM -f /var/lib/krb5kdc/dump kdc02.easyproject.com

Yayılım işe yaradıysa BAŞARILI mesajı olmalıdır. Bir hata mesajı varsa, daha fazla bilgi için ikincil KDC'de /var/log/syslog'u kontrol edin.

12) İkincil KDC'deki veritabanını periyodik olarak güncellemek için bir cron işi de oluşturmak isteyebilirsiniz. Örneğin, aşağıdakiler veritabanını her saat başı itecektir (uzun satırın bu belgenin formatına uyacak şekilde bölündüğünü unutmayın):

# mh dom mon dow komutu 0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r EASYPROJECT.COM -f /var/lib/krb5kdc/dump kdc02. easyproject.com

13) İkincil KDC'ye geri dönün, Kerberos ana anahtarını tutmak için bir saklama dosyası oluşturun:

sudo kdb5_util zulası

14) Son olarak, İkincil KDC'de krb5-kdc arka plan programını başlatın:

sudo systemctl krb5-kdc.service'i başlat

İkincil KDC artık Diyar için bilet düzenleyebilmelidir. Bunu, Birincil KDC'de krb5-kdc arka plan programını durdurarak ve ardından bir bilet istemek için kinit'i kullanarak test edebilirsiniz. Her şey yolunda giderse, İkincil KDC'den bir bilet almalısınız. Aksi takdirde, İkincil KDC'de /var/log/syslog ve /var/log/auth.log'u kontrol edin.

Kerberos sunucusu olarak Active Directory

Giriş yapabilmesi gereken tüm kullanıcılar, web sunucusundan (örn. Apache) ER'ye geçmek için AD'de olmalıdır. SSO'nun çalışması için, kullanıcının AD kullanıcısı olarak oturum açtığı bir etki alanı bilgisayarından oturum açması gerekir. SSO çalışmasa bile, kullanıcının web sunucusuna AD'ye oturum açma kimlik bilgilerini sağlaması gerekir (bu durumda yalnızca HTTP temel kimlik doğrulaması kullanılır, https şiddetle önerilir).

1) Seçenek şifresi asla açıkken web sunucusu için AD kullanıcısı oluşturun. Örneğin, SECRET parolalı kullanıcı easysso ve SSO için kullanılan etki alanı (örn. EASYPROJECT.COM).

2) AD Windows sunucusunda Kerberos keytab dosyası oluşturun:
ktpass -princ HTTP/www.easyproject.com@EASYPROJECT.COM -mapuser easysso@EASYPROJECT.COM -pass GİZLİ -kripto TÜMÜ -ptype KRB5_NT_PRINCIPAL -out C:\Temp\http.keytab

3) SPN'yi (hizmet asıl adı) Windows sunucusunda yukarıda oluşturulan AD hesabına ayarlayın, örneğin:
setpn -s HTTP/www.easyproject.com

Kerberos Linux İstemcisi

Şimdi bir Linux sistemini Kerberos istemcisi olarak yapılandırmanız gerekecek. Bu, bir kullanıcı sisteme başarılı bir şekilde giriş yaptığında, herhangi bir kerberized servise erişime izin verecektir.

1) Bir Kerberos Bölgesinde kimlik doğrulaması yapmak için krb5-user ve libpam-krb5 paketlerinin yanı sıra kesinlikle gerekli olmayan ancak hayatı kolaylaştıran birkaç paket gerekir. Paketleri Debian tabanlı bir sisteme kurmak için bir terminal istemine aşağıdakini girin:

sudo apt kurulum krb5-user libpam-krb5 libpam-ccreds auth-client-config

Paketleri Redhat tabanlı bir sisteme kurmak için şunları kullanın:

yum yükleme krb5-iş istasyonu pam_krb5

auth-client-config paketi, birden çok kaynaktan kimlik doğrulaması için basit PAM yapılandırmasına izin verir ve libpam-ccreds, Anahtar Dağıtım Merkezi'nin (KDC) kullanılamaması durumunda oturum açmanıza olanak tanıyan kimlik doğrulama bilgilerini önbelleğe alır. Bu paket, kurumsal ağdayken Kerberos kullanarak kimlik doğrulaması yapabilen ancak ağ dışında da erişilmesi gereken dizüstü bilgisayarlar için de kullanışlıdır.

2) İstemciyi bir terminalde (Debian tabanlı sistem) yapılandırmak için şunu girin:

sudo dpkg-krb5-config'i yeniden yapılandır

Redhat tabanlı sistemde, /etc/krb5.conf dosyasını düzenlemek yeterlidir (aşağıya bakın).

Daha sonra Kerberos Bölgesinin adını girmeniz istenecektir. Ayrıca, Kerberos SRV kayıtlarıyla yapılandırılmış DNS'niz yoksa menü, Anahtar Dağıtım Merkezi (KDC) ve Bölge Yönetimi sunucusunun ana bilgisayar adını sorar.

dpkg-reconfigure, Bölgeniz için /etc/krb5.conf dosyasına girişler ekler. Aşağıdakine benzer girişlere sahip olmalısınız:

[libdefaults] default_realm = EASYPROJECT.COM ... [bölgeler] EXAMPLE.COM = { kdc = 192.168.0.1 admin_server = 192.168.0.1 }

Kurulumda önerildiği gibi, ağda kimliği doğrulanmış kullanıcılarınızın her birinin kullanıcı kimliğini 5000'de başlayacak şekilde ayarlarsanız, pam'e yalnızca kullanıcı kimliği > 5000 olan Kerberos kullanıcılarını kullanarak kimlik doğrulamayı denemesini söyleyebilirsiniz:

# Kerberos, yerel kullanıcılara değil, yalnızca ldap/kerberos kullanıcılarına uygulanmalıdır. i için ortak-auth ortak-oturum ortak-hesap ortak-şifresinde; do sudo sed -i -r \ -e 's/pam_krb5.so minimum_uid=1000/pam_krb5.so minimum_uid=5000/' \ /etc/pam.d/$i yapıldı

Bu, yerel olarak kimliği doğrulanmış bir kullanıcının parolasını passwd kullanarak değiştirirken (var olmayan) Kerberos parolasının sorulmasını önleyecektir.

 

3) kinit yardımcı programını kullanarak bir bilet talep ederek yapılandırmayı test edebilirsiniz. Örneğin:

kinit manager@EASYPROJECT.COM manager@EASYPROJECT.COM şifresi:

Bir bilet verildiğinde, ayrıntılar klist kullanılarak görüntülenebilir:

klist Bilet önbelleği: FILE:/tmp/krb5cc_1000 Varsayılan asıl: manager@EASYPORJECT.COM Geçerli başlangıç ​​Sona Eriyor Hizmet sorumlusu 07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/EASYPROJECT.COM@EASYPROJECT .COM 07 25:08:05'ye kadar yenilenir
Kerberos 4 bilet önbelleği: /tmp/tkt1000 klist: Önbelleğe alınmış biletiniz yok

4) Ardından, libpam-krb5 modülünü oturum açma sırasında bir bilet talep edecek şekilde yapılandırmak için auth-client-config'i kullanın:

sudo auth-client-config -a -p kerberos_örneği

Başarılı oturum açma kimlik doğrulamasından sonra şimdi bir bilet alacaksınız.

 

Apache 2 yapılandırması

1) mod_auth_kerb kimlik doğrulama modülünü kurun

Apache, SPNEGO için destek sağlamaz ancak mod_auth_kerb modülü kullanılarak eklenebilir. Bu, çoğu büyük GNU/Linux dağıtımında bulunur, ancak üçüncü taraf bir modül olduğu için genellikle Apache'den ayrı olarak paketlenir. Debian tabanlı sistemlerde libapache2-mod-auth-kerb paketi tarafından sağlanır:

apt-get install libapache2-mod-auth-kerb

ve mod_auth_kerb paketiyle Red Hat tabanlı sistemlerde:

yum yükleme mod_auth_kerb

2) Apache modülleri kullanılmadan önce yüklenmelidir, ancak yukarıdaki paketlerin her ikisi de bunun otomatik olarak gerçekleşmesini sağlar. Herhangi bir nedenle bunu manuel olarak yapmanız gerekiyorsa, uygun yapılandırma yönergesi şudur:

LoadModule auth_kerb_module /usr/lib/Apache2/modules/mod_auth_kerb.so

(burada modülün yol adı, sisteminiz için uygun olanla değiştirilmelidir).

3) Web sunucusu için bir hizmet sorumlusu oluşturun

SPNEGO, web sunucusu için bir Kerberos hizmet sorumlusunun oluşturulmasını gerektirir. Hizmet adı HTTP olarak tanımlanmıştır, bu nedenle www.easyproject.com sunucusu için gerekli hizmet asıl adı HTTP/www.easyproject.com@easyproject.COM'dur.

MIT Kerberos kullanıyorsanız, hizmet sorumlusu kadmin komutu kullanılarak oluşturulabilir:

kadmin -p manager/admin -q "addprinc -randkey HTTP/www.easyproject.com"

4) Hizmet sorumlusu için bir tuş sekmesi oluşturun

Anahtar sekmesi, bir veya daha fazla Kerberos ilkesine karşılık gelen şifreleme anahtarlarını depolamak için bir dosyadır. mod_auth_kerb, yukarıda oluşturulan hizmet sorumlusundan yararlanmak için birine ihtiyaç duyar. MIT Kerberos kullanıyorsanız, keytab (hizmet sorumlusu gibi) kadmin komutu kullanılarak oluşturulabilir. Sahipliği, Apache işlemi tarafından okunabilecek şekilde olmalıdır.

Debian tabanlı sistemlerde, tuş sekmesi için uygun bir konum /etc/apache2/http.keytab olacaktır ve uygun sahip www-data'dır:

kadmin -p manager/admin -q "ktadd -k /etc/apache2/http.keytab HTTP/www.easyproject.com" chown www-data /etc/apache2/http.keytab

Red Hat tabanlı sistemlerde uygun konum /etc/httpd/http.keytab olur ve uygun sahibi apache'dir:

kadmin -p manager/admin -q "ktadd -k /etc/httpd/http.keytab HTTP/www.easyproject.com" chown apache /etc/httpd/http.keytab

-k seçeneği, zaten mevcut değilse oluşturulacak olan tuş sekmesine giden yol adını belirtir.

Linux Kerberos sunucusu yerine AD kullanıyorsanız, yukarıda açıklanan şekilde oluşturulan http.keytab dosyasını kullanın. AD bölümü.

5) Anahtarın keytab'a doğru bir şekilde eklendiğini kontrol etmek istiyorsanız, hizmet sorumlusu olarak kimlik doğrulaması yapmak için kullanmayı deneyebilir, ardından klist kullanarak elde edilen bilet verme biletini görüntüleyebilirsiniz:

kinit -k -t /etc/apache2/http.keytab HTTP/www.easyproject.com klist

6) Kullanılacak kimlik doğrulama yöntemini belirtin

Apache'ye mod_auth_kerb tarafından sağlanan kimlik doğrulamasını hangi web sitelerinin hangi bölümlerinin kullanacağı söylenmelidir. Bu, Kerberos değerine sahip AuthType yönergesi kullanılarak yapılır. Mod_auth_kerb'in nasıl davranması gerektiğini yapılandırmak için bazı başka direktiflere ihtiyaç vardır.

Amaç, bu yönergeyi belirli bir web sitesinin tamamına uygulamaksa, o zaman bir dizine yerleştirilebilirler. sitenin köküne karşılık gelen bir yola sahip kapsayıcı:

AuthType Kerberos AuthName "Acme Corporation" KrbMethod KrbMethodK5Passwd üzerinde Negotiate Krb5Keytab /etc/apache2/http.keytab

AD Kerberos sunucusu olması durumunda şunlara da ihtiyacınız olabilir:

... KrbAuthRealms EASYPROJECT.COM KrbServiceName HTTP/www.easyproject.com

AuthName yönergesi, HTTP yetkilendirme alanını belirtir. Amacı, kullanıcıya belirli bir web sitesine erişmek için bilmesi gereken çeşitli şifrelerden hangisinin gerekli olduğunu göstermektir. Gerçek Kerberos kimlik doğrulamasında, parola istemi olmamalıdır ve mod_auth_kerb, bir AuthName belirtilmeden mükemmel şekilde çalışıyor gibi görünmektedir; ancak Apache belgeleri bunun gerekli olduğunu belirtir, bu nedenle yine de bir tane tedarik etmek akıllıca olacaktır. Uygun bir değer, alan adı, Kerberos bölgesinin adı veya web sitesinin ait olduğu organizasyonun adı olabilir.

SPNEGO protokolüne ek olarak mod_auth_kerb, temel kimlik doğrulamayı kullanarak kullanıcıdan bir parola isteme ve ardından KDC'de kimlik doğrulamayı deneyerek bu parolayı doğrulama yeteneğine sahiptir. Bu, web sitesinin Kerberos bölgesinin parçası olmayan makinelerden yetkili kullanıcıları tarafından erişilebilir olması gerektiğinde faydalı olabilir, ancak gerçek Kerberos kimlik doğrulamasından önemli ölçüde daha az güvenlidir. Hem SPNEGO hem de parola doğrulaması varsayılan olarak etkindir. Bu örnekte sitenin SPNEGO etkin olmayan web tarayıcıları tarafından erişilebilir olması gerekliliği yoktur, bu nedenle KrbMethodK5Passwd yönergesi kullanılarak parola doğrulaması devre dışı bırakılmıştır. Tam olması için SPNEGO, KrbMethodNegotiate yönergesi kullanılarak açıkça etkinleştirilmiştir.

Krb5Keytab yönergesi, HTTP hizmet sorumlusunun eklendiği anahtar sekmesinin yol adını belirtir. Bu prosedürde daha önce kadmin'in ktadd komutuna geçirilenlerle eşleşmelidir.

Her ne kadar bir konteyner bu örnekte kullanılmışsa, yukarıdaki direktiflerin bir , veya kapsayıcı veya bir .htaccess dosyası içinde.

7) Yetkili kullanıcıların bir listesini belirtin

Kimlik doğrulama yönteminin ayarlanması tek başına sunucuya erişimi kısıtlamaz. Bunun nedeni, Apache'nin varsayılan olarak anonim kullanıcıların erişimine izin vermesidir ve bu davranış geçersiz kılınmadıkça, kimlik doğrulama yöntemi (ne olursa olsun) çağrılmayacaktır.

Bu örnekte, erişime ihtiyacı olan yalnızca dört kullanıcı vardır ve bunu düzenlemenin en basit yolu bir Require yönergesi aracılığıyladır:

# ... Kullanıcı iste dougal@EASYPROJECT.COM brian@EASYPROJECT.COM ermintrude@EASYPROJECT.COM dylan@EASYPROJECT.COM

Ancak, tüm LDAP/AD kullanıcılarına Apache üzerinden erişime izin vermek istiyorsanız şunları belirtebilirsiniz:

# ... Geçerli kullanıcı gerektir

8) Apache yapılandırmasını yeniden yükleyin

Bkz. Bir sistem hizmetinin yapılandırmasını yeniden yüklemesine neden olma. En son Debian tabanlı sistemlerde gerekli komut şudur:

servis apache2 zorla yeniden yükleme

 

Nginx yapılandırması

Bu bölüm yalnızca CentOS/RedHat tabanlı işletim sistemi için geçerlidir.

1) Sisteminizde Nginx'in kurulu olduğundan emin olun.
Sonraki tüm komutlar kök kullanıcıdan veya sudo kullanılarak çalıştırılmalıdır.

2) nginx kurulumunuzda hangi modüllerin mevcut olduğunu kontrol etmek için sonraki komutu çalıştırın.

Nginx-V

(buhar modülünüzün kullanılabilir olduğundan emin olmak için komutun çıktısında " with-stream=dynamic" ifadesini arayın)

3) Kökünüze gidin ve ngx_stream_module.so dosyasını arayın

 cd / bul / -name ngx_stream_module.so

Steam modül dosyasının tam yolunu not edin
Örneğin, “ /usr/lib64/nginx/modules/ngx_stream_module.so ” içine yerleştirilebilir, nginx.conf içinde ayarlamak için bu yola ihtiyacınız olacak

ngx_stream_module'e sahip değilseniz, varsayılan nginx'inizi kaldırmanız ve onu kaynaklardan veya belirli rpm paketinden yeniden yüklemeniz gerekir. Bu sayfada ngx_stream_module - https://rpmfind.net/linux/rpm2html/search.php?query=ngx_stream_module.so()(64bit) içeren nginx paketlerinin tam sürümlerini bulabilirsiniz.

4) Şimdi Nginx yapılandırmanızı yazmaya hazırsınız.

vim /etc/nginx/nginx.conf
############################################ kullanıcı nginx; işçi_işlemleri 1; load_module /usr/lib64/nginx/modules/ngx_stream_module.so; error_log /var/log/nginx/error.log uyar; pid /var/run/nginx.pid; olaylar { işçi_bağlantıları 1024; } akış { #… error_log /var/log/nginx/stream_error.log hata ayıklama; sunucu { dinle 88; proxy_pass kdc01.easyproject.com:88; } sunucu { dinle 749; proxy_pass kdc01.easyproject.com:749; } } ##########################################

5) nginx hizmetini yeniden başlatın.

systemctl nginx'i etkinleştir systemctl nginx'i başlat

6) Atanan portların şimdi açık olup olmadığını kontrol edin.

netstat -tupnl |grep nginx

Artık Nginx'imiz istekleri sunucuya yönlendirmeye hazır.

AD kullanımdaysa Web istemcisi yapılandırması

İstemcilerin SSO kullanabilmesi için istemci tarayıcılarında etki alanı adına izin verilmelidir. Bu, etki alanı politikasını ayarlayarak veya doğrudan aşağıdaki gibi tarayıcılarda kullanılabilir:

  • IE: Araçlar -> İnternet Seçenekleri -> Güvenlik -> Yerel İntranet -> Siteler -> Gelişmiş'e gidin ve etki alanını ekleyin, örn. easyproject.com
  • Edge: IE'den devralındı
  • Chrome: IE'den devralındı
  • Firefox: about:config URL'sine gidin ve şu değişkenleri güncelleyin: network.negotiate-auth.trusted-uris, network.automatic-ntlm-auth.trusted-uris – etki alanını tekrar ekleyin, örn. easyproject.com

Hata ayıklama

EasyRedmine uygulamanızın web sunucusu (örn. Apache) tarafından gönderilen SSO değişkenlerini gördüğünü doğrulamak istiyorsanız, [url]/sso_variables'a gidin, örn. https://www.easyproject.com/sso_variables.

Geçerli değer, Geçerli oturum açma ve Veritabanında Geçerli kullanım öğeleri doldurulmalı ve oturum açmaya çalışan kullanıcıya karşılık gelmelidir.

 

Kaynaklar ve faydalı bağlantılar

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/managing_smart_cards/configuring_a_kerberos_5_server

https://help.ubuntu.com/lts/serverguide/kerberos.html.en

http://www.microhowto.info/howto/configure_apache_to_use_kerberos_authentication.html

https://active-directory-wp.com/docs/Networking/Single_Sign_On/Kerberos_SSO_with_Apache_on_Linux.html

https://medium.com/@Santii/how-to-setup-kerberos-behind-a-reverse-proxy-nginx-d692f609191c

30 günlük ücretsiz deneme sürümünde Easy Redmine'i deneyin

Coğrafi konumunuzda tam özellikler, SSL korumalı, günlük yedeklemeler