Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Yeni teslim aldığınız bir dedicated sunucu internete açıldığı dakikadan itibaren otomatik tarayıcıların hedefi olur. Bu rehberde, ilk kurulumdan hemen sonra uygulayacağınız güvenlik kontrol listesini adım adım ele alıyoruz: sistem güncellemesi, yönetici kullanıcı, SSH anahtarı, güvenlik duvarı, otomatik engelleme, zaman senkronizasyonu ve yedekleme.
Rehber, bir hosting firmasında ya da kendi altyapısında dedicated sunucu yöneten sistem yöneticilerine hitap eder. Tüm adımları sakin bir tempoda uygulamak yaklaşık 45-60 dakika sürer. Komutlar Debian/Ubuntu için verilmiş, RHEL tabanlı (AlmaLinux, Rocky) farklar ayrıca belirtilmiştir.
Gereksinimler
- Temiz kurulmuş Debian, Ubuntu, AlmaLinux veya Rocky Linux çalıştıran bir dedicated sunucu
- Sunucuya ilk erişim için root parolası veya sağlayıcının verdiği erişim bilgisi
- Kendi bilgisayarınızda SSH istemcisi ve bir SSH anahtar çifti (yoksa 3. adımda oluşturacağız)
- Sağlayıcınızın uzaktan konsol (KVM/IPMI) erişimi: SSH ayarını bozarsanız son çare olacaktır
- Üzerinde veri olan bir sunucuda çalışıyorsanız önce yedek alın; bu rehber yeni kurulum için yazılmıştır
Adım adım dedicated sunucu ilk kurulum güvenliği
1. Sistemi güncelleyin
Kurulum imajları çoğu zaman eskidir. İnternete açık hizmet çalıştırmadan önce tüm paketleri güncelleyin.
# Debian / Ubuntu
sudo apt update && sudo apt upgrade -y
# AlmaLinux / Rocky
sudo dnf upgrade -yÇekirdek güncellendiyse sunucuyu yeniden başlatın. Bunu henüz hiçbir hizmet çalışmazken yapmak en az risklisidir.
sudo reboot2. Yönetici kullanıcı oluşturun
Günlük işlerde root ile oturum açmayın. Sudo yetkili ayrı bir kullanıcı oluşturun. KULLANICI yerine kendi adınızı yazın.
# Debian / Ubuntu
sudo adduser KULLANICI
sudo usermod -aG sudo KULLANICI
# AlmaLinux / Rocky
sudo useradd -m KULLANICI
sudo passwd KULLANICI
sudo usermod -aG wheel KULLANICI3. SSH anahtarını kurun
Kendi bilgisayarınızda bir anahtar çifti üretin ve açık anahtarı sunucuya kopyalayın. Parola yerine anahtarla giriş yapmak kaba kuvvet saldırılarını büyük ölçüde anlamsız kılar.
# Kendi bilgisayarınızda
ssh-keygen -t ed25519 -C "sunucu-yonetim"
ssh-copy-id KULLANICI@SUNUCU_IPYeni bir terminal açıp anahtarla girişin çalıştığını mutlaka deneyin. Bu denemeyi yapmadan bir sonraki adıma geçmeyin.
4. SSH girişini sertleştirin
Uyarı: Bu adımda kendinizi sunucudan dışarıda bırakabilirsiniz. Mevcut SSH oturumunu kapatmayın, ikinci bir oturumla test edin ve uzaktan konsol erişiminizin hazır olduğundan emin olun.
sudo nano /etc/ssh/sshd_config.d/01-hardening.confPermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3sshd bir ayar için okuduğu ilk değeri kullanır ve dizindeki dosyaları alfabetik sırayla okur. Bu yüzden dosya adını küçük bir numarayla başlatın; aksi halde bulut imajlarındaki 50-cloud-init.conf gibi bir dosya PasswordAuthentication yes ile ayarınızı ezebilir. AlmaLinux/Rocky 8'de bu dizin varsayılan olarak okunmayabilir; /etc/ssh/sshd_config içinde Include satırı yoksa ayarları doğrudan o dosyaya yazın.
Ayarı sınadıktan sonra uygulayın. Debian/Ubuntu'da servis adı ssh, RHEL tabanlı sistemlerde sshd olur.
sudo sshd -t
sudo systemctl reload ssh # Debian / Ubuntu
sudo systemctl reload sshd # AlmaLinux / Rocky5. Güvenlik duvarını açın
Yalnızca ihtiyaç duyduğunuz portlara izin verin. Önce SSH'a izin verip sonra etkinleştirin; sıra tersine olursa bağlantınız kopar.
# Debian / Ubuntu (UFW)
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
# AlmaLinux / Rocky (firewalld)
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload6. Fail2ban ile tekrarlayan denemeleri engelleyin
# Debian / Ubuntu
sudo apt install -y fail2ban
# AlmaLinux / Rocky (EPEL deposu gerekebilir)
sudo dnf install -y epel-release
sudo dnf install -y fail2ban
sudo systemctl enable --now fail2banÖzelleştirme için /etc/fail2ban/jail.local dosyası kullanılır; jail.conf dosyasını doğrudan düzenlemeyin. Debian/Ubuntu paketi sshd jail'ini kendiliğinden açar; EPEL paketinde ise açık gelmeyebilir. Her iki durumda da jail'i açıkça etkinleştirmek için jail.local içine aşağıdakini yazıp sudo systemctl restart fail2ban çalıştırın.
[sshd]
enabled = true
# /var/log/auth.log tutulmayan sistemlerde (ör. rsyslog kurulu olmayan Debian 12+) jail başlamazsa:
# backend = systemd7. Saat senkronizasyonu ve otomatik güncellemeler
Doğru saat, log analizi ve sertifika doğrulaması için şarttır. Güvenlik yamalarının otomatik kurulması ise unutulan güncellemeleri önler.
# Zaman dilimi ve NTP durumu
sudo timedatectl set-timezone Europe/Istanbul
timedatectl
# Debian / Ubuntu otomatik güvenlik güncellemeleri
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# AlmaLinux / Rocky
sudo dnf install -y dnf-automatic
sudo systemctl enable --now dnf-automatic.timerRHEL tabanlı sistemlerde dnf-automatic varsayılan olarak güncellemeleri yalnızca indirir. Uygulaması için /etc/dnf/automatic.conf içinde upgrade_type = security ve apply_updates = yes ayarlayın.
8. Yedekleme ve yönetim arayüzü
Yedekleme planınızı daha ilk günde kurun ve geri yüklemeyi en az bir kez deneyin. BMC, iDRAC veya iLO gibi uzaktan yönetim arayüzünün varsayılan parolasını değiştirin ve bu arayüzü herkese açık ağdan erişilemez hale getirin.
Doğrulama
Aşağıdaki komutlarla ayarların uygulandığını kontrol edin.
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication'
sudo ufw status verbose # Debian / Ubuntu
sudo firewall-cmd --list-all # AlmaLinux / Rocky
sudo fail2ban-client status sshd
timedatectl | grep -i synchronizedBeklenen sonuç: permitrootlogin no, passwordauthentication no, güvenlik duvarının aktif ve yalnızca gerekli portların açık olması, fail2ban'da sshd jail'inin listelenmesi ve saatin senkronize görünmesidir. Ayrıca dışarıdan bir makineden nmap SUNUCU_IP ile açık portları kontrol edin.
Sık karşılaşılan sorunlar
- SSH'a artık bağlanılamıyor: Yapılandırma hatası veya yanlış anahtar olabilir. Uzaktan konsoldan girip
sudo sshd -tçıktısına bakın ve değiştirdiğiniz dosyayı düzeltin. - Güvenlik duvarını açınca bağlantı koptu: SSH portuna izin vermeden etkinleştirmişsinizdir. Konsoldan
sudo ufw allow 22/tcpveya firewalld'de--add-service=sshekleyin. - Fail2ban kendi IP adresinizi engelledi:
sudo fail2ban-client set sshd unbanip IP_ADRESIile engeli kaldırın ve IP'niziignoreiplistesine ekleyin. - Güncelleme sırasında paket kilidi hatası: Arka planda başka bir apt veya dnf işlemi çalışıyordur; birkaç dakika bekleyip tekrar deneyin.
Güvenlik ve bakım notları
- Güvenlik duvarında gereksiz hiçbir portu açık bırakmayın; yeni hizmet kurdukça listeyi gözden geçirin.
- SSH anahtarınızın özel kısmını parola (passphrase) ile koruyun ve yedeğini güvenli bir yerde saklayın.
- Ayda bir
lastve/var/log/auth.log(RHEL'de/var/log/secure) kayıtlarını gözden geçirip tanımadığınız girişleri araştırın. - Yönetim arayüzünün (BMC/iDRAC/iLO) ve sağlayıcı panelinin parolalarını ayrı ve güçlü tutun.
- Kurulum adımlarını bir dokümanda saklayın; bir sonraki sunucuyu aynı listeyle kurmak hata riskini azaltır.
- Yedeklerin geri yüklenebildiğini üç ayda bir deneyerek doğrulayın.
Sık sorulan sorular
Root girişini kapatmak şart mı?
Şart değildir ama önerilir. Root kullanıcı adı herkesçe bilindiği için saldırganların ilk denediği hesaptır. Sudo yetkili ayrı bir kullanıcıyla çalışmak hem saldırı yüzeyini küçültür hem de yapılan işlemleri kullanıcı bazında kayıt altına alır.
SSH portunu değiştirmek güvenlik sağlar mı?
Port değiştirmek log gürültüsünü azaltır ama gerçek bir koruma değildir; hedefli bir tarama yeni portu da bulur. Asıl güvenliği anahtar tabanlı giriş, parola kapatma ve fail2ban sağlar. Port değiştirirseniz güvenlik duvarını da buna göre güncelleyin.
Bu adımları hangi sırayla yapmalıyım?
Önerilen sıra güncelleme, kullanıcı, SSH anahtarı, SSH sertleştirme, güvenlik duvarı ve en sonda izleme ile yedeklemedir. Her değişiklikten sonra ikinci bir oturumla bağlantıyı sınamak, sizi sunucudan dışarıda kalmaktan korur.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Prometheus node_exporter ile sunucu izleme ve temel uyarılarLinux sunucunuzu Prometheus node_exporter ile izleyin: kurulum, güvenli erişim, scrape yapılandırması ve disk, bellek, CPU için temel uyarı kuralları.
- NVMe ve SSD sağlık ve yıpranma izleme (smartctl, nvme-cli)NVMe ve SATA SSD sürücülerin sağlığını smartctl ve nvme-cli ile okuyun: yıpranma yüzdesi, yedek blok, hata sayaçları, smartd ile otomatik uyarı kurulumu.
- Dedicated sunucuda donanım ve stres testi (memtester, stress-ng, fio)Yeni teslim alınan dedicated sunucuyu üretime almadan önce memtester, stress-ng ve fio ile RAM, CPU ve disk stres testlerinden geçirin; sonuçları nasıl yorumlayacağınızı öğrenin.
- Dedicated sunucuda ağ bonding (active-backup ve LACP) ile yedekli bağlantı (netplan ve NetworkManager)Dedicated sunucunuzdaki iki ağ kartını bonding ile birleştirin: active-backup ve LACP (802.3ad) kurulumu, netplan ve NetworkManager örnekleri, failover testi.