KeycyteYardım Merkezi

Tarayıcının Yazdır penceresini açıp “PDF olarak kaydet”i seçin.

Ayrıcalıklı Erişim Yönetimi

Keycyte PAM 3.2

Kurulum Kılavuzu

Bu Kılavuz Hakkında

Bu kılavuz, Keycyte PAM’in nasıl planlanacağını, kurulacağını ve yapılandırılacağını; nasıl yükseltileceğini ve yedekleneceğini anlatır.

Kılavuz Keycyte PAM 3.2 için geçerlidir. Keycyte PAM, bir Linux sunucusunda Docker Compose ile başlatılan bir dizi Docker kapsayıcısı (container) olarak çalışır.

Hedef Kitle

Kılavuz, Keycyte PAM’i kuran ve işleten sistem yöneticileri ile BT mühendisleri için hazırlanmıştır. Linux yönetimi, Docker, TLS sertifikaları ve kendi ağ ortamınız hakkında bilgi sahibi olmanız beklenir.

İçindekiler

BölümAçıklama
MimariKeycyte PAM bileşenleri ve kullanıcı bağlantılarının izlediği yollar.
Planlama ve HazırlıkSistem gereksinimleri, ağ portları, sertifikalar ve lisanslama.
KurulumKurulum paketinin hazırlanması, kurulum betiğinin çalıştırılması ve ilk oturum açma.
İlk YapılandırmaLisans, Web TLS sertifikası, bildirimler, dizin hizmetleri ve hizmet erişim anahtarları.
Yüksek ErişilebilirlikBir ana düğümle birden fazla Keycyte PAM düğümünün çalıştırılması.
Yedekleme ve Geri YüklemeYapılandırma veritabanının yedeklenmesi ve geri yüklenmesi.
Yapılandırma Başvurusuconfig.yaml ayarları ve KEYCYTE_* ortam değişkenleri.
Sorun GidermeHizmet günlükleri, sertifika sıfırlama ve sık karşılaşılan durumlar.

Gösterim Kuralları

Not

Notlar konuyla ilgili ek bilgi verir.

Önemli

Önemli notlar, devam etmeden önce sağlanması gereken koşulları anlatır; göz ardı edilmeleri veri kaybına ya da hizmet kesintisine yol açabilir.

İpucu

İpuçları, bir işi daha kolay ya da daha iyi yapmanın yolunu gösterir.

Uyarı

Uyarılar, veri kaybına ya da güvenlik riskine yol açabilecek işlemleri anlatır.

Mimari

Bir Keycyte PAM kurulumu, tek bir Linux sunucusunda çalışan ve Docker Compose ile başlatılıp yönetilen bir dizi Docker kapsayıcısından (container) oluşur. Merkezi bileşen PAM sunucusudur: web arayüzlerini sunar, yapılandırmayı PostgreSQL’de saklar, rolleri ve politikaları uygular ve tüm ayrıcalıklı oturumları denetler. Diğer bileşenler belirli protokolleri ya da görevleri üstlenir ve PAM sunucusuyla dahili bir Docker ağı üzerinden iletişim kurar.

Kullanıcılar hedef hesapların parolalarını hiçbir zaman görmez. Kullanıcı Keycyte PAM’e bağlanır; hedef sistemle bağlantıyı Keycyte PAM, Parola Kasası’nda saklanan kimlik bilgisiyle açar.

Bu Bölümde

KonuAçıklama
BileşenlerKurulumdaki kapsayıcılar, her birinin görevi ve kullandığı portlar.
Bağlantı YollarıTarayıcı oturumlarının ve yerel SSH ile RDP istemcilerinin hedef sistemlere nasıl ulaştığı.

Bileşenler

Bir Keycyte PAM kurulumu, aşağıda açıklanan kapsayıcılardan (container) oluşur. Tüm kapsayıcılar tek bir dahili Docker köprü ağına (keycyte-net) bağlıdır ve birbirlerine hizmet adıyla erişir. Ana makinenin dışından yalnızca yayımlanmış olarak listelenen portlara erişilebilir.

Bileşenlere Genel Bakış

BileşenCompose hizmetiİmajYayımlanan portGörevi
PAM sunucusupamkeycyte-pam443/tcpWeb arayüzleri, REST API, politika motoru, oturum denetimi, zamanlanmış işler.
SSH proxyssh-proxykeycyte-ssh-proxy2222/tcpYerel SSH istemcilerinden gelen SSH oturumları, web terminali ve SFTP oturumları.
RDP proxyrdp-proxykeycyte-rdp-proxy3389/tcpYerel RDP istemcilerinden (örneğin Microsoft Uzak Masaüstü Bağlantısı) gelen RDP oturumları.
Ağ geçidi (guacd)guacdguacamole/guacd—Tarayıcıda açılan grafik ve terminal oturumları için protokol ağ geçidi.
Parola Yöneticisipassword-managerkeycyte-password-manager—Hedef sistemlerdeki parolaları değiştirir ve doğrular (parola rotasyonu).
RADIUS sunucusuradiuskeycyte-radius-server1812/udpAğ cihazları ve uygulamalar için Keycyte PAM kullanıcılarına karşı RADIUS kimlik doğrulaması.
TACACS+ sunucusutacacskeycyte-tacacs-server49/tcpAğ cihazları için TACACS+ kimlik doğrulama, yetkilendirme ve hesap kaydı (accounting).
Veritabanıpostgrespostgres:17—Yapılandırmayı, kasayı, günlükleri ve oturum geçmişini saklayan PostgreSQL veritabanı.

PAM Sunucusu

PAM sunucusu (pam kapsayıcısı), Keycyte PAM’in çekirdeğidir. PAM sunucusu:

SSH Proxy

SSH proxy (ssh-proxy kapsayıcısı) SSH trafiğini işler:

SSH proxy, SSH oturum kayıtlarını kayıt dizinine yazar.

RDP Proxy

RDP proxy (rdp-proxy kapsayıcısı), yerel RDP istemcilerinden gelen bağlantıları 3389 numaralı port üzerinden kabul eder (kapsayıcı içinde 13389 numaralı port). Kullanıcı yerel bir istemciyle bağlanmayı seçtiğinde PAM sunucusu, tek kullanımlık bir bağlantı belirtecini ve kimlik bilgilerini RDP proxy’ye iletir ve kullanıcıya bir .rdp dosyası verir. Ardından RDP proxy, hedef sistemle RDP bağlantısını açar.

Ağ Geçidi (guacd)

Ağ geçidi (guacd kapsayıcısı) bir Apache Guacamole proxy hizmetidir (daemon). PAM sunucusu, tarayıcıda çalışan oturumlar için ağ geçidini ağ içindeki 4822 numaralı port üzerinden kullanır: RDP, VNC, Telnet, Kubernetes, RemoteApp, web uygulaması ve üçüncü taraf uygulama oturumları. Ağ geçidi, dosya aktarım dizinine (/drive) ve kayıt dizinine erişebilir.

Parola Yöneticisi

Parola Yöneticisi hizmeti (password-manager kapsayıcısı), hedef sistemlerdeki parolaları değiştirir ve doğrular; örneğin Windows yerel hesapları ve Active Directory hesapları. PAM sunucusu, elle ve zamanlanmış parola değişiklikleri sırasında bu hizmeti ağ içindeki 1453 numaralı port üzerinden çağırır. Parola Yöneticisi, LDAP CA dosyasını paylaşılan uygulama dizininden okur.

RADIUS Sunucusu

RADIUS sunucusu (radius kapsayıcısı) 1812/udp portunu dinler. RADIUS istemcilerinin (örneğin ağ cihazları ya da VPN ağ geçitleri) kimliğini, PAM sunucusunun dahili API’sini çağırarak Keycyte PAM kullanıcılarına karşı doğrular. Ayarları Yönetici Paneli’nde Ayarlar > Radius Sunucu sayfasında yönetilir.

TACACS+ Sunucusu

TACACS+ sunucusu (tacacs kapsayıcısı) 49/tcp portunu dinler. Ağ cihazı yöneticilerinin kimliğini Keycyte PAM’e karşı doğrular, yetkilendirme kararlarını döndürür ve hesap kayıtlarını (accounting) PAM sunucusuna gönderir. Ayarları Yönetici Paneli’nde Ayarlar > TACACS+ Sunucu sayfasında yönetilir.

Veritabanı

PostgreSQL veritabanı (postgres kapsayıcısı, PostgreSQL 17) tüm Keycyte PAM verilerini saklar. Veriler postgres-data Docker biriminde (volume) tutulur. Veritabanı portu ana makinede yayımlanmaz; veritabanına yalnızca dahili ağdaki kapsayıcılar erişebilir.

Not

PAM sunucusu harici bir PostgreSQL sunucusu da kullanabilir. Bu durumda veritabanı bağlantı değişkenlerini harici sunucuya göre ayarlayın (bkz. Yapılandırma Başvurusu).

Ana Makine Dizinleri

Kurulum betiği, kendisini çalıştıran kullanıcının ana dizininde üç dizin oluşturur ve bunları kapsayıcılara bağlar:

Ana makine diziniBağlama noktasıKullanan bileşenİçerik
~/keycyte/app (PAM sunucusu, Parola Yöneticisi), /base (SSH proxy)PAM sunucusu, SSH proxy, Parola YöneticisiSertifika dosyaları, isteğe bağlı config.yaml, yerel yedek dosyaları (backups/) ve ana düğüm işaret dosyası.
~/drive/drivePAM sunucusu, ağ geçidiTarayıcı oturumlarında aktarılan dosyalar.
~/record/recordPAM sunucusu, SSH proxy, ağ geçidiOturum kayıtları.

Önemli

Oturum kayıtları hızla büyüyebilir. ~/record dizinini yeterli boş alana sahip bir dosya sisteminde konumlandırın ve izleyin. Bkz. Sistem Gereksinimleri.

Bağlantı Yolları

Kullanıcılar hedef sistemlere Keycyte PAM üzerinden üç yoldan biriyle erişir. Her durumda kullanıcı Keycyte PAM’de kimlik doğrular, Keycyte PAM kullanıcının rollerini ve politikalarını denetler ve hedef sistemle bağlantıyı, Parola Kasası’ndaki kimlik bilgisiyle bir Keycyte PAM bileşeni açar.

YolKullanıcı tarafıGiriş noktasıHedefe bağlanan bileşen
Tarayıcı oturumu (grafik ya da terminal)Web tarayıcısı, İstemci PaneliPAM sunucusu, 443/tcp (HTTPS ve WebSocket)Ağ geçidi (guacd)
Tarayıcıda SSH terminali ve SFTPWeb tarayıcısı, İstemci PaneliPAM sunucusu, 443/tcp (HTTPS ve WebSocket)SSH proxy
Yerel SSH istemcisiHerhangi bir SSH istemcisiSSH proxy, 2222/tcpSSH proxy
Yerel RDP istemcisi.rdp dosyasıyla RDP istemcisiRDP proxy, 3389/tcpRDP proxy

Tarayıcı Oturumları

