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.
İç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
- Asla güvenme, her zaman doğrula: Her erişim isteği kimlik doğrulamasından geçmeli
- En az ayrıcalık: Kullanıcılar yalnızca ihtiyaç duydukları kaynaklara erişebilmeli
- Mikro-segmentasyon: Ağı küçük, izole segmentlere böl
- Sürekli izleme: Tüm ağ trafiğini ve erişimleri kayıt altına al
- Cihaz güvenliği: Erişim izni vermeden önce cihazın güvenliğini doğrula
Geleneksel vs Zero Trust Karşılaştırması
| Özellik | Geleneksel | Zero Trust |
|---|---|---|
| Güven modeli | İç ağa güven | Hiçbir şeye güven |
| Kimlik doğrulama | Ağ sınırında | Her erişimde |
| Erişim kontrolü | IP tabanlı | Kimlik tabanlı |
| Segmentasyon | Düz ağ | Mikro-segmentasyon |
| İzleme | Perimeter 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.
# 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
# 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
# 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ü
# 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
# 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
# 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
# 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
[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
# 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
# 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.
İlgili Makaleler
Malware ve Rootkit Tarama: rkhunter ve ClamAV Rehberi
Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama rehberi.
Fail2Ban Yapılandırma: SSH Brute-Force Koruması Rehberi
Fail2Ban ile SSH brute-force saldırılarına karşı sunucunuzu koruyun. Kurulum, jail.local yapılandırması, Nginx/Apache jail'leri, IP beyaz listesi ve e-posta bildirimleri.
WireGuard VPN Sunucusu Kurulumu: Adım Adım Rehber
WireGuard VPN sunucusu kurun: anahtar üretimi, sunucu ve istemci yapılandırması, IP yönlendirme, firewall kuralları ve Windows/Linux/Android istemci kurulumu.