KeycyteYardım MerkeziKeycyte PAM
PDF indirGeri bildirim gönder

Keycyte PAM 3.2 · Kurulum Kılavuzu

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ı

  • Ortam değişkenleri. Her ayarın bir ortam değişkeni vardır: KEYCYTE_ önekinin ardından, noktaları alt çizgiyle değiştirilmiş ve büyük harfe çevrilmiş ayar yolu. Örneğin session.timeout ayarının değişkeni KEYCYTE_SESSION_TIMEOUT olur.
  • config.yaml. PAM sunucusu config.yaml dosyasını çalışma dizininde (kapsayıcıda /app, ana makinede ~/keycyte) ve /etc/keycyte/ dizininde arar. Dosya isteğe bağlıdır; bulunamazsa PAM sunucusu bir uyarı günlüğe yazar ve ortam değişkenlerini ile varsayılanları kullanır.
  • Öncelik. Ortam değişkenleri config.yaml dosyasına, config.yaml dosyası da yerleşik varsayılanlara göre önceliklidir.

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ı.
Sayfa güncellendi: 1 Kasım 2026 Geri bildirim gönder
Ara