Keycyte PAM 3.2 · Kurulum Kılavuzu
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 paketini Kurulum Paketini Hazırlama konusunda anlatıldığı gibi hazırlayın.
- Kapsayıcıların (container) kullanacağı birincil DNS sunucusunun ve isteğe bağlı olarak ikincil DNS sunucusunun IP adresini belirleyin.
Kurulum Betiği Seçenekleri
| Seçenek | Açı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, --help | Kullanım metnini gösterir. |
Kurulum Betiğinin Yaptıkları
Kurulum betiği aşağıdaki adımları çalıştırır:
- Ö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.ymlve.envdosyalarının paket klasöründe bulunduğunu denetler. - İmajlar.
keycyte-pam.tar.gzarşivini açar ve içindeki her imajıdocker loadile yükler. Ardındankeycyte-pam:latest,keycyte-ssh-proxy:latest,keycyte-password-manager:latest,keycyte-radius-server:latestveguacamole/guacd:latestimajlarının bulunduğunu denetler. Bu denetim--skip-loadile de çalışır. - DNS. Birincil ve ikincil DNS sunucularını sorar ve
.envdosyasına yazar (PRIMARY_DNS,SECONDARY_DNS). - Docker grubu. PAM sunucusunun Docker soketini okuyabilmesi için sunucudaki
dockergrubunun kimliğini bulur ve.envdosyasına yazar (DOCKER_GID). - Ana makine dizinleri.
sudokomutunu çalıştıran kullanıcının ana dizininde~/keycyte,~/driveve~/recorddizinlerini oluşturur, bu kullanıcıyı dizinlerin sahibi yapar ve yolları ile kullanıcı ve grup kimliklerini.envdosyasına yazar (KEYCYTE_BASE,KEYCYTE_DRIVE,KEYCYTE_RECORD,RUN_UID,RUN_GID). Kapsayıcılar bu kullanıcı ve grup kimliğiyle çalışır. - Sertifikalar.
localhost.p12,cacerts.pemvekeycyte-ca.crtdosyalarından mevcut olanları~/keycytedizinine kopyalar.localhost.p12ya dacacerts.pemeksikse uyarı verir. - Veritabanı denetimi.
.envharici bir veritabanı sunucusunu IP adresiyle gösteriyorsa bu sunucunun portuna erişilebildiğini denetler. - Başlatma. Tüm kapsayıcıları
docker compose up -dile 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. - Master hesabı. PostgreSQL hazır olana ve PAM sunucusu veritabanı şemasını oluşturana kadar bekler, ardından
masterhesabını oluşturmak içininitdb/10-master-user.sqlbetiğ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:
-
Sunucuda bir kabuk açın ve kurulum paketi klasörüne gidin.
-
Kurulum betiğini çalıştırın:
sudo ./install.shDNS sunucusunu soru sorulmadan ayarlamak için:
sudo ./install.sh --dns 10.0.0.53 -
İstendiğinde birincil DNS sunucusunun IP adresini girin ve Enter tuşuna basın.
İstem,
.envdosyası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. -
İ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.
-
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.