Tarayıcı oturumları için istemci yazılımı gerekmez. Kullanıcı İstemci Paneli’nde bir sunucu açar ve oturum bir tarayıcı sekmesinde çalışır.

  1. Tarayıcı, PAM sunucusuna 443 numaralı port üzerinden HTTPS ile bağlanır.
  2. Kullanıcı bir sunucu ve bir hesap seçer. PAM sunucusu rolleri, MFA ve onay gereksinimlerini denetler.
  3. PAM sunucusu tarayıcıdan bir WebSocket açar ve hedef sisteme bağlanır:
    • RDP, VNC, Telnet, Kubernetes, RemoteApp, web uygulaması ve üçüncü taraf uygulama oturumlarında PAM sunucusu, hedefe bağlanması için ağ geçidine (guacd, dahili ağda 4822 numaralı port) istek gönderir. Ağ geçidi, hedef sisteme sunucu için yapılandırılan port üzerinden bağlanır.
    • SSH terminali ve SFTP oturumlarında PAM sunucusu, WebSocket’i SSH proxy’ye (dahili ağda 8443 numaralı port) aktarır. SSH proxy, hedef sisteme SSH ile bağlanır.
  4. Sunucu rolü gerektiriyorsa PAM sunucusu oturumu kaydeder.

Web uygulaması ve üçüncü taraf uygulama oturumları bir atlama sunucusunda (jump server) çalışır: ağ geçidi, Ayarlar > Bağlantı sayfasında yapılandırılan atlama sunucusuna bir RDP oturumu açar ve uygulama orada başlatılır.

Yerel SSH İstemcileri

Kendi SSH istemcisini kullanmayı tercih eden kullanıcılar, SSH proxy’ye 2222 numaralı port üzerinden bağlanır. İstemci Paneli, kopyalanacak komutu aşağıdaki biçimde gösterir:

ssh <vault_id>@<server_id>@<pam_user>@pam.example.com -p 2222
  1. SSH istemcisi, SSH proxy’ye 2222 numaralı port üzerinden bağlanır ve kullanıcının kimliği doğrulanır.
  2. SSH proxy, kullanıcının istenen sunucuda istenen hesabı kullanıp kullanamayacağını dahili API üzerinden PAM sunucusuna sorar. İstek, SSH proxy’nin erişim anahtarıyla imzalanır (bkz. Hizmet Erişim Anahtarları).
  3. SSH proxy, hedef sisteme kasadaki kimlik bilgisiyle bağlanır ve gerekiyorsa oturumu kaydeder.

Yerel RDP İstemcileri

Yerel RDP erişimi için RDP proxy gerekir (bkz. Bileşenler).

  1. Kullanıcı İstemci Paneli’nde bir sunucu ve bir hesap seçer ve yerel bir RDP istemcisiyle bağlanmayı seçer.
  2. PAM sunucusu, tek kullanımlık bir bağlantı belirtecini ve kimlik bilgilerini, RDP proxy erişim anahtarıyla imzalayarak dahili ağ üzerinden RDP proxy’ye iletir.
  3. Kullanıcı bir .rdp dosyası ve tek kullanımlık bir parola alır. .rdp dosyası, KEYCYTE_RDP_PROXY_PUBLIC_ADDRESS değişkeninde tanımlı olan RDP proxy genel adresini gösterir.
  4. RDP istemcisi, RDP proxy’ye 3389 numaralı port üzerinden bağlanır. RDP proxy belirteci doğrular ve hedef sistemle RDP bağlantısını açar.

Belirtecin geçerlilik süresi varsayılan olarak 120 saniyedir (KEYCYTE_RDP_LAUNCH_TOKEN_TTL_SECS). Yerel RDP ile başlatma, RDP proxy URL’si, genel adresi ve erişim anahtarı yapılandırıldığında etkinleşir.

Hizmetler Arası Trafik

Kullanıcı bağlantılarının yanı sıra bileşenler dahili ağ üzerinden birbirleriyle de iletişim kurar:

