Linux sunucu sıkılaştırma: SSH, PAM, sysctl
Yeni kurulmuş bir Linux sunucuyu adım adım sıkılaştırır; SSH’ı, parola ve oturum ilkelerini, çekirdek ağ ayarlarını ve bağlama seçeneklerini güvenli hale getirirsin.
Seviye 201 · 20 ders · 18 pratik lab
Dersler
SSH’ı kilitlemek
- sshd_config’i okumak: etkin ayarları sshd -T ile görmek
- Yalnızca anahtarla giriş: parola ve root girişini kapatmak
- AllowGroups ve Match ile kimin bağlanacağını sınırlamak
- SSH şifreleme ve anahtar değişimi algoritmalarını daraltmak
- fail2ban ile kaba kuvvet denemelerini engellemek
- Kısa görev: SSH’ı yalnızca yönetici grubuna ve anahtarla açık bırak
Parola, oturum ve PAM
- PAM yığını: auth, account, password, session
- pwquality ile parola kalitesi kuralları
- faillock ile hesap kilitleme
- Boşta kalan oturumları kapatmak: TMOUT ve logind
- Giriş uyarı metinleri: /etc/issue ve motd
- Kısa görev: beş hatalı denemede 15 dakika kilitleyen ilkeyi kur
Çekirdek ve dosya sistemi
- sysctl ile ağ ayarları: yönlendirme, ICMP yönlendirmeleri, SYN çerezleri
- Çekirdek koruma ayarları: ASLR, dmesg ve ptrace kısıtları
- Bağlama seçenekleri: /tmp için nodev, nosuid, noexec
- Bellek dökümlerini kapatmak
- SUID ve SGID dosyalarının envanterini çıkarmak
- Kısa görev: sysctl ayarlarını kalıcı bir dosyaya yaz ve doğrula
Bitirme
- Sıkılaştırma kontrol listesi ve değişiklik kaydı
- Bitirme görevi: yeni bir web sunucusunu yayına hazırla
Pratik lablar
- Bu sunucudaki zayıf SSH ayarlarını bul ve kapat: sshd -T çıktısında root girişi ve parola girişi gibi zayıf ayarları bul, düzelt ve etkin değerleri yeniden göster.
- Yalnızca anahtarla giriş açılmadan önce kendi anahtarını kur: Yönetici hesabına anahtarını ekle, anahtarla girişi test et ve ancak ondan sonra parola girişini kapat.
- Sızdırılmış bir yapılandırma parçasının ayarı ezdiğini bul: sshd_config.d altındaki bir dosyanın ana ayarı ezdiğini bul, sırayı düzelt ve sshd -T ile sonucu kanıtla.
- Yedekleme hesabına yalnızca tek adresten SFTP izni ver: Match bloğuyla yedek kullanıcısını tek bir kaynak adrese ve yalnızca SFTP’ye sınırla, kabuk açamadığını göster.
- Eski istemcileri bozmadan zayıf SSH algoritmalarını kaldır: Zayıf şifreleme ve anahtar değişim algoritmalarını kapat, listedeki üç istemcinin hâlâ bağlanabildiğini test et.
- fail2ban’i SSH için aç ve deneme yapanı yasakla: sshd hapsini etkinleştir, gelen parola denemesini yasaklat ve yasaklı adresi fail2ban-client ile göster.
- Kendi ofis adresini yasaklamayan bir fail2ban ayarı yap: Ofis adresini ignoreip’e ekle, yasak süresini ve deneme sınırını politikaya göre ayarla ve iki adresle test et.
- Özel giriş günlüğü için fail2ban süzgeci yaz: Bir iç yönetim panelinin günlüğü için regex süzgeci yaz, fail2ban-regex ile sına ve yeni hapsi devreye al.
- Parola kalitesi kuralını şirket politikasına uydur: pwquality’de en az uzunluk ve karakter sınıflarını politikaya göre ayarla ve zayıf bir parolanın reddedildiğini göster.
- Hesap kilitleme kuralını faillock ile kur ve kilidi aç: Beş hatalı denemede on dakikalık kilit kur, bir hesabı kilitlet ve faillock ile yeniden aç.
- PAM yığınındaki her şeyi kabul eden satırı bul: Bir PAM dosyasına sızmış pam_permit ya da yanlış kontrol bayrağını bul, düzelt ve hatalı parolanın artık reddedildiğini kanıtla.
- Yönlendirme kapalı olması gereken sunucuda IP forwarding’i kapat: Çalışan değeri ve kalıcı dosyayı kontrol et, forwarding’i kapat ve yeniden yüklemeden sonra değeri doğrula.
- ICMP yönlendirmelerini ve kaynak yönlendirmeyi kapat: İlgili sysctl anahtarlarını tüm arayüzler için kalıcı dosyaya yaz ve sysctl --system sonrası değerleri göster.
- Başka bir dosyanın ezdiği sysctl ayarını yakala: Yeniden başlatınca geri dönen ptrace ayarının hangi dosyadan geldiğini bul, öncelik sırasını düzelt ve kalıcılığı kanıtla.
- /tmp’yi noexec ve nosuid ile bağla: /tmp için bağlama seçeneklerini fstab’a ekle, yeniden bağla ve oradan bir betiğin çalışmadığını göster.
- Sistemde fazladan SUID bitli dosyayı bul: SUID ve SGID dosyalarını listele, paket yöneticisine ait olmayan şüpheli olanı bul ve bitini kaldır.
- Çekirdek dökümlerinin parola sızdırmasını engelle: Çöken bir servisin dökümünde parolanın göründüğünü göster, çekirdek dökümlerini limits, sysctl ve systemd ile kapat ve yeniden dene.
- Sıçrama sunucusu üzerinden gelen SSH erişimini grup bazında sınırla: sshd_config içinde Match bloklarıyla yönetici grubuna yalnızca sıçrama sunucusundan, diğer herkese yalnızca SFTP izni ver ve üç ayrı hesapla sonucu kanıtla.
Kurs hakkında
Yeni kurulmuş bir Linux sunucuyu adım adım sıkılaştırır; SSH’ı, parola ve oturum ilkelerini, çekirdek ağ ayarlarını ve bağlama seçeneklerini güvenli hale getirirsin.
Ne öğreneceksin
- SSH’ı kilitlemek
- Parola, oturum ve PAM
- Çekirdek ve dosya sistemi
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.