# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

Teleport ile "Keyless" Kurulum

Teleport ile "Keyless" Kurulum

Teleport'u kurmak, karmaşık VPN yapılandırmalarından çok daha basittir. Bu rehberde, Linux (Ubuntu/Debian) tabanlı bir sunucuda en temel Teleport Community Edition kurulumunu ve bir SSH n...


Teleport'u kurmak, karmaşık VPN yapılandırmalarından çok daha basittir. Bu rehberde, Linux (Ubuntu/Debian) tabanlı bir sunucuda en temel Teleport Community Edition kurulumunu ve bir SSH nodunu nasıl dahil edeceğimizi inceleyeceğiz.

1. Hazırlık ve Kurulum

Teleport, Go ile yazılmış tek bir binary dosyasıdır. Paket yöneticinizi kullanarak hızlıca yükleyebilirsiniz.

Bash
# Teleport public key'ini ekleyelim
sudo curl https://apt.releases.teleport.dev/gpg \
  -o /usr/share/keyrings/teleport-archive-keyring.asc

# Repository'yi listeye ekleyelim
echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/ubuntu $(lsb_release -cs) stable main" \
  | sudo tee /etc/apt/sources.list.d/teleport.list

sudo apt update
sudo apt install teleport

2. Teleport'u Yapılandırma (Auth & Proxy)

Teleport'un çalışması için bir "Auth Service" (Kimlik otoritesi) ve "Proxy Service" (Giriş kapısı) gerekir. En basit haliyle bir konfigürasyon dosyası oluşturalım:

sudo teleport configure -o /etc/teleport.yaml --cluster-name=teleport.local

Bu komut, varsayılan ayarlarla bir yapılandırma dosyası oluşturur. Ardından servisi başlatalım:

Bash
sudo systemctl start teleport
sudo systemctl enable teleport

3. İlk Kullanıcıyı Oluşturma ve MFA Kaydı

Teleport'ta şifre yoktur, ancak ilk girişi yapabilmek için bir kullanıcı davet linki oluştururuz. Güvenlik gereği Teleport MFA (Multi-Factor Authentication) zorunlu kılar.

Bash
# 'admin' adında, yetkili bir kullanıcı oluşturalım
sudo tctl users add admin --roles=editor,access --logins=root,ubuntu,ec2-user

