Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Linux Sunucu Güvenliği İçin A'dan Z'ye Temel Ayarlar ve İpuçları Rehberi

Giriş: Sunucu Güvenliğinin Önemi

Günümüzün dijital dünyasında, sunucular işletmelerin ve kişisel projelerin omurgasını oluşturmaktadır. Veri depolamadan web sitelerini barındırmaya, uygulamaları çalıştırmaya kadar geniş bir yelpazede kritik görevler üstlenirler. Bu nedenle, bir Linux sunucusunun güvenliğini sağlamak, sadece veri bütünlüğünü korumakla kalmaz, aynı zamanda potansiyel siber saldırılara, veri ihlallerine ve hizmet kesintilerine karşı da bir kalkan görevi görür. Güvenlik, bir kere yapılıp bitirilecek bir işlem değil, sürekli dikkat ve bakım gerektiren bir süreçtir. Bu rehberde, Linux sunucularınızın güvenliğini artırmak için uygulayabileceğiniz temel ve vazgeçilmez ayarları adım adım inceleyeceğiz. Amacımız, sunucunuzu olası tehditlere karşı daha dirençli hale getirmektir.

1. SSH Güvenliğini Sıkılaştırma

SSH (Secure Shell), Linux sunucularına uzaktan güvenli bir şekilde erişim sağlayan en kritik araçlardan biridir. Ancak yanlış yapılandırıldığında ciddi bir güvenlik zafiyeti oluşturabilir. SSH güvenliğini artırmak için atılabilecek adımlar şunlardır:

  • Varsayılan SSH Portunu Değiştirin: Çoğu otomatik tarayıcı ve bot, varsayılan SSH portu olan 22'yi hedef alır. Portu değiştirmek, bu tür basit saldırıları engellemek için ilk adımdır. Örneğin, 2222 veya başka bir yüksek port numarası kullanabilirsiniz. Bu değişikliği yapmak için SSH yapılandırma dosyasını düzenlemeniz gerekir:
    Kod:
    sudo nano /etc/ssh/sshd_config
    Dosya içinde Port 22 satırını bulun ve istediğiniz port numarasıyla değiştirin (örneğin, Port 2222). Değişiklikten sonra SSH servisini yeniden başlatmayı unutmayın:
    Kod:
    sudo systemctl restart sshd
  • Root Girişini Devre Dışı Bırakın: Root hesabı, sistem üzerinde tam yetkiye sahip olduğundan, bu hesap üzerinden doğrudan SSH erişimine izin vermek son derece risklidir. Saldırganlar genellikle root kullanıcı adını tahmin etmeye çalışır. Bunun yerine, normal bir kullanıcı oluşturup sudo yetkisi vererek root yetkilerini gerektiğinde kullanın. sshd_config dosyasında şu satırı bulun ve değiştirin:
    Kod:
    PermitRootLogin no
  • Parola Yerine Anahtar Tabanlı Kimlik Doğrulama Kullanın: Parolalar kaba kuvvet saldırılarına (brute-force) karşı zayıftır. SSH anahtar çiftleri (bir genel, bir özel anahtar) çok daha güvenli bir yöntem sunar. Genel anahtar sunucunuza yüklenirken, özel anahtar bilgisayarınızda güvenli bir şekilde saklanır. Anahtar tabanlı kimlik doğrulama, parolasız ve daha güçlü bir şifreleme ile bağlantı kurmanızı sağlar. Anahtar oluşturma ve sunucuya kopyalama adımları genellikle şunlardır:
    Kod:
    ssh-keygen -t rsa -b 4096
    ssh-copy-id kullanici_adi@sunucu_adresi
  • Fail2ban Kurulumu: Fail2ban, başarısız giriş denemelerini izleyerek belirli bir sayıda denemeden sonra IP adreslerini otomatik olarak engelleyen bir araçtır. Bu, kaba kuvvet saldırılarına karşı mükemmel bir savunma hattıdır. Kurulum ve yapılandırması oldukça basittir:
    Kod:
    sudo apt update
    sudo apt install fail2ban
    Fail2ban'ı yapılandırmak için `jail.conf` dosyasını `jail.local` olarak kopyalayıp düzenlemeniz önerilir. Daha fazla bilgi için Fail2ban resmi dokümantasyonunu inceleyebilirsiniz: https://www.fail2ban.org/documentation.html

2. Güvenlik Duvarı (Firewall) Yapılandırması

