Linux Server Güvenlik Rehberi: Sunucunuzu Koruma Altına Alın
zafer ak
Yazar
Linux sunucular, doğru yapılandırıldığında son derece güvenlidir. Bu rehberde, sunucunuzu koruma altına almak için temel güvenlik adımlarını öğreneceksiniz.
1. Sistem Güncellemeleri
Güvenlik yamalarını düzenli olarak uygulayın:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL/Rocky
sudo dnf update -y
# Otomatik güvenlik güncellemeleri (Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
2. SSH Güvenliği
SSH Key Kullanımı
# Local makinede key oluşturma
ssh-keygen -t ed25519 -C "[email protected]"
# Public key'i sunucuya kopyalama
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu-ip
SSH Yapılandırması
/etc/ssh/sshd_config dosyasını düzenleyin:
# Port değiştirme (opsiyonel)
Port 2222
# Root girişini devre dışı bırakma
PermitRootLogin no
# Parola ile girişi devre dışı bırakma
PasswordAuthentication no
# Sadece belirli kullanıcılara izin
AllowUsers admin developer
# Boşta kalma zaman aşımı
ClientAliveInterval 300
ClientAliveCountMax 2
# SSH yapılandırmasını yeniden yükle
sudo systemctl restart sshd
3. Firewall Yapılandırması
UFW (Uncomplicated Firewall)
# UFW kurulumu ve etkinleştirme
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Gerekli portları açma
sudo ufw allow 2222/tcp # SSH (özel port)
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
# Belirli IP'den erişim
sudo ufw allow from 192.168.1.100 to any port 22
# UFW'yi etkinleştirme
sudo ufw enable
# Durumu kontrol etme
sudo ufw status verbose
iptables
# Mevcut kuralları görüntüleme
sudo iptables -L -v -n
# SSH izni
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP/HTTPS izni
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Established bağlantılara izin
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Diğer tüm gelen trafiği engelle
sudo iptables -A INPUT -j DROP
# Kuralları kaydetme
sudo apt install iptables-persistent
sudo netfilter-persistent save
4. Fail2Ban Kurulumu
Brute-force saldırılarına karşı koruma:
# Kurulum
sudo apt install fail2ban
# Yapılandırma dosyası oluşturma
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
jail.local içeriği:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
destemail = [email protected]
sender = fail2ban@sunucu
action = %(action_mwl)s
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 24h
# Fail2Ban başlatma
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Durum kontrolü
sudo fail2ban-client status
sudo fail2ban-client status sshd
5. Kullanıcı Yönetimi
Sudo Kullanıcısı Oluşturma
# Yeni kullanıcı oluşturma
sudo adduser admin
# Sudo grubuna ekleme
sudo usermod -aG sudo admin
# Root hesabını devre dışı bırakma
sudo passwd -l root
Parola Politikası
# Parola kalitesi kontrolü
sudo apt install libpam-pwquality
# /etc/security/pwquality.conf
minlen = 12
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
6. Dosya Sistemi Güvenliği
# Önemli dosyaları koruma
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
# SUID bit kontrolü
find / -perm -4000 -type f 2>/dev/null
# World-writable dosyaları bulma
find / -perm -002 -type f 2>/dev/null
7. Log İzleme
# Önemli log dosyaları
tail -f /var/log/auth.log # Kimlik doğrulama
tail -f /var/log/syslog # Sistem mesajları
tail -f /var/log/fail2ban.log # Fail2ban
# Başarısız giriş denemeleri
grep "Failed password" /var/log/auth.log | tail -20
# Logwatch kurulumu
sudo apt install logwatch
sudo logwatch --output mail --mailto [email protected] --detail high
8. Güvenlik Denetimi
# Lynis güvenlik denetimi
sudo apt install lynis
sudo lynis audit system
# Rkhunter (rootkit tarayıcı)
sudo apt install rkhunter
sudo rkhunter --check
# ClamAV (antivirüs)
sudo apt install clamav clamav-daemon
sudo freshclam
sudo clamscan -r /home
Güvenlik Kontrol Listesi
- ✅ Sistem güncellemelerini düzenli uygulayın
- ✅ SSH key kullanın, parola girişini devre dışı bırakın
- ✅ Root SSH girişini engelleyin
- ✅ Firewall yapılandırın (UFW/iptables)
- ✅ Fail2Ban kurun
- ✅ Gereksiz servisleri kapatın
- ✅ Log dosyalarını izleyin
- ✅ Düzenli güvenlik denetimi yapın
- ✅ Yedekleme stratejisi oluşturun
Sonuç
Linux sunucu güvenliği sürekli bir süreçtir. Bu temel adımları uygulayarak sunucunuzun güvenlik seviyesini önemli ölçüde artırabilirsiniz. Düzenli denetim ve güncelleme yapmayı unutmayın.