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.
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.
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, 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.
| Ö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 |
Ş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
# 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
# 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
# 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
# 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=
# 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 uygulaması aşamalı bir süreçtir:
# 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.
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.
Zero Trust kademeli olarak uygulanabilir. SSH anahtar tabanlı kimlik doğrulama ve temel firewall kuralları ile başlayın. Zamanla MFA, mikro-segmentasyon ve sürekli izleme ekleyin. Her adım güvenliği artırır.
Evet, ancak Zero Trust VPN'in yerini alabilir. Geleneksel VPN, ağa girdikten sonra geniş erişim sağlar. Zero Trust ise her kaynağa ayrı kimlik doğrulama gerektirir. WireGuard gibi modern VPN'ler Zero Trust ilkeleriyle uyumlu şekilde yapılandırılabilir.
Evet, hatta küçük sunucular için daha kritiktir. Tek bir sunucuda bile SSH anahtar tabanlı kimlik doğrulama, Fail2Ban ve temel firewall kuralları uygulamak Zero Trust'ın temelini oluşturur ve saldırı yüzeyini önemli ölçüde azaltır.
Modern iptables/nftables kuralları çok düşük overhead'e sahiptir. Doğru yapılandırılmış mikro-segmentasyon performansı ihmal edilebilir düzeyde etkiler. Ancak çok karmaşık kural setleri yönetim zorluğu yaratabilir.
Linux ekosisteminde: iptables/nftables (mikro-segmentasyon), PAM (kimlik doğrulama), auditd (denetim), Fail2Ban (otomatik engelleme), WireGuard (güvenli tünel), HashiCorp Vault (sır yönetimi). Bunlar birlikte kapsamlı bir Zero Trust altyapısı oluşturur.
Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama 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 kurun: anahtar üretimi, sunucu ve istemci yapılandırması, IP yönlendirme, firewall kuralları ve Windows/Linux/Android istemci kurulumu.