KaynakHedefAmaç
SSH proxy, RADIUS sunucusu, TACACS+ sunucusuPAM sunucusu (https://pam)Erişim anahtarlarıyla imzalanmış kimlik doğrulama, yetkilendirme, yapılandırma ve oturum olayları.
PAM sunucusuSSH proxyPAM erişim anahtarıyla imzalanmış oturum denetimi (örneğin bir oturumu sonlandırma).
PAM sunucusuRDP proxyYerel RDP ile başlatma için bağlantı belirteçlerinin ve kimlik bilgilerinin iletilmesi.
PAM sunucusuParola YöneticisiHedef sistemlerde parola değiştirme ve doğrulama.
PAM sunucusu, SSH proxyPostgreSQLVeritabanı erişimi.

Planlama ve Hazırlık

Keycyte PAM’i kurmadan önce sistem gereksinimlerini karşılayan bir Linux sunucusu hazırlayın, gerekli ağ portlarını açın, TLS sertifika dosyalarını edinin ve lisansı planlayın.

Bu Bölümde

KonuAçıklama
Sistem GereksinimleriDonanım, işletim sistemi, Docker ve tarayıcı gereksinimleri.
Ağ PortlarıKullanıcılar, ağ cihazları, hedef sistemler ve dahili trafik için açılması gereken portlar.
SertifikalarBaşlangıçta kullanılan PKCS#12 anahtar deposu ve LDAP için CA dosyaları.
LisanslamaLisansın sisteme nasıl bağlandığı ve bir lisans anahtarının neleri içerdiği.

Sistem Gereksinimleri

Keycyte PAM, tüm bileşenlerini tek bir Linux sunucusunda Docker kapsayıcıları (container) olarak çalıştırır. Keycyte PAM’i kurmadan önce sunucunun aşağıdaki gereksinimleri karşıladığından emin olun.

Donanım

KaynakGereksinim
CPU8 çekirdek
Bellek16 GB RAM
Disk500 GB

Disk; kapsayıcı imajlarını, PostgreSQL veritabanı birimini, oturum kayıtlarını (~/record), aktarılan dosyaları (~/drive) ve yerel yedek dosyalarını (~/keycyte/backups) barındırır. En fazla alanı genellikle oturum kayıtları kaplar. Çok sayıda oturum kaydediyor ya da kayıtları uzun süre saklıyorsanız ~/record için ek disk alanı planlayın.

İşletim Sistemi

Docker

YazılımGereksinim
Docker EngineKurulu ve çalışır durumda olmalıdır. docker info başarısız olursa kurulum betiği durur.
Docker ComposeCompose v2 (docker compose eklentisi).

Kurulum betiği, başka bir işlem yapmadan önce her ikisini de denetler. Docker Engine’i ve Compose eklentisini kurmak için Docker belgelerine bakın: https://docs.docker.com/engine/install/ ve https://docs.docker.com/compose/install/.

Sunucuda bir docker grubu bulunmalıdır. Kurulum betiği bu grubun kimliğini okur ve PAM sunucusuna, Ayarlar > Servisler sayfasının kullandığı Docker soketine salt okunur erişim verir.

Not

Kurulum sırasında Docker Compose, PostgreSQL imajını (postgres:17) Docker Hub’dan çeker. İnternet erişimi olmayan sunucularda kurulum betiğini çalıştırmadan önce postgres:17 imajını yükleyin.

Saat Dilimi ve DNS

Tarayıcılar

Kullanıcılar Keycyte PAM ile bir web tarayıcısında çalışır; tarayıcı oturumları için istemci yazılımı gerekmez. Google Chrome, Microsoft Edge, Mozilla Firefox ya da Apple Safari’nin güncel bir sürümünü kullanın.

Ağ Portları

Kullanıcılar, ağ cihazları, hedef sistemler ve Keycyte PAM sunucusu arasındaki güvenlik duvarlarında aşağıdaki portları açın.

Gelen Portlar

Bu portlar Keycyte PAM sunucusunda yayımlanır.

PortProtokolKaynakBileşenAmaç
443TCPKullanıcı tarayıcıları, API istemcileriPAM sunucusuİstemci Paneli, Yönetici Paneli, REST API, tarayıcı oturumlarının WebSocket trafiği.
2222TCPKullanıcı iş istasyonlarıSSH proxyYerel SSH istemcisi bağlantıları.
3389TCPKullanıcı iş istasyonlarıRDP proxyYerel RDP istemcisi bağlantıları. Yalnızca RDP proxy kurulduğunda.
1812UDPRADIUS istemcileri (ağ cihazları, VPN ağ geçitleri)RADIUS sunucusuRADIUS kimlik doğrulaması.
49TCPAğ cihazlarıTACACS+ sunucusuTACACS+ kimlik doğrulama, yetkilendirme ve hesap kaydı (accounting). Yalnızca TACACS+ sunucusu kurulduğunda.

Giden Portlar

Bu bağlantılar Keycyte PAM sunucusundan başlatılır. Kesin portlar ortamınıza ve her sunucu için yapılandırılan porta bağlıdır.

HedefTipik portProtokolBileşenAmaç
Hedef sistemler (RDP, RemoteApp, atlama sunucuları)3389TCPAğ geçidi, RDP proxyRDP oturumları.
Hedef sistemler (SSH, SFTP)22TCPSSH proxySSH ve SFTP oturumları.
Hedef sistemler (VNC, Telnet, Kubernetes, veritabanları)Sunucu bazında yapılandırılırTCPAğ geçidiDiğer protokollerin oturumları.
Windows ve Active Directory hedefleriDeğiştirme yöntemine bağlıTCPParola YöneticisiParola değiştirme ve doğrulama.
LDAP / Active Directory sunucuları389 ya da 636TCPPAM sunucusu, Parola YöneticisiDizin kimlik doğrulaması, kullanıcı eşitleme, keşif.
Posta sunucusuAyarlar > Bildirim sayfasında yapılandırılırTCPPAM sunucusuE-posta bildirimleri ve raporlar.
SMS ağ geçidiAyarlar > Bildirim sayfasında yapılandırılırTCPPAM sunucusuSMS bildirimleri ve tek kullanımlık parolalar.
Syslog sunucularıAyarlar > Syslog Ayarları sayfasında yapılandırılırYapılandırmaya görePAM sunucusuDenetim kayıtlarının SIEM’e iletilmesi.
SFTP yedekleme hedefiYedekleme yapılandırmasındaki port (SSH, genellikle 22)TCPPAM sunucusuYedek dosyalarının kopyalanması.
DNS sunucuları53UDP, TCPTüm kapsayıcılarAd çözümleme.
Docker Hub443TCPDocker EngineÖnceden yüklenmemişse kurulum sırasında postgres:17 imajının çekilmesi.

Dahili Portlar

Bu portlar yalnızca dahili Docker ağı keycyte-net üzerinde kullanılır ve sunucuda yayımlanmaz. Güvenlik duvarında açmanız gerekmez.

PortBileşenKullananAmaç
443PAM sunucusuSSH proxy, RADIUS sunucusu, TACACS+ sunucusuDahili API (https://pam).
4822Ağ geçidi (guacd)PAM sunucusuTarayıcı oturumları.
8443SSH proxyPAM sunucusuWeb terminali ve SFTP WebSocket aktarımı, oturum denetimi.
7171RDP proxyPAM sunucusuYerel RDP bağlantı belirteçlerinin iletilmesi.
13389RDP proxyDocker (3389 olarak yayımlanır)Kapsayıcı içindeki RDP dinleyicisi.
1453Parola YöneticisiPAM sunucusuParola değiştirme ve doğrulama istekleri.
5432PostgreSQLPAM sunucusu, SSH proxyVeritabanı.

Sertifikalar

Keycyte PAM, web arayüzlerini yalnızca HTTPS üzerinden sunar ve LDAP dizinlerine TLS üzerinden bağlanır. Kurulum betiğini çalıştırmadan önce aşağıdaki dosyaları hazırlayın ve kurulum paketi klasörüne yerleştirin.

DosyaZorunluAmaç
localhost.p12EvetPAM sunucusunun başlangıçta HTTPS için kullandığı sunucu sertifikasını ve özel anahtarı içeren PKCS#12 anahtar deposu.
cacerts.pemEvetPAM sunucusunun ve Parola Yöneticisi’nin TLS üzerinden LDAP için güvendiği CA sertifikalarını içeren PEM dosyası.
keycyte-ca.crtHayırEk CA sertifikası. Varsa kurulum betiği tarafından kopyalanır.

Kurulum betiği dosyaları, PAM sunucusuna /app olarak bağlanan ~/keycyte dizinine kopyalar. Kopyalamadan sonra localhost.p12 ya da cacerts.pem eksikse uyarı verir.

HTTPS Sertifikası

PAM sunucusu, başlangıçta HTTPS sertifikasını aşağıdaki sırayla yükler:

  1. Bir MASTER yöneticisinin Yönetici Paneli’nde Ayarlar > Web TLS Sertifikası sayfasında uyguladığı sertifika. Bu sertifika veritabanında saklanır.
  2. KEYCYTE_SERVER_TLS_KEYSTORE değişkenindeki PKCS#12 anahtar deposu (kurulum paketinde: /app/localhost.p12); KEYCYTE_SERVER_TLS_PASSWORD değişkenindeki parolayla açılır.
  3. PAM sunucusunun her başlangıçta ürettiği geçici, kendinden imzalı bir sertifika. Tarayıcılar bu sertifika için güven uyarısı gösterir.

Üçüncü düzey, yapılandırılan sertifika eksik, süresi dolmuş ya da bozuk olsa bile PAM sunucusunun HTTPS üzerinden dinlemeye başlamasını sağlar. Bu durumda oturum açıp tarayıcı uyarısını kabul ederek geçerli bir sertifika yükleyebilirsiniz.

localhost.p12 anahtar deposu, yalnızca Yönetici Paneli’nde bir sertifika uygulanana kadar kullanılır. Kurulumdan sonra HTTPS sertifikasını Ayarlar > Web TLS Sertifikası sayfasında yönetin. Bkz. Web TLS Sertifikasını Yapılandırma.

HTTPS Sertifikası Gereksinimleri

Sertifikayı aşağıdaki koşulları sağlayacak şekilde planlayın:

Tarayıcılar Ed25519, DSA ve ECDSA P-521 anahtarlarıyla TLS el sıkışmasını tamamlayamadığı için Keycyte PAM bu anahtarları kabul etmez.

LDAP CA Dosyası

cacerts.pem, LDAPS ya da StartTLS üzerinden LDAP sunucularını doğrulamak için kullanılan CA sertifikalarını içerir. Dosyanın yolu, kurulum paketinin .env dosyasındaki LDAP_CA_CERT değişkeninde tanımlıdır (/app/cacerts.pem). PAM sunucusu bu sertifikaları sistem CA deposuna ekler.

LDAP sunucu sertifikalarını daha sonra, bir dizin bağlantısını yapılandırırken Yönetici Paneli’nden de ekleyebilirsiniz. Bkz. Yönetici Kılavuzu, Ayarlar > Doğrulama bölümü.

Uyarı

Üretim ortamında LDAP_INSECURE (KEYCYTE_LDAP_INSECURE_SKIP_VERIFY) değerini true olarak ayarlamayın. Bu ayar LDAP sunucu sertifikalarının doğrulanmasını devre dışı bırakır.

Lisanslama

Geçerli bir lisans zorunludur.

Keycyte PAM lisans anahtarı belirli bir sistem için düzenlenir. Kurulu sistemde bir Gizli Anahtar oluşturur, bunu Keycyte’a gönderir ve Yönetici Paneli’ne gireceğiniz bir lisans anahtarı alırsınız. Adımlar Lisansı Etkinleştirme konusunda açıklanmıştır.

Lisansın Sisteme Bağlanması

Ayarlar > Lisans sayfasında gösterilen Gizli Anahtar, PAM sunucusunun çalıştığı sistemi tanımlar. Anahtar aşağıdaki değerlerden hesaplanır:

Bir lisans anahtarını kaydettiğinizde Keycyte PAM, anahtarın aynı değerler için oluşturulup oluşturulmadığını denetler. Oluşturulmamışsa anahtar license key not generated for this system iletisiyle reddedilir.

Önemli

Gizli Anahtar’ı yalnızca sistem son halini aldıktan sonra oluşturun: son sunucu, son CPU sayısı ve kurulum betiğinin oluşturduğu PAM sunucusu kapsayıcısı. Bu değerlerden biri daha sonra değişirse eski değerler için oluşturulmuş lisans anahtarı artık kaydedilemez ve yeni bir lisans anahtarı edinmeniz gerekir.

Lisans Alanları

Bir lisans anahtarı kaydedildikten sonra Ayarlar > Lisans sayfası aşağıdaki alanları gösterir:

AlanAçıklama
Şirket AdıLisansın düzenlendiği şirket.
Oluşturma TarihiLisans anahtarının oluşturulduğu tarih.
Toplam KullanıcıLisansın kapsadığı kullanıcı sayısı.
VersiyonLisansın düzenlendiği ürün sürümü.

Lisanslı Özellikler

Lisans anahtarı ayrıca aşağıdaki özellikler için bayraklar taşır. Her bayrak anahtarda etkin ya da devre dışıdır.

ÖzellikAçıklama
Oturum kaydıAyrıcalıklı oturumların kaydedilmesi.
Dizin hizmetiLDAP / Active Directory dizinleriyle tümleştirme.
TACACS+TACACS+ sunucusu.
Parola yöneticisiHedef sistemlerde otomatik parola değiştirme ve doğrulama.

Kullanıcı sayısını ya da lisanslı özellikleri değiştirmek için Keycyte ile iletişime geçin. Size, mevcut lisansın yerini alan yeni bir lisans anahtarı iletilir.

Kurulum

Keycyte PAM; kapsayıcı (container) imajlarını, bir Docker Compose dosyasını, bir ortam dosyasını ve bir kurulum betiğini içeren bir kurulum paketi olarak teslim edilir. Kurulum betiği imajları yükler, DNS sunucularını sorar, ana makine dizinlerini hazırlar, kapsayıcıları başlatır ve ilk yönetici hesabını oluşturur.

Keycyte PAM’i kurmak için aşağıdaki adımları sırasıyla tamamlayın:

  1. Kurulum paketini hazırlayın: paketi sunucuya kopyalayın ve sertifika dosyalarını ekleyin.
  2. Kurulum betiğini çalıştırın.
  3. master hesabıyla ilk kez oturum açın ve hesabın parolasını değiştirin.

Kurulumdan sonra İlk Yapılandırma ile devam edin.

Başlamadan Önce

Kurulum Paketini Hazırlama

Kurulum betiğini çalıştırmadan önce kurulum paketini Keycyte PAM sunucusuna kopyalayın ve sertifika dosyalarını pakete ekleyin.

Paket İçeriği

Kurulum paketi, aşağıdaki dosyaları içeren tek bir klasördür:

DosyaAçıklama
install.shKurulum betiği.
docker-compose.ymlKapsayıcıları (container) tanımlayan Docker Compose dosyası.
.envKurulumun ayarlarını ve gizli değerlerini içeren ortam dosyası. Kurulum betiği, topladığı değerleri bu dosyaya ekler.
keycyte-pam.tar.gzPAM sunucusu, SSH proxy, Parola Yöneticisi, RADIUS sunucusu ve ağ geçidi (guacd) kapsayıcı imajlarını içeren arşiv.
initdb/10-master-user.sqlİlk yönetici hesabını (master) oluşturan betik.
localhost.p12HTTPS için PKCS#12 anahtar deposu. Paketle birlikte teslim edilebilir ya da kendi dosyanızı ekleyebilirsiniz.

Not

.env gizli bir dosyadır. Görmek için ls -la komutunu kullanın. .env, docker-compose.yml ya da keycyte-pam.tar.gz eksikse kurulum betiği durur.

Uyarı

.env dosyası veritabanı parolasını, saklanan gizli bilgilerin şifreleme anahtarını, oturum gizli anahtarını ve hizmet erişim anahtarlarını içerir. Dosyaya erişimi kısıtlayın (örneğin chmod 600 .env) ve sunucu dışında güvenli bir kopyasını saklayın. Şifreleme anahtarı olmadan veritabanındaki ve yedek dosyalarındaki şifreli verilerin şifresi çözülemez.

Paketi Hazırlama

Kurulum paketini hazırlamak için:

  1. Kurulum paketi klasörünü Keycyte PAM sunucusuna kopyalayın; örneğin kurulum betiğini çalıştıracak kullanıcının ana dizinine.

    Ana makine dizinleri (~/keycyte, ~/drive, ~/record), root kullanıcısının değil, sudo ./install.sh komutunu çalıştıran kullanıcının ana dizininde oluşturulur.

  2. Sertifika dosyalarını paket klasörüne, install.sh dosyasının yanına kopyalayın:

    • localhost.p12 — HTTPS için PKCS#12 anahtar deposu (teslim edilen dosya yerine kendi dosyanızı kullanıyorsanız);
    • cacerts.pem — TLS üzerinden LDAP için CA sertifikaları;
    • keycyte-ca.crt — isteğe bağlı.

    Ayrıntılar için bkz. Sertifikalar.

  3. Kendi localhost.p12 dosyanızı kullanıyorsanız parolasının .env dosyasındaki anahtar deposu parolasıyla (TLS_KEYSTORE_PASSWORD) eşleştiğinden emin olun.

  4. .env dosyasındaki saat dilimini (TZ) denetleyin; örneğin TZ=Europe/Istanbul.

  5. Sunucunun internet erişimi yoksa PostgreSQL imajını sunucuya yükleyin:

    docker load -i postgres-17.tar

    İmaj postgres:17 olarak kullanılabilir olmalıdır. Arşivi, internet erişimi olan bir makinede docker pull postgres:17 ve docker save -o postgres-17.tar postgres:17 komutlarıyla oluşturabilirsiniz.

  6. Kurulum betiğini çalıştırılabilir yapın:

    chmod +x install.sh

Paket hazırdır. Kurulum Betiğini Çalıştırma ile devam edin.

Kurulum Betiğini Çalıştırma

install.sh kurulum betiği, Keycyte PAM’i hazırlanan kurulum paketinden sunucuya kurar. Betik bir bash betiğidir ve paket klasöründen sudo ile çalıştırılmalıdır.

Başlamadan Önce

Kurulum Betiği Seçenekleri

SeçenekAçıklama
--dns <ip>Birincil DNS sunucusunu ayarlar ve DNS sorularını atlar. İkincil DNS sunucusu aynı adrese ayarlanır. --dns=<ip> biçimi de kabul edilir.
--skip-loadİmajların keycyte-pam.tar.gz dosyasından yüklenmesini atlar. Kurulum betiğini yeniden çalıştırdığınızda ve imajlar zaten yüklü olduğunda kullanın.
-h, --helpKullanım metnini gösterir.

Kurulum Betiğinin Yaptıkları

Kurulum betiği aşağıdaki adımları çalıştırır:

  1. Ön koşullar. Docker’ın kurulu olduğunu, Docker hizmetinin (daemon) çalıştığını ve erişilebilir olduğunu, Docker Compose’un kullanılabildiğini denetler. keycyte-pam.tar.gz, docker-compose.yml ve .env dosyalarının paket klasöründe bulunduğunu denetler.
  2. İmajlar. keycyte-pam.tar.gz arşivini açar ve içindeki her imajı docker load ile yükler. Ardından keycyte-pam:latest, keycyte-ssh-proxy:latest, keycyte-password-manager:latest, keycyte-radius-server:latest ve guacamole/guacd:latest imajlarının bulunduğunu denetler. Bu denetim --skip-load ile de çalışır.
  3. DNS. Birincil ve ikincil DNS sunucularını sorar ve .env dosyasına yazar (PRIMARY_DNS, SECONDARY_DNS).
  4. Docker grubu. PAM sunucusunun Docker soketini okuyabilmesi için sunucudaki docker grubunun kimliğini bulur ve .env dosyasına yazar (DOCKER_GID).
  5. Ana makine dizinleri. sudo komutunu çalıştıran kullanıcının ana dizininde ~/keycyte, ~/drive ve ~/record dizinlerini oluşturur, bu kullanıcıyı dizinlerin sahibi yapar ve yolları ile kullanıcı ve grup kimliklerini .env dosyasına yazar (KEYCYTE_BASE, KEYCYTE_DRIVE, KEYCYTE_RECORD, RUN_UID, RUN_GID). Kapsayıcılar bu kullanıcı ve grup kimliğiyle çalışır.
  6. Sertifikalar. localhost.p12, cacerts.pem ve keycyte-ca.crt dosyalarından mevcut olanları ~/keycyte dizinine kopyalar. localhost.p12 ya da cacerts.pem eksikse uyarı verir.
  7. Veritabanı denetimi. .env harici bir veritabanı sunucusunu IP adresiyle gösteriyorsa bu sunucunun portuna erişilebildiğini denetler.
  8. Başlatma. Tüm kapsayıcıları docker compose up -d ile başlatır, birkaç saniye bekler, kapsayıcıların durumunu ve çalışmayan kapsayıcıların son günlük satırlarını gösterir.
  9. Master hesabı. PostgreSQL hazır olana ve PAM sunucusu veritabanı şemasını oluşturana kadar bekler, ardından master hesabını oluşturmak için initdb/10-master-user.sql betiğini çalıştırır. Hesap zaten varsa değiştirilmez.

Kurulum Betiğini Çalıştırma

Kurulum betiğini çalıştırmak için:

  1. Sunucuda bir kabuk açın ve kurulum paketi klasörüne gidin.

  2. Kurulum betiğini çalıştırın:

    sudo ./install.sh

    DNS sunucusunu soru sorulmadan ayarlamak için:

    sudo ./install.sh --dns 10.0.0.53
  3. İstendiğinde birincil DNS sunucusunun IP adresini girin ve Enter tuşuna basın.

    İstem, .env dosyasındaki geçerli değeri köşeli parantez içinde gösterir. Bu değeri korumak için bir şey yazmadan Enter tuşuna basın. Kurulum betiği yalnızca IPv4 adresi kabul eder; değer geçerli değilse yeniden sorar.

  4. İstendiğinde ikincil DNS sunucusunun IP adresini girin ya da atlamak için Enter tuşuna basın.

    Atlarsanız ikincil DNS sunucusu birincil sunucuya ayarlanır.

  5. Kurulum betiğinin tamamlanmasını bekleyin.

    Kurulum betiği her kapsayıcının durumunu yazdırır. Tüm kapsayıcılar çalışıyorsa kurulumun tamamlandığını ve tüm hizmetlerin çalıştığını bildiren bir ileti yazdırır. Ardından master hesabı betiğini uygular ve günlükleri görüntüleme ile hizmetleri durdurma komutlarını yazdırır.

Keycyte PAM kurulmuştur. İlk Kez Oturum Açma ile devam edin.

Kurulumu Denetleme

Kurulumdan sonra kapsayıcıları denetlemek için paket klasöründe aşağıdaki komutu çalıştırın:

sudo docker compose --env-file .env -f docker-compose.yml ps

Tüm kapsayıcılar (pam, ssh-proxy, guacd, password-manager, radius, postgres-db) running durumunda olmalıdır.

PAM sunucusu günlüğünü izlemek için:

sudo docker compose --env-file .env -f docker-compose.yml logs -f pam

Master Hesabı Oluşturulmadıysa

PostgreSQL ya da veritabanı şeması zamanında hazır olmazsa kurulum betiği master hesabı betiğini atlar ve çalıştırılacak komutla birlikte bir uyarı yazdırır. Bu durumda PAM sunucusunun başlamasını bekleyin, ardından betiği paket klasöründe elle çalıştırın:

sudo docker exec -i postgres-db psql -U <db-user> -d <db-name> < initdb/10-master-user.sql

.env dosyasındaki veritabanı kullanıcısını ve veritabanı adını (DB_USER, DB_NAME) kullanın. Kurulum betiği komutu bu değerler doldurulmuş olarak yazdırır.

Kurulum Betiğini Yeniden Çalıştırma

Kurulum betiğini yeniden çalıştırabilirsiniz; örneğin eksik bir sertifika dosyasını ekledikten sonra. Kurulum betiği .env dosyasında yönettiği değerleri günceller; mevcut dizinleri ve mevcut master hesabını değiştirmez. İmajlar zaten yüklüyse --skip-load seçeneğini kullanın.

Not

Zorunlu bir sertifika dosyası eksikse dosyayı ~/keycyte dizinine kopyalayıp PAM sunucusunu yeniden başlatabilirsiniz:

sudo docker compose --env-file .env -f docker-compose.yml restart pam

Hizmetleri Durdurma

Kapsayıcıları durdurmak ve kaldırmak için paket klasöründe şu komutu çalıştırın:

sudo docker compose --env-file .env -f docker-compose.yml down

Veritabanı birimi ve ana makine dizinleri korunur. Hizmetleri yeniden başlatmak için sudo docker compose --env-file .env -f docker-compose.yml up -d komutunu çalıştırın.

İlk Kez Oturum Açma

Kurulum betiği, MASTER rolüne sahip tek bir yönetici hesabı (master) oluşturur. MASTER yöneticileri, tüm ayarlar dahil olmak üzere Yönetici Paneli’ne sınırsız erişime sahiptir. İlk kez oturum açmak ve ilk yapılandırmayı tamamlamak için bu hesabı kullanın.

master hesabının ilk parolası kurulum paketiyle birlikte iletilir.

Başlamadan Önce

Oturum Açma

İlk kez oturum açmak için:

  1. Bir web tarayıcısında https://<pam-address>/admin adresini açın; örneğin https://pam.example.com/admin.

    PAM sunucusu paketle teslim edilen anahtar deposunu ya da kendinden imzalı bir sertifikayı kullanıyorsa tarayıcı bir sertifika uyarısı gösterir. Doğru adresi açtığınızı denetleyin ve sayfaya devam edin. Sertifikayı sonraki bir adımda değiştirirsiniz.

  2. Oturum açma sayfasında Kullanıcı Adı alanına master yazın, Parola alanına ilk parolayı girin ve Giriş Yap düğmesine tıklayın.

    Yönetici Paneli yerine İstemci Paneli açılırsa https://<pam-address>/admin adresini yeniden açın. Yönetici Paneli Sistem Monitör sayfasıyla açılır.

    master ile ilk girişten sonra Sistem Monitör

  3. master hesabının parolasını değiştirin.

Uyarı

master hesabının ilk parolasını ilk oturum açışta değiştirin. İlk parola, paketten yapılan her kurulumda aynıdır; bu parolayı bilen herkes tam yetkiyle oturum açabilir.

İlk Oturum Açmadan Sonra

İlk yapılandırmayla devam edin:

  1. Lisansı etkinleştirin.
  2. Tarayıcıların Keycyte PAM’e güvenmesi için Web TLS sertifikasını yapılandırın.
  3. E-posta ve dizin hizmetlerini yapılandırın ve hizmet erişim anahtarlarını denetleyin.

İpucu

master hesabı için bir e-posta adresi tanımlayın ve e-posta bildirimlerini erkenden yapılandırın. Keycyte PAM, örneğin Web TLS sertifikasının süresi dolmak üzereyken MASTER yöneticilerine e-posta gönderir.

İlk Yapılandırma

İlk kez oturum açtıktan sonra, kullanıcılar Keycyte PAM ile çalışmaya başlamadan önce aşağıdaki ayarları yapılandırın. Bu ayarların tümü Yönetici Paneli’nin Ayarlar menüsünde bulunur ve MASTER rolü gerektirir.

Bu Bölümde

KonuAçıklama
Lisansı EtkinleştirmeGizli anahtarın oluşturulması ve lisans anahtarının girilmesi.
Web TLS Sertifikasını YapılandırmaHTTPS sertifikasının yüklenmesi, doğrulanması ve uygulanması; süre sonu uyarıları.
E-posta ve SMS’i YapılandırmaBildirimler ve tek kullanımlık parolalar için posta sunucusu ve SMS ağ geçidi.
Dizin Hizmetlerini BağlamaLDAP / Active Directory, RADIUS ve Microsoft Entra ID kimlik doğrulaması.
Hizmet Erişim AnahtarlarıKeycyte PAM hizmetlerinin birbirlerine kimlik doğrulamak için kullandığı anahtarlar.

Lisansı Etkinleştirme

Geçerli bir lisans zorunludur. Lisansı etkinleştirmek için sisteminizin Gizli Anahtar değerini Keycyte’a gönderir, bu sistem için düzenlenen lisans anahtarını alır ve lisans anahtarını Yönetici Paneli’ne girersiniz.

Lisansın sisteme nasıl bağlandığı ve neleri içerdiği için bkz. Lisanslama.

Başlamadan Önce

Gizli Anahtarı Alma

Sistemin gizli anahtarını almak için:

  1. Yönetici Paneli’nde Ayarlar > Lisans sayfasını açın.

  2. Gizli Anahtar düğmesine tıklayın.

    Gizli Anahtar iletişim kutusu bu sistemin anahtarını gösterir.

  3. Anahtarı kopyalayın ve Çıkış düğmesine tıklayın.

  4. Anahtarı sipariş bilgilerinizle birlikte Keycyte’a gönderin.

Size bu sistem için oluşturulmuş bir lisans anahtarı iletilir.

Lisans Anahtarını Girme

Lisans anahtarını girmek için:

  1. Ayarlar > Lisans sayfasını açın.
  2. Ekle düğmesine tıklayın.
  3. Lisans Ekle iletişim kutusunda lisans anahtarını Lisans Anahtarı alanına yapıştırın.
  4. Kaydet düğmesine tıklayın.

Lisans; Şirket Adı, Oluşturma Tarihi, Toplam Kullanıcı ve Versiyon bilgileriyle listede görünür.

Anahtar kaydedilemezse Yönetici Paneli bir Hata iletisi gösterir ve lisans listesi değişmez. En sık rastlanan nedenler şunlardır:

Lisansı Değiştirme ya da Kaldırma

Keycyte PAM aynı anda tek bir lisans tutar. Yeni bir lisans anahtarı kaydettiğinizde bu anahtar mevcut lisansın yerini alır.

Web TLS Sertifikasını Yapılandırma

Web TLS sertifikası, tarayıcıların İstemci Paneli’ni ya da Yönetici Paneli’ni açtığında gördüğü HTTPS sertifikasıdır. Sertifikayı Ayarlar > Web TLS Sertifikası sayfasında yönetirsiniz. Yeni bir sertifika, yeni bağlantılar için hemen geçerli olur; Keycyte PAM’i yeniden başlatmanız gerekmez.

Başlamadan Önce

İpucu

PFX/PKCS#12 dosyanız varsa önce PEM biçimine dönüştürün:

openssl pkcs12 -in cert.pfx -nokeys -out cert.pem
openssl pkcs12 -in cert.pfx -nocerts -nodes -out key.pem

Mevcut Sertifikayı Görüntüleme

Ayarlar > Web TLS Sertifikası sayfasını açın. Mevcut Sertifika kartı, PAM sunucusunun şu anda kullandığı sertifikayı gösterir:

AlanAçıklama
KaynakSertifikanın kaynağı: bu sayfada uygulanan bir sertifika, kurulumdaki PKCS#12 anahtar deposu ya da geçici, kendinden imzalı bir sertifika.
Kalan GünSertifikanın süresinin dolmasına kalan gün sayısı.
SubjectSertifikanın konusu (subject).
IssuerSertifikayı düzenleyen (issuer).
Geçerlilik Başlangıcı, Son KullanmaGeçerlilik süresi.
Subject Alt NamesSertifikanın kapsadığı DNS adları ve IP adresleri.
SHA256 Parmak İziSertifikanın parmak izi.
Yükleyen, Yükleme ZamanıSertifikayı uygulayan yönetici ve uygulama zamanı.

Ayrıntıların üzerindeki durum iletisi; örneğin sertifikanın sorunsuz olduğunu, süresinin yakında dolacağını, kendinden imzalı olduğunu ya da sunucunun kurulum anahtar deposuyla veya geçici, kendinden imzalı bir sertifikayla çalıştığını gösterir.

Yeni Sertifika Uygulama

Yeni bir sertifika uygulamak için:

  1. Ayarlar > Web TLS Sertifikası sayfasını açın.

  2. Yeni Sertifika Yükle kartında alanları doldurun. PEM metnini yapıştırabilir ya da bir alanın yanındaki Dosyadan yükle düğmesine tıklayarak içeriği dosyadan okuyabilirsiniz.

    AlanAçıklama
    Sertifika (PEM)Sunucu sertifikası. Tam zinciri (sunucu sertifikası ve ardından ara sertifikalar) yapıştırırsanız Keycyte PAM sunucu sertifikasını zincirden ayırır.
    Özel Anahtar (PEM)Sertifikanın şifrelenmemiş özel anahtarı.
    Ara Sertifika Zinciri (PEM, opsiyonel)Sertifika alanında yer almıyorsa CA’nızın ara sertifikaları.
  3. Doğrula düğmesine tıklayın.

    Doğrulama Önizlemesi, ayrıştırılan sertifikayı ve varsa uyarıları gösterir. Örneğin sertifika ile anahtar eşleşmiyorsa, sertifikanın süresi dolmuşsa ya da henüz geçerli değilse, anahtar türü desteklenmiyorsa veya zincir sertifikaya ait değilse doğrulama başarısız olur.

    Uyarılar sertifikanın uygulanmasını engellemez. Tipik uyarılar şunlardır: sertifika kendinden imzalıdır, süresi yakında dolacaktır, ana bilgisayar adını kapsamamaktadır, bir CA tarafından düzenlenmiş ancak zincir verilmemiştir ya da zincir, kök sertifikasına sunucunun güvenmediği dahili bir ara sertifikada sona ermektedir.

  4. Önizlemeyi denetleyin ve Sertifikayı Uygula düğmesine tıklayın.

  5. Web TLS Sertifikasını Uygula? iletişim kutusunda işlemi onaylayın.

Sertifika uygulanır. Mevcut tarayıcı oturumları etkilenmez; yeni bağlantılar yeni sertifikayı kullanır. Keycyte PAM, ara sertifika zincirini tarayıcılara kök sertifika olmadan, düzenleyen sırasına göre gönderir.

Önemli

Sertifikanın, kullanıcıların tarayıcıya yazdığı DNS adını kapsadığından ve kullanıcı iş istasyonlarının sertifikayı düzenleyen CA’ya güvendiğinden emin olun. Bir sertifikayı uyguladıktan sonra tarayıcılar bağlanamazsa bkz. Web TLS Sertifikasını Sıfırlama.

Yükleme Geçmişi

Yükleme Geçmişi tablosu, bu sayfada uygulanmış sertifikaları Subject, Issuer, Son Kullanma, Yükleyen ve Yükleme Zamanı bilgileriyle listeler. Aktif sütunu kullanımdaki sertifikayı işaretler.

Yedek Sertifikalar

Başlangıçta uygulanmış bir sertifika yüklenemezse PAM sunucusu kurulumdaki PKCS#12 anahtar deposuna (KEYCYTE_SERVER_TLS_KEYSTORE), o da yüklenemezse her başlangıçta yeniden üretilen geçici, kendinden imzalı bir sertifikaya geçer. Bu nedenle PAM sunucusu her zaman HTTPS sunar ve geçerli bir sertifika uygulamak için (tarayıcı uyarısını kabul ettikten sonra) oturum açabilirsiniz.

Uygulanmış bir sertifikanın süresi dolduğunda yedek sertifika, dinleyicinin çevrimiçi kalmasını sağlar. Yenilenmiş sertifikayı en kısa sürede yükleyin.

Süre Sonu Uyarıları

Keycyte PAM, etkin sertifikayı günde bir kez denetler ve sertifikanın süresinin dolmasına 30, 14, 7 ve 1 gün kaldığında tüm MASTER yöneticilerine e-posta gönderir. Her uyarı bir kez gönderilir; sonraki e-posta, sertifika bir sonraki eşiğe ulaştığında gönderilir.

E-posta uyarıları için şunlar gerekir:

Süre sonu uyarıları, kurulum anahtar deposu ya da kendinden imzalı yedek sertifika için değil, yalnızca bu sayfada uygulanan sertifikalar için gönderilir.

E-posta ve SMS'i Yapılandırma

Keycyte PAM; bildirimleri, tek kullanımlık parolaları ve raporları iletmek için e-posta ve SMS kullanır. Birçok işlev bunlara bağlı olduğundan e-posta ve SMS’i kurulumun hemen ardından yapılandırın:

Her ikisini de Yönetici Paneli’nde Ayarlar > Bildirim sayfasında yapılandırırsınız:

KartAmaç
Email AyarlarıPosta sunucusu bağlantısı ve gönderen. Email Test, girdiğiniz adrese bir test iletisi gönderir.
Sms AyarlarıSMS ağ geçidi (Sağlayıcı), gönderen ve kimlik bilgileri ile tek kullanımlık parola iletisinin metni. Telefon Test, girdiğiniz numaraya bir test iletisi gönderir.

Posta sunucusu ve SMS ağ geçidi kimlik bilgileri şifrelenmiş olarak saklanır.

Tüm alanların açıklaması için bkz. Yönetici Kılavuzu, Ayarlar > Bildirim bölümü.

Başlamadan Önce

Ayarları kaydettikten sonra iletimin çalıştığından emin olmak için bir test e-postası ve bir test SMS’i gönderin.

Dizin Hizmetlerini Bağlama

Keycyte PAM, kullanıcıların kimliğini yerel hesaplar yerine ya da yerel hesaplara ek olarak mevcut dizinlerinize karşı doğrulayabilir. Bağlantıları Yönetici Paneli’nde Ayarlar > Doğrulama sayfasında yapılandırırsınız:

KartAmaç
LDAP YapılandırmasıEtki alanı kullanıcılarının oturum açması, kullanıcı ve grup araması, eşitleme ve keşif için LDAP ya da Active Directory sunucuları. Active Directory hesaplarının parola rotasyonunda da kullanılır.
RADIUS YapılandırmasıRADIUS kullanıcılarının oturum açması için harici bir RADIUS sunucusu.
Entra ID YapılandırmasıMicrosoft hesabıyla oturum açmak için Microsoft Entra ID.

Tüm alanların ve kullanıcı eşitleme seçeneklerinin açıklaması için bkz. Yönetici Kılavuzu, Ayarlar > Doğrulama bölümü.

Not

Ayarlar > Doğrulama, Keycyte PAM’in istemci olarak kullandığı dizinleri yapılandırır. Keycyte PAM’in ağ cihazlarına sunduğu RADIUS ve TACACS+ sunucuları ise Ayarlar > Radius Sunucu ve Ayarlar > TACACS+ Sunucu sayfalarında yapılandırılır.

Kurulum Ön Koşulları

Bir dizin bağlantısını yapılandırmadan önce aşağıdakileri denetleyin:

Hizmet Erişim Anahtarları

Keycyte PAM hizmetleri birbirlerine erişim anahtarlarıyla kimlik doğrular. Her anahtar, bir erişim anahtarı kimliği (access key ID) ile bir gizli değerden (secret) oluşan bir çifttir. Bir hizmet, başka bir hizmete gönderdiği her isteği gizli değerle oluşturulan HMAC-SHA256 HTTP imzasıyla imzalar; isteği alan hizmet imzayı aynı çiftle doğrular.

Erişim anahtarları kapsayıcıların (container) ortamında, kurulum paketinin .env dosyasında tanımlanır. PAM sunucusu anahtarları başlangıçta okur ve bellekte tutar. Erişim anahtarları Yönetici Paneli’nden oluşturulmaz ya da değiştirilmez.

Kurulumdaki Erişim Anahtarları

AnahtarİmzalayanDoğrulayan.env değişkeniPAM sunucusundaki değişkenDiğer hizmetteki değişken
SSH proxy anahtarıSSH proxyPAM sunucusuSSH_PROXY_ACCESS_KEY_ID, SSH_PROXY_ACCESS_KEY_SECRETKEYCYTE_SSH_PROXY_ACCESS_KEY_ID, KEYCYTE_SSH_PROXY_ACCESS_KEY_SECRETKEYCYTE_ACCESS_KEY_ID, KEYCYTE_ACCESS_KEY_SECRET (SSH proxy)
RADIUS sunucusu anahtarıRADIUS sunucusuPAM sunucusuRADIUS_ACCESS_KEY_ID, RADIUS_ACCESS_KEY_SECRETKEYCYTE_RADIUS_SERVER_ACCESS_KEY_ID, KEYCYTE_RADIUS_SERVER_ACCESS_KEY_SECRETKEYCYTE_ACCESS_KEY_ID, KEYCYTE_ACCESS_KEY_SECRET (RADIUS sunucusu)
PAM anahtarıPAM sunucusuSSH proxyPAM_ACCESS_KEY_ID, PAM_ACCESS_KEY_SECRETKEYCYTE_PAM_ACCESS_KEY_ID, KEYCYTE_PAM_ACCESS_KEY_SECRETKEYCYTE_PAM_ACCESS_KEY_ID, KEYCYTE_PAM_ACCESS_KEY_SECRET (SSH proxy)
RDP proxy anahtarıPAM sunucusuRDP proxyRDP_PROXY_ACCESS_KEY_ID, RDP_PROXY_ACCESS_KEY_SECRETKEYCYTE_RDP_PROXY_ACCESS_KEY_ID, KEYCYTE_RDP_PROXY_ACCESS_KEY_SECRETKEYCYTE_ACCESS_KEY_ID, KEYCYTE_ACCESS_KEY_SECRET (RDP proxy)

docker-compose.yml dosyası aynı .env değerini her iki tarafa da aktarır; bu nedenle değeri yalnızca .env dosyasında değiştirdiğiniz sürece çift her zaman eşleşir.

Bir anahtar tanımlı değilse PAM sunucusu yine de başlar ve ilgili hizmet için bir uyarı günlüğe yazar. İlgili hizmet kimlik doğrulayamaz: örneğin SSH proxy anahtarı olmadan yerel SSH ve web terminali oturumları açılamaz, RDP proxy anahtarı olmadan yerel RDP ile başlatma devre dışı kalır.

Not

Hizmet erişim anahtarları, uygulamaların Secrets API üzerinden gizli bilgileri okumak için kullandığı hizmet kimliği API anahtarlarından farklıdır. Hizmet kimliği API anahtarları Yönetici Paneli’nde kullanıcı bazında yönetilir. Bkz. Yönetici Kılavuzu, Kullanıcılar bölümü.

Erişim Anahtarlarını Görüntüleme

PAM sunucusunun yüklediği erişim anahtarlarını görüntülemek için:

  1. Yönetici Paneli’nde Ayarlar > Servisler sayfasını açın.

  2. Servis AccessKey’leri kartını bulun.

    Kart, her Servis için Access Key ID değerini ve Gizli Anahtar değerinin son dört karakterini gösterir. Anahtarı olmayan hizmetler tanımlı değil olarak gösterilir.

Erişim anahtarları kurulumun .env dosyasında saklanır. Bir anahtarı yenilemek için aşağıdaki yordamı izleyin.

Erişim Anahtarını Yenileme

Gizli değerin ifşa olduğundan şüpheleniyorsanız ya da güvenlik politikanız gerektiriyorsa erişim anahtarını yenileyin.

Bir erişim anahtarını yenilemek için:

  1. Sunucuda, kurulum paketi klasöründeki .env dosyasını açın.

  2. Anahtarın gizli değeri için yeni bir değer belirleyin; örneğin openssl rand -hex 32 ile oluşturulmuş rastgele bir değer. İsterseniz yeni bir erişim anahtarı kimliği de belirleyebilirsiniz.

  3. Dosyayı kaydedin.

  4. Kapsayıcıların yeni değerleri okuması için paket klasöründe kapsayıcıları yeniden oluşturun:

    sudo docker compose --env-file .env -f docker-compose.yml up -d

Docker Compose, ortamı değişen kapsayıcıları yeniden oluşturur. Kapsayıcılar başladıktan sonra yeni anahtar kullanılır.

Uyarı

Kapsayıcıların yeniden oluşturulması, bu kapsayıcılar üzerinden yürüyen etkin oturumları keser. Anahtarları bir bakım penceresinde yenileyin.

Uyarı

Erişim anahtarlarının gizli değerlerini hiçbir zaman destek kayıtlarına, e-postalara ya da sohbetlere kopyalamayın. Gizli değere sahip olan herkes dahili API’yi o hizmet adına çağırabilir.

Yüksek Erişilebilirlik

Bir düğüm kullanılamaz duruma geldiğinde kullanıcıların çalışmaya devam edebilmesi için birden fazla Keycyte PAM düğümü çalıştırabilirsiniz. Düğümler aynı PostgreSQL veritabanını kullanır ve bir yük dengeleyicinin arkasına yerleştirilir. Düğümlerden biri ana düğümdür (master); diğerleri replika düğümlerdir.

Ana ve Replika Düğümler

Her düğüm kullanıcılara aynı şekilde hizmet verir. Fark zamanlanmış işlerdedir:

İşAna düğümReplika düğüm
Zamanlanmış parola rotasyonuÇalıştırırÇalıştırmaz
Zamanlanmış raporlarÇalıştırırÇalıştırmaz
Zamanlanmış yedeklemelerÇalıştırırÇalıştırmaz

Bu sayede tüm düğümler veritabanını paylaşsa da her zamanlanmış iş yalnızca bir kez çalışır. Ana düğüm olarak ayarlanmayan her düğüm replikadır. Her düğüm, başlangıçta ana düğüm mü yoksa replika düğüm olarak mı çalıştığını günlüğüne yazar.

Önemli

Tam olarak bir düğümü ana düğüm olarak ayarlayın. Hiçbir düğüm ana düğüm değilse zamanlanmış parola rotasyonu, raporlar ve yedeklemeler çalışmaz. Birden fazla düğüm ana düğümse zamanlanmış işler birden fazla kez çalışabilir.

Ana düğüm ayarı her düğüm için ayrı olarak, düğümün uygulama dizinindeki master dosyasında saklanır (ana makinede ~/keycyte/master, PAM sunucusu kapsayıcısında /app/master).

Not

“Ana düğüm” (master node), bir Keycyte PAM düğümünün özelliğidir. MASTER yönetici rolüyle ilgisi yoktur.

Gereksinimler

Tüm düğümler:

Yük dengeleyici:

Bazı kısa ömürlü veriler her düğümün belleğinde tutulduğu ve düğümler arasında paylaşılmadığı için oturum yakınlığı gereklidir: bağlantı belirteçleri, MFA tek kullanımlık parolaları, etkin oturum ve izleyici kayıtları. Oturum yakınlığı olmadan oturum açma, MFA doğrulaması ya da paylaşılan bir oturuma katılma işlemleri aralıklı olarak başarısız olabilir.

Ana Düğümü Ayarlama

Bir düğümü ana düğüm olarak ayarlamak için:

  1. O düğümün Yönetici Paneli’nde MASTER rolüyle oturum açın. Doğru düğüme ulaşmak için yük dengeleyici adresini değil, düğümün kendi adresini kullanın.

  2. Ayarlar > Replikasyon sayfasını açın.

    Replikasyon Ayarları kartı, bağlı olduğunuz düğümün Sunucu Adı, Ip Adres ve Mac Adres bilgilerini gösterir.

  3. Master anahtarını açın.

    Master mode enabled iletisi görüntülenir. Düğüm, bir sonraki zamanlayıcı döngüsünden itibaren zamanlanmış işleri çalıştırır.

Bir düğümü replika yapmak için o düğümde Master anahtarını kapatın.

İpucu

Ana düğümü değiştirmek için önce eski ana düğümde Master anahtarını kapatın, ardından yeni düğümde açın.

Replike Edilmiş Sunucular

Replike Edilmiş Sunucular kartı diğer Keycyte PAM düğümlerini listeler. Kayıt eklemek için Ekle düğmesine tıklayın, Tip, Adres, Durum ve Master alanlarını doldurun, ardından Kaydet düğmesine tıklayın.

Yedekleme ve Geri Yükleme

Keycyte PAM, veritabanının uygulama düzeyinde yedeklerini oluşturur: sunucular, kasa kayıtları, kullanıcılar, roller, politikalar, ayarlar ve isteğe bağlı olarak günlükler. Yedeklemeyi Ayarlar > Yedekleme sayfasında yapılandırırsınız. Bu sayfayı yalnızca MASTER yöneticileri açabilir.

Yedeğin İçeriği

Yedek, .keycyte uzantılı tek bir şifreli dosyadır (örneğin backup_20261101_020000.keycyte). Keycyte PAM veritabanı içeriğini serileştirir, sıkıştırır ve kurulumun şifreleme anahtarıyla (KEYCYTE_KEYSTORE_KEY_HEX) şifreler.

Dahil olanlarDahil olmayanlar
Sunucular, Parola Kasası ve Özel Kasa kayıtları, parola geçmişiOturum kayıtları (~/record)
Kullanıcılar, roller, yetki profilleri, politikalar, erişim denetimi kuralları, etiketlerAktarılan dosyalar (~/drive)
Ayarlar (kimlik doğrulama, bildirim, bağlantı, syslog, RADIUS ve TACACS+ sunucusu, lisans)Kurulum paketindeki sertifika dosyaları ve .env
Yedekleme yapılandırmasında Günlükler seçiliyse günlüklerKapsayıcı (container) imajları

Uyarı

Bir yedek yalnızca aynı şifreleme anahtarını kullanan bir kuruluma geri yüklenebilir. .env dosyasının ya da en azından KEYSTORE_KEY_HEX değerinin güvenli bir kopyasını yedeklerden ayrı olarak saklayın. Anahtar olmadan yedeklerin şifresi çözülemez.

~/record, ~/drive ve kurulum paketi klasörünü kendi dosya yedekleme araçlarınızla yedekleyin.

Yedek Dosyalarının Saklandığı Yer

Her yedek önce uygulama dizinindeki backups klasörüne yazılır: ana makinede ~/keycyte/backups (PAM sunucusu kapsayıcısında /app/backups). Yedekleme yapılandırması SFTP kullanıyorsa dosya ardından SFTP sunucusuna kopyalanır.

İpucu

Yedek dosyaları için disk alanı planlayın: ~/keycyte/backups içindeki eski dosyaları düzenli olarak arşivleyin ya da kaldırın.

Yedeklemeyi Yapılandırma

Bir yedeklemeyi yapılandırmak için:

  1. Yönetici Paneli’nde Ayarlar > Yedekleme sayfasını açın.

  2. Ekle düğmesine tıklayın.

  3. Yedekleme Ayarları iletişim kutusunda alanları doldurun:

    AlanAçıklama
    MetotSFTP ya da SMB.
    AdresYedekleme sunucusunun ana bilgisayar adı ya da IP adresi.
    PortSFTP sunucusunun SSH portu. Yalnızca SFTP için gösterilir.
    Dosya YoluYedekleme sunucusunda dosyanın saklandığı klasör.
    Kullanıcı AdıYedekleme sunucusundaki kullanıcı adı.
    ParolaKullanıcının parolası. SFTP için bunun yerine özel anahtar kullanabilirsiniz.
    Özel AnahtarSFTP kimlik doğrulaması için özel anahtar. Yalnızca SFTP için gösterilir.
    PassphraseVarsa özel anahtarın parolası. Yalnızca SFTP için gösterilir.
    PeriyodZamanlanmış yedeklemelerin dakika cinsinden aralığı. 0 ya da boş değer, bu yapılandırma için zamanlanmış yedeklemeyi devre dışı bırakır.
    AçıklamaYapılandırmayı tanımanıza yardımcı olan serbest metin.
    GünlüklerGünlük tablolarını yedeğe dahil eder. Günlük içeren yedekler çok daha büyük olabilir.
    DurumYapılandırmayı etkinleştirir. Zamanlanmış yedeklemeler yalnızca etkin yapılandırmalar için çalışır.
  4. Kaydet düğmesine tıklayın.

Yapılandırma; Metot, Adres, Dosya Yolu ve Durum bilgileriyle listede görünür.

Zamanlanmış Yedeklemeler

Yedekleme zamanlayıcısı etkin yapılandırmaları dakikada bir denetler ve bir yapılandırmanın son çalışmasından bu yana Periyod süresi geçtiğinde yedeklemeyi başlatır. Bir yapılandırmanın ilk zamanlanmış yedeklemesi, PAM sunucusu başladıktan kısa bir süre sonra çalışır.

Zamanlanmış yedeklemeler yalnızca ana düğümde çalışır. Bkz. Yüksek Erişilebilirlik.

Hemen Yedekleme Çalıştırma

Bir yedeklemeyi hemen çalıştırmak için yapılandırmanın Aksiyon sütunundaki çalıştırma simgesine tıklayın.

Yedek, o yapılandırmanın ayarlarıyla oluşturulur. İşlem tamamlandığında Başarılı iletisi görüntülenir.

Yedeği İndirme

Bir yedek dosyasını indirmek için Aksiyon sütunundaki indirme simgesine tıklayın.

Yedek dosyalarını doğrudan ana makinedeki ~/keycyte/backups dizininden de kopyalayabilirsiniz.

Yedeği Geri Yükleme

Geri yükleme, Keycyte PAM’in veritabanı içeriğini yedek dosyasının içeriğiyle değiştirir.

Uyarı

Geri yükleme, yedeğin içerdiği tablolardaki tüm mevcut verileri siler ve ardından yedekteki verileri ekler. Yedek oluşturulduktan sonra yapılan değişiklikler kaybolur. Geri yüklemeden önce yeni bir yedek oluşturun.

Başlamadan Önce

Bir yedeği geri yüklemek için:

  1. Ayarlar > Yedekleme sayfasını açın.

  2. Restore düğmesine tıklayın.

  3. .keycyte yedek dosyasını seçin.

    Geri yükleme, dosyayı seçtiğiniz anda başlar. İşlem tamamlandığında Başarılı iletisi görüntülenir.

  4. Oturumu kapatıp yeniden açın ve geri yüklenen verileri denetleyin.

Yetki profilleri kullanıma girmeden önce alınmış bir yedek geri yüklenirse Keycyte PAM, geri yüklemeden sonra her ADMIN hesabına yerleşik tam yetki profilini atar.

Yapılandırma Başvurusu

PAM sunucusu ayarlarını ortam değişkenlerinden ve isteğe bağlı olarak bir config.yaml dosyasından okur. Kurulum paketinden yapılan bir kurulumda ayarlar, docker-compose.yml dosyasının pam kapsayıcısına (container) aktardığı ve çoğunlukla .env dosyasından gelen ortam değişkenleridir.

Ayarların Okunması

Kurulum paketinden yapılan bir kurulumda bir ayarı değiştirmek için değeri .env dosyasında (ya da ayar orada tanımlıysa docker-compose.yml dosyasında) düzenleyin ve paket klasöründe kapsayıcıları yeniden oluşturun:

sudo docker compose --env-file .env -f docker-compose.yml up -d

Uyarı

.env dosyası gizli değerler içerir. Gizli değerleri hiçbir zaman destek kayıtlarına, belgelere ya da sohbetlere kopyalamayın ve dosyanın güvenli bir kopyasını saklayın.

Aşağıdaki tablolarda Varsayılan, PAM sunucusunun yerleşik varsayılan değeridir. Paket, kurulum paketinin ayarladığı değeri (farklı olduğu durumlarda) gösterir. Zorunlu olarak işaretlenen ayarlar tanımlanmalıdır; PAM sunucusu bunlar olmadan başlamaz.

Sunucu ve TLS

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_SERVER_PORTserver.port8443Kapsayıcı içindeki HTTPS portu. Paket: 443.
KEYCYTE_SERVER_TLS_ENABLEDserver.tls.enabledtrueHTTPS sunar.
KEYCYTE_SERVER_TLS_KEYSTOREserver.tls.keystoreboşYönetici Paneli’nde sertifika uygulanmadığında kullanılan PKCS#12 anahtar deposunun yolu. Paket: /app/localhost.p12 (TLS_KEYSTORE_PATH değişkeninden).
KEYCYTE_SERVER_TLS_PASSWORDserver.tls.passwordboşPKCS#12 anahtar deposunun parolası (TLS_KEYSTORE_PASSWORD değişkeninden).
KEYCYTE_SERVER_TLS_SUPPRESS_CLIENT_ERRORSserver.tls.suppress_client_errorstrueİstemcilerden kaynaklanan TLS el sıkışma hatalarını günlüğe yazmaz.
KEYCYTE_SERVER_CORS_ALLOWED_ORIGINSserver.cors.allowed_originsboşAPI’yi başka bir siteden çağırmasına izin verilen kaynakların (origin) virgülle ayrılmış listesi (örneğin https://portal.example.com). Boş değer, çapraz kaynaklı istekleri devre dışı bırakır. * kullanılamaz.

Veritabanı

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_DATABASE_HOSTdatabase.host127.0.0.1PostgreSQL sunucusu. Paket: postgres (veritabanı kapsayıcısı), DB_HOST değişkeninden.
KEYCYTE_DATABASE_PORTdatabase.port5432PostgreSQL portu (DB_PORT değişkeninden).
KEYCYTE_DATABASE_NAMEdatabase.namekeycytedbVeritabanı adı (DB_NAME değişkeninden).
KEYCYTE_DATABASE_USERNAMEdatabase.usernameboşZorunlu. Veritabanı kullanıcısı (DB_USER değişkeninden).
KEYCYTE_DATABASE_PASSWORDdatabase.passwordboşZorunlu. Veritabanı parolası (DB_PASSWORD değişkeninden).
KEYCYTE_DATABASE_SSLMODEdatabase.sslmodedisablePostgreSQL SSL modu; örneğin disable, require, verify-full (DB_SSLMODE değişkeninden).
KEYCYTE_DATABASE_MAX_OPEN_CONNSdatabase.max_open_conns25PAM düğümü başına en fazla açık bağlantı sayısı.
KEYCYTE_DATABASE_MAX_IDLE_CONNSdatabase.max_idle_conns10PAM düğümü başına en fazla boşta bağlantı sayısı.

İpucu

Birden fazla düğümlü bir kurulumda bağlantı sınırları her düğüm için ayrı ayrı uygulanır. Toplamın PostgreSQL’in max_connections ayarının altında kaldığından emin olun.

Şifreleme Anahtarı

Şifreleme anahtarı; veritabanında saklanan gizli bilgileri (kasa parolaları, anahtarlar, sağlayıcı kimlik bilgileri), yedek dosyalarını ve oturum kayıtlarını korur. Zorunlu: aşağıdaki kaynaklardan tam olarak birini tanımlayın. PAM sunucusu anahtar olmadan başlamaz.

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_KEYSTORE_KEY_HEXkeystore.key_hexboşOnaltılık dizge olarak AES anahtarı. Paket: KEYSTORE_KEY_HEX değişkeninden.
KEYCYTE_KEYSTORE_KEY_BASE64keystore.key_base64boşBase64 dizgesi olarak AES anahtarı.
KEYCYTE_KEYSTORE_KEY_FILEkeystore.key_fileboşHam anahtarı (16, 24 ya da 32 bayt) içeren dosyanın yolu.
KEYCYTE_KEYSTORE_PATHkeystore.pathboşAnahtarı tutan Java PKCS#12 anahtar deposunun yolu (önceki sürümlerden taşınan anahtarlar için).
KEYCYTE_KEYSTORE_PASSWORDkeystore.passwordboşkeystore.path içindeki anahtar deposunun parolası.
KEYCYTE_KEYSTORE_ALIASkeystore.aliaskeycyteAnahtar deposundaki anahtarın takma adı (alias).

Birden fazla kaynak tanımlıysa PAM sunucusu tablodaki sıraya göre ilkini kullanır.

Uyarı

Mevcut bir kurulumun şifreleme anahtarını hiçbir zaman değiştirmeyin. Eski anahtarla şifrelenmiş verilerin (yedekler ve kayıtlar dahil) şifresi artık çözülemez. Bir kurulumdaki tüm düğümler aynı anahtarı kullanmalıdır.

Oturum

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_SESSION_SECRET_KEYsession.secret_keyyerleşik değerZorunlu. Oturum tanımlama bilgilerini (cookie) imzalayan gizli değer. En az 32 bayt uzunluğunda olmalı ve yerleşik değerden farklı olmalıdır; aksi halde PAM sunucusu başlamaz. openssl rand -base64 48 ile oluşturabilirsiniz. Paket: SESSION_SECRET_KEY değişkeninden.
KEYCYTE_SESSION_TIMEOUTsession.timeout30mWeb oturumunun boşta kalma zaman aşımı. Her istek süreyi uzatır. Paket: SESSION_TIMEOUT değişkeninden.
KEYCYTE_SESSION_COOKIE_NAMEsession.cookie_nameKEYCYTESESSIONOturum tanımlama bilgisinin temel adı. Ana bilgisayar öneki etkinken tanımlama bilgisi __Host-<name> olarak gönderilir. Paket: SESSION_COOKIE_NAME değişkeninden.
KEYCYTE_SESSION_USE_HOST_PREFIXsession.use_host_prefixtrueTanımlama bilgisi adına __Host- önekini ekler. Bu, güvenli tanımlama bilgisini zorunlu kılar ve tanımlama bilgisi etki alanını temizler.
KEYCYTE_SESSION_COOKIE_SECUREsession.cookie_securetrueTanımlama bilgisini yalnızca HTTPS üzerinden gönderir.
KEYCYTE_SESSION_COOKIE_SAME_SITEsession.cookie_same_sitelaxSameSite özniteliği: lax, strict ya da none. none, güvenli tanımlama bilgisi gerektirir. Paket: none.
KEYCYTE_SESSION_COOKIE_DOMAINsession.cookie_domainboşTanımlama bilgisi etki alanı. Ana bilgisayar öneki etkinken dikkate alınmaz.
KEYCYTE_SESSION_SINGLE_DEVICEsession.single_devicefalseKullanıcı başına yalnızca bir etkin web oturumuna izin verir. Yeni bir oturum açma, kullanıcının diğer tüm oturumlarını kapatır.

MFA Kilitleme

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_MFA_MAX_FAILED_ATTEMPTSmfa.max_failed_attempts5Hesabın kilitlenmesine yol açan başarısız MFA doğrulaması sayısı.
KEYCYTE_MFA_LOCKOUT_DURATION_MINmfa.lockout_duration_min15Çok sayıda başarısız MFA doğrulamasından sonra hesabın kilitli kaldığı süre (dakika). Tüm kullanıcı türleri için geçerlidir.

Dosyalar, Kayıtlar ve Ağ Geçidi

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_UPLOAD_MAX_FILE_SIZEupload.max_file_size4GBBir tarayıcı oturumunda aktarılan dosyanın en büyük boyutu.
KEYCYTE_UPLOAD_STORAGE_PATHupload.storage_path/driveAktarılan dosyaların saklandığı klasör. Paket: /app/uploads.
KEYCYTE_RECORDING_PATHrecording.path/recordingsOturum kayıtlarının klasörü. Paket: /record (~/record ana makine dizini).
KEYCYTE_GATEWAY_ADDRESSgateway.address127.0.0.1Ağ geçidinin (guacd) adresi. Paket: guacd.
KEYCYTE_GATEWAY_PORTgateway.port4822Ağ geçidinin portu.

LDAP TLS

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_LDAP_CA_CERTldap.ca_cert/app/certs/ldap-ca.pemTLS üzerinden LDAP için güvenilen CA sertifikalarını içeren PEM dosyası. Yönetici Paneli’nden güvenilir olarak eklenen sertifikalar da burada saklanır. Paket: /app/cacerts.pem (LDAP_CA_CERT değişkeninden).
KEYCYTE_LDAP_INSECURE_SKIP_VERIFYldap.insecure_skip_verifyfalseLDAP sunucu sertifikalarının doğrulanmasını atlar. Üretim ortamında kullanmayın (LDAP_INSECURE değişkeninden).

Parola Yöneticisi kapsayıcısı da aynı iki değeri LDAP_CA_CERT ve LDAP_INSECURE_SKIP_VERIFY olarak alır.

Proxy’ler ve Erişim Anahtarları

Bu değişkenlerin config.yaml anahtarı yoktur; ortam değişkeni olarak tanımlayın. Anlamları ve yenilenmeleri için bkz. Hizmet Erişim Anahtarları.

DeğişkenVarsayılanAçıklama
KEYCYTE_SSH_PROXY_ACCESS_KEY_ID, KEYCYTE_SSH_PROXY_ACCESS_KEY_SECRETboşSSH proxy erişim anahtarı.
KEYCYTE_RADIUS_SERVER_ACCESS_KEY_ID, KEYCYTE_RADIUS_SERVER_ACCESS_KEY_SECRETboşRADIUS sunucusu erişim anahtarı.
KEYCYTE_PAM_ACCESS_KEY_ID, KEYCYTE_PAM_ACCESS_KEY_SECRETboşPAM sunucusunun SSH proxy’ye karşı kullandığı erişim anahtarı.
KEYCYTE_SSH_PROXY_WS_URLws://ssh-proxy:8443SSH proxy’nin dahili WebSocket adresi.
KEYCYTE_DOCKER_PROJECTboşDocker Compose proje adı. Tanımlıysa Ayarlar > Servisler yalnızca bu projenin kapsayıcılarını listeler; tanımlı değilse ana makinedeki tüm kapsayıcıları listeler.
DOCKER_HOST—Ayarlar > Servisler sayfasının kullandığı Docker soketi. Paket: unix:///var/run/docker.sock.

Yerel RDP ile Başlatma

Bu değişkenlerin config.yaml anahtarı yoktur. Yerel RDP ile başlatma, URL, genel adres ve erişim anahtarının tümü tanımlandığında etkinleşir.

DeğişkenVarsayılanAçıklama
KEYCYTE_RDP_PROXY_URLboşRDP proxy denetim API’sinin dahili adresi. Paket: http://rdp-proxy:7171.
KEYCYTE_RDP_PROXY_PUBLIC_ADDRESSboşKullanıcı iş istasyonlarının RDP proxy’ye eriştiği ve .rdp dosyasına yazılan host:port değeri; örneğin pam.example.com:3389.
KEYCYTE_RDP_PROXY_ACCESS_KEY_ID, KEYCYTE_RDP_PROXY_ACCESS_KEY_SECRETboşRDP proxy erişim anahtarı.
KEYCYTE_RDP_LAUNCH_TOKEN_TTL_SECS120Tek kullanımlık bağlantı belirtecinin saniye cinsinden geçerlilik süresi.

Günlük Kaydı

Değişkenconfig.yaml anahtarıVarsayılanAçıklama
KEYCYTE_LOG_LEVELlog.levelinfoBaşlangıçtaki günlük düzeyi: debug, info, warn ya da error. Ayarlar > Genel sayfasında (Günlük Seviyesi) kaydedilen günlük düzeyi bu değeri geçersiz kılar ve yeniden başlatma gerekmeden değiştirilebilir.
KEYCYTE_LOG_FORMATlog.formattexttext (okunabilir) ya da json (günlük toplayıcılar için).
KEYCYTE_LOG_SOURCElog.sourcefalseHer günlük satırına kaynak dosyayı ve satır numarasını ekler.

Kurulum Paketi Değişkenleri

Kurulum paketinin .env dosyası, PAM sunucusu tarafından doğrudan değil, docker-compose.yml ve diğer kapsayıcılar tarafından kullanılan değişkenleri de içerir.

DeğişkenTanımlayanAçıklama
PRIMARY_DNS, SECONDARY_DNSKurulum betiğiTüm kapsayıcıların DNS sunucuları.
DOCKER_GIDKurulum betiğiAna makinedeki docker grubunun kimliği.
KEYCYTE_BASE, KEYCYTE_DRIVE, KEYCYTE_RECORDKurulum betiği~/keycyte, ~/drive, ~/record ana makine dizinleri.
RUN_UID, RUN_GIDKurulum betiğiKapsayıcıların çalıştığı kullanıcı ve grup kimliği.
TZPaketTüm kapsayıcıların saat dilimi.
SSH_IDLE_TIMEOUTPaketSSH proxy oturumlarının boşta kalma zaman aşımı.
DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, DB_SSLMODEPaketPAM sunucusunun ve SSH proxy’nin veritabanı bağlantısı.

Sorun Giderme

Bu konu, bir sorunla ilgili bilgi toplamayı ve sık karşılaşılan kurulum durumlarını çözmeyi anlatır. Bu konudaki docker compose komutlarını kurulum paketi klasöründe çalıştırın.

Hizmet Günlüklerini Görüntüleme

Yönetici Paneli’nde

Ayarlar > Servisler sayfası Keycyte PAM kapsayıcılarını (container) Container, Servis, Durum, CPU, Bellek ve Çalışma Süresi bilgileriyle listeler. Bu sayfayı yalnızca MASTER yöneticileri açabilir.

Bir kapsayıcının günlüğünü görüntülemek için:

  1. Yönetici Paneli’nde Ayarlar > Servisler sayfasını açın.
  2. Keycyte Servisleri tablosunda, kapsayıcının satırındaki Loglar düğmesine tıklayın.

Kapsayıcının en son günlük satırları görüntülenir.

Aynı tablodan kapsayıcıları Yeniden Başlat, Durdur ve Başlat düğmeleriyle yönetebilirsiniz. Bir kapsayıcıyı durdurmak ya da yeniden başlatmak, o kapsayıcının yürüttüğü oturumları keser. PAM sunucusu için yalnızca Yeniden Başlat kullanılabilir.

Sayfa Docker soketi erişilemiyor iletisini gösteriyorsa Docker soketi PAM sunucusu kapsayıcısına bağlanmamıştır. Kurulum paketi /var/run/docker.sock soketini salt okunur olarak bağlar; docker-compose.yml dosyasının bu bağlamayı hâlâ içerdiğini ve .env dosyasındaki DOCKER_GID değerinin ana makinedeki docker grubunun kimliğiyle eşleştiğini denetleyin.

Ana Makinede

Bir hizmetin günlüklerini ana makinede görüntülemek için docker compose logs komutunu kullanın:

sudo docker compose --env-file .env -f docker-compose.yml logs --tail 200 pam

Günlüğü sürekli izlemek için -f ekleyin. Hizmet adları pam, ssh-proxy, guacd, password-manager, radius ve postgres şeklindedir.

Her kapsayıcı, her biri en fazla 5 MB olan en fazla üç günlük dosyası tutar.

Günlük Düzeyini Değiştirme

Daha fazla ayrıntı almak için Ayarlar > Genel sayfasında (Günlük Seviyesi) günlük düzeyini debug olarak ayarlayın. Değişiklik yeniden başlatma gerekmeden hemen geçerli olur. debug düzeyi çok sayıda günlük satırı ürettiğinden, gerekli bilgiyi topladıktan sonra düzeyi yeniden info olarak ayarlayın.

Başlangıçtaki günlük düzeyini KEYCYTE_LOG_LEVEL ile de ayarlayabilirsiniz. Bkz. Yapılandırma Başvurusu.

Web TLS Sertifikasını Sıfırlama

Ayarlar > Web TLS Sertifikası sayfasında uygulanan bir sertifika tarayıcıların bağlanmasını engelliyorsa (örneğin HSTS ile birlikte yanlış ana bilgisayar adı ya da istemcilerin güvenmediği bir sertifika) sertifikayı komut satırından devre dışı bırakabilirsiniz. Bu durumda PAM sunucusu kurulum anahtar deposuna ya da geçici, kendinden imzalı bir sertifikaya geçer ve doğru sertifikayı uygulamak için yeniden oturum açabilirsiniz.

Web TLS sertifikasını sıfırlamak için:

  1. Ana makinede, PAM sunucusu kapsayıcısında sıfırlama komutunu çalıştırın:

    sudo docker exec pam keycyte-pam cert reset

    Komut, veritabanındaki etkin sertifikayı devre dışı bırakır ve kaç satırı değiştirdiğini yazdırır.

  2. PAM sunucusunu yeniden başlatın:

    sudo docker compose --env-file .env -f docker-compose.yml restart pam
  3. Yönetici Paneli’ni açın, tarayıcı uyarısı görüntülenirse kabul edin ve Ayarlar > Web TLS Sertifikası sayfasında doğru sertifikayı uygulayın.

Uygulanmış sertifika Yükleme Geçmişi tablosunda kalır; yalnızca etkin değildir.

Sık Karşılaşılan Durumlar

Bir kapsayıcı başlamıyor

Kurulum betiği, çalışmayan her kapsayıcının son günlük satırlarını yazdırır. Bu satırları docker compose logs <service> komutuyla yeniden görüntüleyebilirsiniz. PAM sunucusu için tipik nedenler:

Günlük iletisinde geçen ifadeNeden ve çözüm
session secret validation failed.env dosyasındaki SESSION_SECRET_KEY boş, 32 bayttan kısa ya da yerleşik değerdir. En az 32 baytlık rastgele bir değer belirleyin ve kapsayıcıları yeniden oluşturun.
No AES key configuredŞifreleme anahtarı tanımlı değildir. .env dosyasındaki KEYSTORE_KEY_HEX değerini denetleyin.
Invalid key_hex valueKEYSTORE_KEY_HEX geçerli bir onaltılık dizge değildir.
Failed to run ent auto-migrationPAM sunucusu veritabanı şemasını güncelleyememiştir. Veritabanı bağlantısını ve veritabanı kullanıcısının yetkilerini denetleyin.

Kurulum betiği eksik imaj bildiriyor

keycyte-pam.tar.gz arşivi açıldıktan sonra beklenen bir imaj yüklenmemişse kurulum betiği durur. Yüklü imajları sudo docker images komutuyla denetleyin. İmajlar keycyte-pam:latest, keycyte-ssh-proxy:latest, keycyte-password-manager:latest, keycyte-radius-server:latest ve guacamole/guacd:latest etiketlerine sahip olmalıdır.

postgres kapsayıcısı imaj çekilemediği için başlayamıyorsa sunucunun Docker Hub’a erişimi yoktur. postgres:17 imajını elle yükleyin; bkz. Kurulum Paketini Hazırlama.

Master hesabı oluşturulmadı

Kurulum betiği master hesabı betiğinin atlandığını bildiren bir uyarı yazdırdıysa betiği elle çalıştırın. Bkz. Master Hesabı Oluşturulmadıysa.

Tarayıcı sertifika uyarısı gösteriyor

PAM sunucusu kurulum anahtar deposunu ya da geçici, kendinden imzalı bir sertifikayı kullanmaktadır. Ayarlar > Web TLS Sertifikası sayfasında Kaynak bilgisini denetleyin ve Keycyte PAM DNS adı için, kullanıcı iş istasyonlarının güvendiği bir CA tarafından düzenlenmiş bir sertifika uygulayın.

LDAP oturum açma işlemi sertifika hatasıyla başarısız oluyor

LDAP sunucu sertifikasına güvenilmemektedir. Sertifikayı düzenleyen CA’nın ~/keycyte/cacerts.pem dosyasında bulunduğunu denetleyin ya da sertifikayı Yönetici Paneli’ndeki LDAP yapılandırmasından ekleyin. Ana makinede cacerts.pem dosyasını değiştirdikten sonra pam ve password-manager hizmetlerini yeniden başlatın.

Yerel SSH ya da web terminali oturumları açılamıyor

Ayarlar > Servisler sayfasındaki Servis AccessKey’leri kartını denetleyin. SSH proxy tanımlı değil olarak gösteriliyorsa SSH proxy erişim anahtarı PAM sunucusu ortamında tanımlı değildir. Ayrıca ssh-proxy günlüğünde PAM sunucusuna yönelik kimlik doğrulama hatalarını denetleyin. Bkz. Hizmet Erişim Anahtarları.

Zamanlanmış parola rotasyonu, raporlar ya da yedeklemeler çalışmıyor

Zamanlanmış işler yalnızca ana düğümde çalışır. Ayarlar > Replikasyon sayfasındaki Master anahtarını denetleyin ya da başlangıçtan sonra PAM sunucusu günlüğünde Running as MASTER node veya Running as REPLICA node satırını arayın. Bkz. Yüksek Erişilebilirlik.

Yük dengeleyici arkasında kullanıcıların oturumu kapanıyor ya da oturumlar açılamıyor

Tüm düğümlerin aynı SESSION_SECRET_KEY değerini kullandığını ve yük dengeleyicinin oturum yakınlığı kullandığını denetleyin. Bkz. Yüksek Erişilebilirlik.

Sertifika süre sonu e-postaları alınmıyor

Ayarlar > Bildirim sayfasında Email Test ile posta sunucusu ayarlarını denetleyin ve MASTER yöneticilerinin e-posta adreslerinin tanımlı olduğunu doğrulayın.

Ara