Ana içeriğe geç
Kategoriye Dön

Zero Trust Ağ Güvenliği: Temel Yapılandırma Rehberi

Zero Trust ağ güvenliği ilkeleri ve pratik uygulama: asla güvenme her zaman doğrula, mikro-segmentasyon, kimlik tabanlı erişim ve mevcut araçlarla uygulama rehberi.

Okuma süresi: 14 dk Güvenlik
zero trustağ güvenliğimikro-segmentasyonkimlik doğrulamagüvenlik mimarisilinuxfirewallerişim kontrolü

İçindekiler

Zero Trust Ağ Güvenliği: Temel Yapılandırma Rehberi

Geleneksel ağ güvenliği modeli, iç ağdaki her şeye güvenilir gözüyle bakar. Zero Trust (Sıfır Güven) modeli ise tam tersini savunur: "Asla güvenme, her zaman doğrula." Bu yaklaşım, modern bulut ve hibrit ortamlarda kritik önem taşır. Bu rehberde Zero Trust ilkelerini mevcut Linux araçlarıyla nasıl uygulayabileceğinizi öğreneceksiniz.

Zero Trust Nedir?

Zero Trust, 2010 yılında Forrester Research analistleri tarafından tanımlanan bir güvenlik modelidir. Temel varsayımı şudur: Ağ içinde veya dışında hiçbir kullanıcı, cihaz veya servise otomatik olarak güvenilmez.

Temel İlkeler

  1. Asla güvenme, her zaman doğrula: Her erişim isteği kimlik doğrulamasından geçmeli
  2. En az ayrıcalık: Kullanıcılar yalnızca ihtiyaç duydukları kaynaklara erişebilmeli
  3. Mikro-segmentasyon: Ağı küçük, izole segmentlere böl
  4. Sürekli izleme: Tüm ağ trafiğini ve erişimleri kayıt altına al
  5. Cihaz güvenliği: Erişim izni vermeden önce cihazın güvenliğini doğrula

Geleneksel vs Zero Trust Karşılaştırması

ÖzellikGelenekselZero Trust
Güven modeliİç ağa güvenHiçbir şeye güven
Kimlik doğrulamaAğ sınırındaHer erişimde
Erişim kontrolüIP tabanlıKimlik tabanlı
SegmentasyonDüz ağMikro-segmentasyon
İzlemePerimeter odaklıHer yerde

Pratik Uygulama: Linux Araçları ile Zero Trust

1. SSH Sertifika Tabanlı Kimlik Doğrulama

Şifre yerine sertifika kullanmak Zero Trust'ın temel taşlarından biridir.

hljs bash
# SSH CA (Certificate Authority) oluştur
mkdir -p /etc/ssh/ca
cd /etc/ssh/ca

# CA anahtar çifti oluştur
ssh-keygen -t ed25519 -f ssh_ca -C "SSH Certificate Authority"

# Kullanıcı anahtarını imzala
ssh-keygen -s /etc/ssh/ca/ssh_ca \
  -I "kullanici@hostname" \
  -n kullanici \
  -V +52w \
  ~/.ssh/id_ed25519.pub

# Sertifikayı görüntüle
ssh-keygen -L -f ~/.ssh/id_ed25519-cert.pub
hljs bash
# Sunucu SSH yapılandırması
sudo nano /etc/ssh/sshd_config
# Zero Trust SSH yapılandırması

# Şifre girişini devre dışı bırak
PasswordAuthentication no
ChallengeResponseAuthentication no

# Sertifika tabanlı kimlik doğrulama
TrustedUserCAKeys /etc/ssh/ca/ssh_ca.pub

# Root girişini devre dışı bırak
PermitRootLogin no

# Yalnızca belirli kullanıcılara izin ver
AllowUsers deploy admin

# Oturum zaman aşımı
ClientAliveInterval 300
ClientAliveCountMax 2

2. Mikro-Segmentasyon ile iptables

hljs bash
# Servisler arası iletişimi kısıtla
# Örnek: Web sunucusu yalnızca veritabanına bağlanabilir

# Varsayılan politikalar
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# Loopback'e izin ver
sudo iptables -A INPUT -i lo -j ACCEPT

# Mevcut bağlantılara izin ver
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH erişimi (yalnızca yönetim ağından)
sudo iptables -A INPUT -p tcp --dport 22 -s 10.0.1.0/24 -j ACCEPT

# Web sunucusu (herkese açık)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Veritabanı (yalnızca web sunucusundan)
sudo iptables -A INPUT -p tcp --dport 3306 -s 10.0.2.10 -j ACCEPT

# Redis (yalnızca uygulama sunucusundan)
sudo iptables -A INPUT -p tcp --dport 6379 -s 10.0.2.0/24 -j ACCEPT