Bir güvenlik duvarı, sunucunuza gelen ve sunucunuzdan giden ağ trafiğini kontrol eden bir kapıcı gibidir. Yalnızca izin verilen trafiğin geçmesine izin verirken, şüpheli veya yetkisiz trafiği engeller. Linux'ta yaygın olarak UFW (Uncomplicated Firewall) veya firewalld kullanılır.

  • Varsayılan Politikaları Ayarlayın: Çoğu güvenlik uzmanı, gelen tüm bağlantıların varsayılan olarak reddedilmesini (DENY) ve giden bağlantıların varsayılan olarak izin verilmesini (ALLOW) önerir. UFW için:
    Kod:
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
  • Gerekli Portlara İzin Verin: Sunucunuzun çalışması için kritik olan portlara (örneğin, yeni SSH portunuz, HTTP için 80, HTTPS için 443) izin vermelisiniz. Örneğin:
    Kod:
    sudo ufw allow 2222/tcp  # Yeni SSH portunuz
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
  • Güvenlik Duvarını Etkinleştirin: Kuralları belirledikten sonra güvenlik duvarını etkinleştirin. Bu adımı dikkatli atın, aksi takdirde sunucunuza erişiminiz kesilebilir!
    Kod:
    sudo ufw enable
    Etkinleştirmeden önce kuralları kontrol etmek için `sudo ufw dry-run` komutunu kullanabilirsiniz. Durumu kontrol etmek için:
    Kod:
    sudo ufw status verbose

3. Düzenli Sistem Güncellemeleri

Siber güvenlik dünyası sürekli gelişmekte ve yeni zafiyetler her gün keşfedilmektedir. İşletim sisteminizi ve yüklü tüm yazılımları güncel tutmak, bilinen güvenlik açıklarının kapatılması için hayati öneme sahiptir. Geliştiriciler, bulunan zafiyetleri düzeltmek için sürekli yamalar yayınlar. Bu yamaları düzenli olarak uygulamamak, sunucunuzu gereksiz risklere maruz bırakır.

Güvenlik, statik bir durum değil, sürekli bir süreçtir. Güncellemeler, bu sürecin vazgeçilmez bir parçasıdır.

Ubuntu/Debian tabanlı sistemler için:
Kod:
sudo apt update && sudo apt upgrade -y

Red Hat/CentOS tabanlı sistemler için:
Kod:
sudo yum update -y

Otomatik güncellemeleri etkinleştirmeyi de düşünebilirsiniz (örneğin, Ubuntu'da `unattended-upgrades`). Ancak, otomatik güncellemelerin bazen sorunlara yol açabileceğini unutmayın ve bunları test ortamında denemeniz önerilir.

4. Kullanıcı ve Yetkilendirme Yönetimi

Sisteminize kimlerin erişebileceğini ve hangi yetkilere sahip olacağını doğru bir şekilde yönetmek, güvenlik katmanlarının temelidir.

  • En Az Yetki Prensibi: Her kullanıcıya veya servise sadece görevi için kesinlikle gerekli olan en düşük yetkiler verilmelidir. İhtiyacı olmayan yetkilere sahip kullanıcılar veya uygulamalar, bir ihlal durumunda sisteme daha fazla zarar verebilir.
  • Zayıf Parolalardan Kaçının: Karmaşık, uzun ve benzersiz parolalar kullanın. Parola politikaları uygulayın ve kullanıcıları periyodik olarak parola değiştirmeye teşvik edin. Parola yöneticileri kullanmak bu konuda yardımcı olabilir.
  • Kullanılmayan Hesapları Devre Dışı Bırakın/Silin: Artık kullanılmayan veya eski çalışanlara ait hesaplar bir güvenlik riski oluşturur. Bu hesapları düzenli olarak gözden geçirin ve devre dışı bırakın veya silin.
  • Sudo Kullanımı: Root yerine `sudo` ile yetkilendirilmiş normal kullanıcılar oluşturun. `sudo` loglarını takip etmek, yetkili komutların kimler tarafından ne zaman çalıştırıldığını izlemenizi sağlar.

5. Loglama ve İzleme

Sunucu günlükleri (loglar), güvenlik olaylarını, hataları ve şüpheli etkinlikleri tespit etmek için paha biçilmez bir kaynaktır. Düzenli olarak logları kontrol etmek, olası saldırıları erken aşamada fark etmenizi sağlar.

  • Merkezi Loglama: Birden fazla sunucunuz varsa, logları merkezi bir sunucuda toplamak ve analiz etmek için rsyslog veya ELK Stack (Elasticsearch, Logstash, Kibana) gibi çözümler kullanmayı düşünün.
  • Log Rotasyonu: Log dosyaları zamanla çok büyük boyutlara ulaşabilir. `logrotate` gibi araçlarla logların düzenli olarak sıkıştırılması, arşivlenmesi ve silinmesi disk alanından tasarruf sağlar ve logların yönetilebilir kalmasını sağlar.
    Kod:
    # logrotate yapılandırma örneği
    /var/log/nginx/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 0640 www-data adm
        sharedscripts
        postrotate
            if [ -f /var/run/nginx.pid ]; then
                kill -USR1 `cat /var/run/nginx.pid`
            fi
        endscript
    }
  • Saldırı İzleme Araçları: OSSEC, Wazuh gibi HIDS (Host-based Intrusion Detection System) araçları, dosya bütünlüğü izleme, log analizi ve rootkit tespiti gibi gelişmiş güvenlik izleme yetenekleri sunar.

6. Gereksiz Servisleri Devre Dışı Bırakma

Sunucunuzda çalışmayan ve ihtiyacınız olmayan her servis, potansiyel bir saldırı yüzeyi oluşturur. Kullanılmayan servisleri devre dışı bırakmak, gereksiz riskleri ortadan kaldırır.

Kod:
sudo systemctl list-units --type=service --state=running

