Yeni bir Linux VDS kurduğunuzda sunucu güvenliği büyük ölçüde sizin sorumluluğunuzdadır. Bu rehberde Ubuntu 22.04/24.04 ve Debian 12 üzerinde uygulanabilecek 15 kritik güvenlik adımını açıklıyoruz.
⚠️ Önce Snapshot Alın
Aşağıdaki adımları uygulamadan önce sunucunuzun anlık snapshot'ını alın. Yanlış bir SSH yapılandırması sunucudan tamamen kilitlenmenize yol açabilir.
1. Sistem Güncellemelerini Yapın
apt update && apt upgrade -y
apt dist-upgrade -y && apt autoremove -y
2. Yeni Sudo Kullanıcısı Oluşturun
adduser jetsadmin
usermod -aG sudo jetsadmin
3. SSH Anahtar Kimlik Doğrulaması Kurun
Parola yerine ED25519 anahtar çifti kullanmak hem güvenlidir hem de brute-force saldırılarına karşı dirençlidir.
# Yerel bilgisayarınızda:
ssh-keygen -t ed25519 -C "jetsunucum-vds" -f ~/.ssh/jetsunucum_ed25519
# Public key'i sunucuya kopyalayın:
ssh-copy-id -i ~/.ssh/jetsunucum_ed25519.pub jetsadmin@SUNUCU_IP
4. SSH Daemon'ı Güvenli Yapılandırın
nano /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222
AllowUsers jetsadmin
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3
LoginGraceTime 30
X11Forwarding no
systemctl restart sshd
5. UFW Güvenlik Duvarını Kurun
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp comment 'SSH'
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verbose
6. Fail2Ban Kurulumu
apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 86400
systemctl enable --now fail2ban
fail2ban-client status sshd
7. Otomatik Güvenlik Güncellemeleri
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
8. Gereksiz Servisleri Kapatın
systemctl list-units --type=service --state=active
systemctl disable --now bluetooth cups avahi-daemon
9. /tmp Bölümünü Güvene Alın
# /etc/fstab'a ekleyin:
tmpfs /tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime 0 0
mount -o remount /tmp
10. Kernel Güvenlik Parametreleri
cat >> /etc/sysctl.conf << EOF
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
kernel.dmesg_restrict = 1
fs.suid_dumpable = 0
EOF
sysctl -p
11. SSH Üzerinden 2FA
apt install libpam-google-authenticator -y
google-authenticator
# /etc/pam.d/sshd sonuna ekleyin:
auth required pam_google_authenticator.so
# /etc/ssh/sshd_config:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
12. Dosya Bütünlüğü İzleme (AIDE)
apt install aide -y
aide --init
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
echo "0 3 * * * root /usr/bin/aide --check" >> /etc/cron.d/aide
13. Log İzleme
tail -f /var/log/auth.log # SSH giriş denemeleri
tail -f /var/log/fail2ban.log # Engellenen IP'ler
apt install logwatch -y
logwatch --output mail --mailto admin@alanadi.com --detail high
14. SSL/TLS Sertifikası
apt install certbot python3-certbot-nginx -y
certbot --nginx -d alanadi.com -d www.alanadi.com
certbot renew --dry-run
15. Lynis ile Güvenlik Denetimi
apt install lynis -y
lynis audit system
Lynis 0–100 arası bir güvenlik puanı verir. Hedef: 70+
| Güvenlik Kontrolü | Öncelik | Etki |
|---|---|---|
| SSH anahtar doğrulama | Kritik | Brute-force engeller |
| Root girişini kapat | Kritik | Doğrudan saldırıları engeller |
| UFW aktif | Yüksek | Gereksiz port maruziyeti azalır |
| Fail2Ban | Yüksek | Tekrarlı girişleri engeller |
| Otomatik güncellemeler | Yüksek | Bilinen açıkları kapatır |
| Kernel parametreleri | Orta | Ağ saldırılarını zorlaştırır |
| 2FA | Orta | Çalınan kimliği etkisizleştirir |