Çıktı: Size bir URL verecektir (Örn: https://teleport.example.com:3080/web/newuser/...). Bu linke tıklayarak tarayıcı üzerinden şifrenizi belirleyebilir ve QR kodunu taratıp MFA (Google Authenticator vb.) kaydınızı yapabilirsiniz.


4. Altyapıya Yeni Bir Sunucu (Node) Eklemek

Şimdi asıl sihir burada başlıyor. Başka bir sunucuyu bu panele eklemek için SSH anahtarı kopyalamak yerine, Teleport'un güvenli "Token" sistemini kullanıyoruz.

Ana Sunucuda (Auth Server):

Bash
sudo tctl tokens add --type=node

Bu komut size kısa ömürlü bir token ve bir yükleme komutu verir.

Hedef Sunucuda (Node):

Verilen komutu hedef sunucuda çalıştırdığınızda, o sunucu artık Teleport paneline dahil olur. Artık terminalden şu şekilde bağlanabilirsiniz:

tsh ssh root@target-server


5. Teknik Konfigürasyonun Püf Noktaları

Özellik Neden Önemli? Ayar Lokasyonu
Session Recording Yapılan her hareketin izlenmesi için. teleport.yaml -> session_recording
Audit Log Denetimlerde kimin ne yaptığını kanıtlamak için. /var/lib/teleport/log
RBAC Kullanıcıların sadece kendi departmanlarına ait sunucuları görmesi için. tctl create roles.yaml

6. "tsh" Tool: Terminaldeki Gücünüz

Teleport sadece bir web arayüzü değil, terminal severler için tsh adında harika bir CLI aracı sunar.

  • tsh login --proxy=teleport.example.com: Kimlik doğrulaması yapar.

  • tsh ls: Erişebildiğiniz tüm sunucuları, veri tabanlarını ve K8s cluster'larını listeler.

  • tsh join <session-id>: Bir arkadaşınızın terminal oturumuna canlı olarak katılıp beraber kod yazmanızı (pair programming) sağlar.


ne yaptık?

Bu kurulumla birlikte artık altyapınızda:

  1. SSH Key yönetimi bitti.

  2. Statik şifreler tarih oldu.

  3. Her bağlantı MFA ile korunuyor.

  4. Tüm işlemler kaydediliyor.

güvenlik...

Teleport’un en güçlü olduğu iki alana geldik. Geleneksel yöntemlerde PostgreSQL için kullanıcı şifreleri, Kubernetes için ise .kube/config dosyalarındaki statik sertifikalar (kube-token) büyük birer güvenlik açığıdır.

Teleport ile bu süreci "kısa ömürlü sertifikalar" ve "tek bir kimlik (SSO)" üzerine kuruyoruz. İşte adım adım teknik yapılandırma:


1. Senaryo: PostgreSQL Veri Tabanını Teleport'a Bağlamak

Bu yapılandırmada Teleport, veri tabanı ile kullanıcı arasında bir "Identity-Aware Proxy" görevi görür.

A. Adım: Veri Tabanı Servisini Başlatma

Teleport yüklü olan sunucuda (veya veri tabanına erişimi olan bir node üzerinde) teleport.yaml dosyasını şu şekilde güncelliyoruz:

YAML
db_service:
  enabled: "yes"
  databases:
    - name: "finans-prod"
      description: "Üretim Ortamı PostgreSQL Veri Tabanı"
      protocol: "postgres"
      uri: "localhost:5432" # DB'nin adresi
      labels:
        env: "prod"
        dept: "finance"

B. Adım: Erişim Sağlama

Terminalinizden (tsh yüklü makineden) şu komutlarla bağlanabilirsiniz:

  1. Giriş yap: tsh login --proxy=teleport.example.com

  2. DB'leri listele: tsh db ls

  3. DB'ye bağlan: tsh db login finans-prod

  4. Sorgu çalıştır: tsh db connect finans-prod (Bu komut otomatik olarak psql aracını açar ve sertifikaları arkada yönetir.)


2. Senaryo: Kubernetes Cluster'ı Teleport'a Eklemek

Teleport, kubectl komutlarını Proxy üzerinden tüneller ve kimlik doğrulaması yapmayan kullanıcıların cluster'a erişimini engeller.

A. Adım: Teleport Agent Kurulumu (Helm ile)

Kubernetes cluster'ınızın içine Teleport agent'ını kurmak en temiz yöntemdir:

Bash
helm install teleport-agent teleport/teleport-kube-agent \
  --set roles=kube \
  --set proxyAddr=teleport.example.com:443 \
  --set authToken=YOUR_JOIN_TOKEN \
  --set kubeClusterName=k8s-prod

B. Adım: Güvenli Erişim

Agent bağlandıktan sonra, artık hiçbir kubeconfig dosyasına ihtiyacınız kalmaz:

  1. Cluster listesini gör: tsh kube ls

  2. Cluster'a giriş yap: tsh kube login k8s-prod

  3. Standart komutları kullan: kubectl get pods


🔐 Neden Bu Yöntemi Seçmelisiniz? (Teknik Avantajlar)

Özellik PostgreSQL Uygulaması Kubernetes Uygulaması
Kimlik Denetimi DB kullanıcısı değil, gerçek kişi loglanır. K8s User/Group yetkileri Teleport rollerine bağlanır.
Şifre Yönetimi pg_hba.conf içinde sadece Teleport'un CA'sı yetkilendirilir. Statik tokenlar yerine kısa ömürlü cert-auth kullanılır.
Denetim (Audit) Çalıştırılan her SQL sorgusu loglanır. Her exec oturumu ve API çağrısı kaydedilir.
Erişim Kısıtı Sadece mesai saatlerinde erişim gibi kısıtlar eklenebilir. Sadece belirli namespace'lere erişim yetkisi (RBAC) verilir.