# Diğer her şeyi reddet
sudo iptables -A INPUT -j LOG --log-prefix "DROPPED: "
sudo iptables -A INPUT -j DROP

3. Kimlik Tabanlı Erişim Kontrolü

hljs bash
# PAM ile çok faktörlü kimlik doğrulama
sudo apt install libpam-google-authenticator -y

# Kullanıcı için TOTP kurulumu
google-authenticator

# PAM yapılandırması
sudo nano /etc/pam.d/sshd
# /etc/pam.d/sshd
auth required pam_google_authenticator.so
hljs bash
# SSH yapılandırmasında MFA etkinleştir
sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

4. Sürekli İzleme ve Denetim

hljs bash
# auditd kurulumu
sudo apt install auditd -y

# Kritik dosyaları izle
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
sudo auditctl -w /etc/sudoers -p wa -k sudoers_changes
sudo auditctl -w /var/log/auth.log -p wa -k auth_log

# Ağ bağlantılarını izle
sudo auditctl -a always,exit -F arch=b64 -S connect -k network_connect

# Audit loglarını görüntüle
sudo ausearch -k passwd_changes
sudo aureport --auth

5. Servis Hesabı İzolasyonu

hljs bash
# Her servis için ayrı kullanıcı oluştur
sudo useradd -r -s /bin/false -d /var/lib/myapp myapp

# Servis dosyasında kullanıcı belirt
sudo nano /etc/systemd/system/myapp.service
hljs ini
[Service]
User=myapp
Group=myapp
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp
CapabilityBoundingSet=
AmbientCapabilities=

6. Ağ Politikası ile Namespace İzolasyonu

hljs bash
# Docker ağ izolasyonu
# Her uygulama kendi ağında çalışır
docker network create --driver bridge --subnet 172.20.0.0/24 frontend-net
docker network create --driver bridge --subnet 172.21.0.0/24 backend-net
docker network create --driver bridge --subnet 172.22.0.0/24 db-net

# Konteynerler yalnızca gerekli ağlara bağlanır
docker run --network frontend-net nginx
docker run --network backend-net,frontend-net myapp
docker run --network db-net postgres

Zero Trust Olgunluk Modeli

Zero Trust uygulaması aşamalı bir süreçtir:

Seviye 1: Temel

  • SSH anahtar tabanlı kimlik doğrulama
  • Firewall ile port kısıtlaması
  • Güçlü şifre politikası
  • Temel log izleme

Seviye 2: Orta

  • Çok faktörlü kimlik doğrulama (MFA)
  • Mikro-segmentasyon
  • Servis hesabı izolasyonu
  • Merkezi log yönetimi

Seviye 3: İleri

  • Sertifika tabanlı kimlik doğrulama
  • Sürekli davranış analizi
  • Otomatik tehdit yanıtı
  • Sıfır kalıcı erişim (Just-in-Time)

Pratik Kontrol Listesi

hljs bash
# Zero Trust kontrol scripti
#!/bin/bash

echo "=== Zero Trust Güvenlik Kontrolü ==="

# SSH şifre girişi devre dışı mı?
if grep -q "PasswordAuthentication no" /etc/ssh/sshd_config; then
    echo "[OK] SSH şifre girişi devre dışı"
else
    echo "[UYARI] SSH şifre girişi etkin!"
fi

# Root girişi devre dışı mı?
if grep -q "PermitRootLogin no" /etc/ssh/sshd_config; then
    echo "[OK] SSH root girişi devre dışı"
else
    echo "[UYARI] SSH root girişi etkin!"
fi

# Firewall etkin mi?
if sudo ufw status | grep -q "Status: active"; then
    echo "[OK] UFW firewall etkin"
else
    echo "[UYARI] UFW firewall devre dışı!"
fi

# Fail2Ban çalışıyor mu?
if systemctl is-active --quiet fail2ban; then
    echo "[OK] Fail2Ban çalışıyor"
else
    echo "[UYARI] Fail2Ban çalışmıyor!"
fi

echo "Kontrol tamamlandı."

Zero Trust bir ürün değil, bir felsefedir. Mevcut araçlarla başlayın ve kademeli olarak olgunluk seviyenizi artırın. Mükemmel olmak yerine sürekli iyileştirmeyi hedefleyin.

Sonuç

Zero Trust, modern güvenlik tehditlerinin gerektirdiği kapsamlı bir güvenlik yaklaşımıdır. Linux araçları ile temel Zero Trust ilkelerini uygulamak mümkündür. SSH sertifikaları, mikro-segmentasyon, MFA ve sürekli izleme ile güvenlik duruşunuzu önemli ölçüde güçlendirebilirsiniz.