Bu komutla çalışan servisleri listeleyebilir, ardından ihtiyacınız olmayanları kapatabilirsiniz:
Kod:
sudo systemctl stop servis_adi
sudo systemctl disable servis_adi

7. Dosya ve Dizin İzinleri

Linux'ta dosya ve dizin izinleri, sistem kaynaklarına kimin erişebileceğini belirleyen temel bir güvenlik mekanizmasıdır. Yanlış yapılandırılmış izinler, yetkisiz erişime veya veri değişikliklerine yol açabilir.

  • Minimum İzin Prensibi: Her zaman dosyalara ve dizinlere yalnızca gerekli olan en düşük izinleri verin. Örneğin, web sunucusu dosyaları genellikle 644 (dosyalar) ve 755 (dizinler) izinlerine sahip olmalıdır. Çoğu zaman 777 gibi açık izinlerden kesinlikle kaçınılmalıdır.
  • Önemli Sistem Dosyaları: `/etc`, `/var/log`, `/bin` gibi dizinlerin izinlerini ve sahipliklerini düzenli olarak kontrol edin ve standart ayarlardan sapma olup olmadığını izleyin. Örneğin, SSH private key dosyanızın izni `600` olmalıdır.
    Kod:
    chmod 600 ~/.ssh/id_rsa
    example_security_icon.png
    (Bu bir güvenlik ikonu veya ilgili bir şema olabilir)

8. Yedekleme Stratejisi

Güvenlik ne kadar iyi olursa olsun, beklenmedik felaketler (donanım arızası, veri bozulması, başarılı bir saldırı) her zaman yaşanabilir. Düzenli ve güvenli yedeklemeler, böyle bir durumda veri kaybını en aza indirmek ve hızlı bir şekilde toparlanmak için tek garantinizdir.

  • Otomatik ve Periyodik Yedeklemeler: Verilerinizin kritiklik seviyesine göre günlük, haftalık veya aylık yedekleme planları oluşturun. Cron işleri veya yedekleme yazılımları (örneğin, Rsync, BorgBackup) kullanabilirsiniz.
  • Off-site Yedeklemeler: Yedeklerinizi sunucunuzdan fiziksel olarak ayrı bir konumda (örneğin, bulut depolama, ayrı bir yedekleme sunucusu) saklayın. Bu, sunucunun bulunduğu yerde bir felaket olması durumunda yedeklerin de kaybolmasını önler.
  • Şifreleme: Hassas verileri içeren yedekleri şifreleyin. Bu, yedeklerin yetkisiz ellere geçmesi durumunda verilerin okunmasını engeller.
  • Yedeklemeleri Test Edin: En iyi yedekleme, kurtarılamayan yedeklemedir. Periyodik olarak yedeklerinizden geri yükleme denemeleri yaparak onların işe yaradığından emin olun.

9. Güvenlik Denetimleri ve Tarayıcılar

Sisteminizi düzenli olarak güvenlik açıklarına karşı taramak, zayıflıkları erkenden tespit etmenizi sağlar.

  • Rootkit Tarayıcıları: `rkhunter` ve `chkrootkit` gibi araçlar, sunucunuzda kötü amaçlı yazılımların veya rootkitlerin varlığını kontrol eder. Düzenli olarak çalıştırmanız önerilir.
    Kod:
    sudo apt install rkhunter chkrootkit
    sudo rkhunter --check
    sudo chkrootkit
  • Antivirüs Yazılımları: Linux sunucularına doğrudan Windows'taki gibi virüsler nadiren bulaşsa da, sunucunuz aracılığıyla yayılabilecek kötü amaçlı yazılımları tespit etmek için ClamAV gibi bir antivirüs kullanabilirsiniz. Özellikle mail veya dosya sunucusu görevi görüyorsa bu önemlidir.
    Kod:
    sudo apt install clamav
    sudo freshclam
    clamscan -r / --bell -i
  • Güvenlik Tarayıcıları (Vulnerability Scanners): Harici veya dahili ağdan Nessus, OpenVAS gibi araçlarla zafiyet taraması yapabilirsiniz. Bu araçlar, bilinen güvenlik açıklarını tespit etmenize yardımcı olur.

Sonuç

Linux sunucu güvenliği, tek seferlik bir eylem değil, sürekli bir süreçtir. Bu rehberde bahsedilen temel ayarlar ve uygulamalar, sunucunuzun güvenliğini önemli ölçüde artırmanıza yardımcı olacaktır. Ancak unutmayın ki, siber tehditler sürekli evrimleştiği için, güvenlik bilincinizi güncel tutmak ve en iyi uygulamaları takip etmek her zaman önemlidir. Düzenli güncellemeler, sıkı erişim kontrolleri, kapsamlı izleme ve güvenilir yedeklemeler, güçlü bir savunma hattının temel taşlarıdır. Güvenli bir sunucu ortamı oluşturmak için sabır ve disiplin gereklidir. Bu adımları uygulayarak, sunucunuzu daha güvenli hale getirebilir ve potansiyel riskleri en aza indirebilirsiniz. Unutmayın, en zayıf halka kadar güçlüsünüzdür.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected