Linux Sunucularında Varsayılan Olarak Devre Dışı Bırakılan Nedir (Ve Neden Önemlidir)
Yeni bir Linux sunucusu sağladığınızda — ister bir VPS, ister bir adanmış sunucu, ister bulut tarafından barındırılan bir sanal makine olsun — sistem kasıtlı olarak minimalist ve sağlamlaştırılmış bir ortama önyüklenir. Bu bir gözden kaçış veya eksik bir kurulum değildir. Bu, her büyük Linux dağıtımına yerleştirilmiş kasıtlı bir tasarım felsefesidir.
Modern Linux sunucu yapıları, gereksiz hizmetleri, protokolleri ve arayüzleri kaldırarak saldırı yüzeyini en aza indirmek, sistem kaynaklarını korumak ve yöneticilere altyapılarında ne çalıştığı konusunda kesin kontrol vermek için tasarlanmıştır. Varsayılan olarak devre dışı bırakılanları — ve neden — anlamak, herhangi bir sistem yöneticisi, DevOps mühendisi veya üretim iş yüklerini yöneten geliştirici için temel bilgidir.
Bu kılavuz, Linux sunucularında varsayılan olarak devre dışı bırakılan veya bulunmayan en yaygın özellikleri ve hizmetleri inceler, her kararın arkasındaki güvenlik ve operasyonel mantığını açıklar ve kendi sisteminizde her ayarı doğrulamanızı gösterir.
Neden “Varsayılan Olarak Devre Dışı” Bir Sınırlama Değil, Bir Güvenlik Stratejisidir
Burada çalışan ilke genellikle “varsayılan olarak güvenli, seçim yoluyla genişletilebilir” olarak adlandırılır. Modern Linux dağıtımları, tam özellikli bir sistem göndererek yöneticilerin bunu kilitlemesine güvenmek yerine, kilitlenmiş bir sistem göndererek yöneticilerin yalnızca ihtiyaç duydukları şeyleri etkinleştirmesine güvenirler.
Bu yaklaşım, sunucu ihlallerinin önde gelen nedenlerinden biri olan yanlış yapılandırma riskini doğrudan azaltır. Çalışmayan her hizmet, istismar edilemeyecek bir hizmettir. Etkinleştirilmeyen her protokol, kesilemeyen bir protokoldür. Var olmayan her açık bağlantı noktası, saldırganların araştıramayacağı bir giriş noktasıdır.
Bu bağlam kurulduktan sonra, her varsayılan kısıtlamayı ayrıntılı olarak inceleyelim.
1. Root SSH Girişi
Durum: Neredeyse tüm modern Linux sunucu dağıtımlarında varsayılan olarak devre dışı
SSH aracılığıyla doğrudan root girişi, çağdaş Linux sunucu yapılarında evrensel olarak devre dışı bırakılır — ve çok iyi bir nedeni vardır. Uzaktan root erişimine izin vermek, tek bir felaket başarısızlık noktası oluşturur: bir tehlikeye atılan şifre, saldırganına tüm sistem üzerinde tam, sınırsız kontrol verir.
Doğru iş akışı, ayrıcalıklı olmayan bir kullanıcı olarak oturum açmak ve sudo veya su kullanarak ayrıcalıkları yalnızca gerektiğinde yükseltmektir. Bu bir denetim izi oluşturur, kimlik bilgisi hırsızlığının etki alanını sınırlar ve ayrıcalıklı komutları yürütmeden önce kasıtlı bir eylem gerektirir.
Nasıl doğrulanır:
grep PermitRootLogin /etc/ssh/sshd_configDüzgün sağlamlaştırılmış bir sunucuda beklenen çıktı:
PermitRootLogin noPermitRootLogin yes veya PermitRootLogin prohibit-password görürseniz, SSH yapılandırmanızı hemen gözden geçirin ve kuruluşunuzun güvenlik politikasıyla uyumlu hale getirin.
En iyi uygulama:
Adanmış bir yönetici kullanıcısı oluşturun, bunu sudo grubuna ekleyin ve herhangi bir halka açık hizmet dağıtmadan önce PermitRootLogin no ayarlandığından emin olun.
2. SSH’de Parola Kimlik Doğrulaması
Durum: Çoğu bulut tarafından sağlanan sunucuda varsayılan olarak devre dışı
Birçok bulut platformunda ve yönetilen barındırma ortamında, SSH parola kimlik doğrulaması sağlama sırasında tamamen devre dışı bırakılır. SSH anahtar çiftleri, kabul edilen tek kimlik doğrulama mekanizmasıdır.
Bu önemli bir güvenlik iyileştirmesidir. Parola kimlik doğrulaması, kaba kuvvet saldırılarına, kimlik bilgisi doldurma ve sözlük saldırılarına karşı savunmasızdır. SSH anahtarları — özellikle bir parola tarafından korunduğunda — mevcut teknoloji ile kaba kuvvetle istismar edilmesi hesaplama açısından imkansızdır.
ISO tabanlı kurulumlar hala varsayılan olarak parola girişlerine izin verebilir, ancak en iyi uygulama, anahtar tabanlı kimlik doğrulamayı ayarladıktan hemen sonra bunları devre dışı bırakmaktır.
Nasıl doğrulanır:
grep PasswordAuthentication /etc/ssh/sshd_configBeklenen çıktı:
PasswordAuthentication noParola kimlik doğrulamasını devre dışı bırakma:
/etc/ssh/sshd_config dosyasını düzenleyin ve şunu ayarlayın:
PasswordAuthentication no
PubkeyAuthentication yesArdından SSH daemon’unu yeniden yükleyin:
# Ubuntu/Debian
sudo systemctl reload ssh
# RHEL/AlmaLinux/Rocky Linux
sudo systemctl reload sshd> Uyarı: Parola kimlik doğrulamasını devre dışı bırakmadan önce SSH anahtarınızın çalıştığını her zaman doğrulayın, aksi takdirde sunucunun dışında kilitlenme riskiyle karşı karşıya kalırsınız.
3. Eski ve Açık Metin Ağ Protokolleri
Durum: Modern sunucu yapılarında yok
Telnet, FTP, Rlogin ve Rsh gibi hizmetler modern Linux sunucu görüntülerine yüklenmez. Bu protokoller, şifrelemenin bir öncelik olduğu bir dönemden önce tasarlanmıştır. Kimlik bilgilerini, komutları ve verileri düz metin olarak iletirler — bu da onları istemci ve sunucu arasındaki herhangi bir ağ segmentinde bir paket snifferi ile önemsiz bir şekilde yakalamayı kolaylaştırır.
Bu protokoller güvenli alternatifler tarafından değiştirilmiştir:
| Eski Protokol | Güvenli Değiştirme |
|---|---|
| Telnet (port 23) | SSH (port 22) |
| FTP (port 21) | SFTP veya FTPS |
| Rlogin / Rsh | SSH |
Eski hizmetlerin çalışmadığını doğrulama:
ss -tulnp21 (FTP) veya 23 (Telnet) portları çıktıda görünmüyorsa, bu hizmetler etkin değildir. Görünüyorlarsa, hemen araştırın ve belirli, haklı bir gereksinim olmadığı sürece bunları kaldırın veya devre dışı bırakın.
4. Grafik Kullanıcı Arayüzleri (GUI)
Durum: Sunucu sürümlerine yüklenmez
Sunucu dağıtımları — Ubuntu Server, Debian, AlmaLinux, Rocky Linux ve CentOS Stream dahil — GNOME, KDE Plasma veya XFCE gibi grafik masaüstü ortamları ile birlikte gelmez. Bu kasıtlı ve iyi gerekçelendirilmiş bir seçimdir.
Bir GUI ortamı:
- İş yüklerine ayrılması gereken önemli RAM ve CPU kaynaklarını tüketir
- Her biri olası bir güvenlik açığını temsil eden çok sayıda ek yazılım paketi tanıtır
- SSH üzerinden komut satırı aracılığıyla gerçekleştirilen sunucu yönetimi için tamamen gereksizdir
Beklenti açıktır: sunucular CLI aracılığıyla yönetilir. Bir üretim sunucusunda grafik bir arayüz istediğinizi fark ederseniz, bu genellikle bir işlemin veya iş akışının yeniden değerlendirilmesi gerektiğinin bir sinyalidir.
> Not: VPS Kontrol Panelleri — cPanel, Plesk veya DirectAdmin gibi — sunucuya tam bir masaüstü ortamı yüklenmesine gerek kalmadan web tabanlı grafik yönetim arayüzleri sağlar.
5. Geliştirme Araç Zincirleri ve Derleyiciler
Durum: Minimal sunucu görüntülerinde yüklenmez
gcc gibi derleyiciler ve make, cmake ve autoconf gibi derleme yardımcıları, çoğu minimal Linux sunucu görüntüsünden kasıtlı olarak çıkarılır. Mantık iki yönlüdür:
- Azaltılmış görüntü boyutu: Minimal görüntüler daha hızlı dağıtılır, yedeklenmesi daha kolaydır ve daha az kaynak tüketir.
- Güvenlik sağlamlaştırması: Bir saldırgan sunucuya erişim sağlarsa, derleyicinin yokluğu onları kötü amaçlı ikili dosyaları veya istismar kodunu doğrudan sistemde derlemekten engeller. Bu, birçok saldırı zincirinde anlamlı bir engel.
Nasıl doğrulanır:
gcc --versionAraç zinciri yüklenmemişse, şunu göreceksiniz:
-bash: gcc: command not foundGerekirse nasıl yüklenir:
# Ubuntu/Debian
sudo apt update && sudo apt install build-essential
# RHEL/AlmaLinux/Rocky Linux
sudo dnf groupinstall "Development Tools"Geliştirme araçlarını yalnızca derlemenin gerçek bir operasyonel gereksinim olduğu sunuculara yükleyin — derleme sunucuları veya geliştirme ortamları gibi — ve bunları üretim uygulaması veya veritabanı sunucularına yüklemeyi önleyin.
6. ICMP (Ping Yanıtları)
Durum: İşletim sistemi düzeyinde varsayılan olarak etkin; genellikle ağ/güvenlik duvarı düzeyinde kısıtlanır
Linux sunucuları varsayılan olarak işletim sistemi düzeyinde ICMP yankı isteklerine (ping) yanıt verir. Ancak, birçok barındırma sağlayıcısı ve bulut platformu, ağ güvenlik duvarı veya güvenlik grubu düzeyinde ICMP’yi engeller ve sunucuları tamamen operasyonel olsalar bile ping’e ulaşılamaz görünür hale getirir.
ICMP yanıtlarını bastırmak, bir sunucuyu ağ keşif taramaları sırasında daha az keşfedilebilir hale getirir. Ancak, aynı zamanda meşru izleme ve tanılamayı da karmaşıklaştırır — ping ve traceroute gibi araçlar, doğru çalışması için ICMP’ye dayanır.
Nasıl test edilir:
ping your_server_ipGerekirse iptables kullanarak işletim sistemi düzeyinde ICMP’yi engelleme:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROPICMP’yi engelleme kararı, marjinal güvenlik yararını izleme ve sorun giderme iş akışlarının operasyonel maliyetine karşı tartarak kasıtlı olarak alınmalıdır.
7. IPv6
Durum: Çoğu dağıtımda varsayılan olarak etkin; sağlayıcı düzeyinde kısıtlanabilir
IPv6, Ubuntu, Debian, Fedora ve RHEL türevleri dahil modern Linux dağıtımlarında varsayılan olarak etkindir. Ancak, birçok barındırma sağlayıcısı, altyapıları bunu desteklemiyorsa ağ düzeyinde IPv6’yı devre dışı bırakır; bu, işletim sistemi IPv6 için yapılandırılabilir olsa da sunucunun yönlendirilebilir bir IPv6 adresi olmayacağı anlamına gelir.
IPv6 adreslerini kontrol etme:
ip a | grep inet6Yalnızca ::1 (geri döngü adresi) görünüyorsa, IPv6 işletim sistemi düzeyinde etkinleştirilmiş olsa bile ağ düzeyinde yapılandırılmamıştır.
İş yükünüz IPv6 gerektirmiyorsa ve sağlayıcınız bunu sunmuyorsa, /etc/sysctl.conf dosyasına aşağıdakini ekleyerek çekirdek düzeyinde devre dışı bırakabilirsiniz:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1Ardından değişikliği uygulayın:
sudo sysctl -p8. Gereksiz Sistem Hizmetleri ve Daemon’ları
Durum: Dağıtıma göre değişir; minimal kurulumlar çoğu gerekli olmayan hizmeti devre dışı bırakır
Yukarıda listelenen öğelerin ötesinde, minimal Linux sunucu kurulumları tipik olarak masaüstü veya tam özellikli yapılarda bulunan bir dizi hizmeti devre dışı bırakır veya çıkarır:
- Bluetooth — sunucularda alakasız; yüklenmez
- Avahi/mDNS — yerel ağ keşfi; sunucularda gereksiz ve potansiyel olarak güvenlik açısından endişe verici
- Cups (baskı) — sunucuda kullanım durumu yok
- ModemManager — sunucu donanımında alakasız
- NetworkManager — genellikle sunucularda
systemd-networkdveya manuelnetplanyapılandırması ile değiştirilir
