Ubuntu sunucunuzu nasıl güvenli tutabilirsiniz?

0 Hisse senetleri
0
0
0
0

giriiş

İlk sunucularımı hatırlıyorum. Kötü niyetli birinin sunucuma erişebileceğini düşünmediğim için onları güvence altına almak için neredeyse hiçbir şey yapmamıştım. Ve bunun nasıl sonuçlandığını tahmin edebilirsiniz. Neyse ki yedeklerim vardı ve kolayca geri yükleyebiliyordum. Ama yine aynı şey oldu. Bu sefer biraz araştırma yaptım, ödevimi yaptım ve sunucularımı daha güvenli hale getirdim. Hacklenemez sunucu diye bir şey olmadığını biliyorum, ancak size sunucunuzu nasıl güvende tutacağınızı ve çökerse ne yapmanız gerektiğini göstereceğim.

Temel kurulumla başlayacağız. Yeni bir sunucu oluşturduğunuzda ne yapmanız gerektiğini öğreneceksiniz. Ardından, düzenli kontroller yaparak sunucunuzu nasıl koruyacağınızı ele alacağız. Son olarak, sunucunuz çöktüğünde ne yapmanız gerektiğini öğreneceksiniz. Bu eğitim sizi profesyonel bir sunucu yöneticisi yapmaz, çünkü çok fazla emek gerektirir ve ciddi bir iştir. Ama en azından hobi projelerinizi güvende tutabilirsiniz.

Ön koşullar
  • 1 sunucu (örneğin Hetzner ile)

Adım 1 – İlk Kurulum ve Temel Güvenlik

Sunucunuzu oluşturduktan sonra, "Ubuntu ile İlk Sunucu Kurulumu" eğitimindeki 1'den 5'e kadar olan adımları izleyin. Eğitimde şu konular açıklanmaktadır:

  • Sudo izinlerine sahip yeni bir kullanıcı oluşturun
  • Bir SSH anahtarı ekleyin

Bağlantılı eğitimin ilk 5 adımını tamamladıktan ve yeni sudo kullanıcısına bağlandıktan sonra aşağıdaki adımlarla devam edebilirsiniz.

Sistem güncellemesi

Yapmanız gereken ilk şey, güncellemeleri kontrol etmektir; çünkü güncel olmayan yazılımlar kolayca istismar edilebilecek güvenlik açıklarına sahip olabilir. Düşündüğünüzden daha kolay; şu iki komutu çalıştırmanız yeterli:

sudo apt update
sudo apt upgrade

Kolay, değil mi? Artık en son sürümleri kullandığımızdan emin olduk.

Güvenli SSH erişimi

Birisi sunucunuzu hedef aldığında, muhtemelen ilk deneyeceği şey SSH üzerinden erişmek olacaktır. Bunu genellikle botlar ve çeşitli yöntemlerle yaparlar. Bu nedenle, SSH erişimini güvence altına almak çok önemlidir.

Yapılandırma dosyasını düzenleyin:

sudo nano /etc/ssh/sshd_config
  • Kök erişimini devre dışı bırak

“PermitRootLogin” satırını bulun ve “no” olarak değiştirin.

  • Şifre girişini devre dışı bırak

Yukarıda önerildiği gibi bir SSH anahtarı eklediyseniz, parola girişini devre dışı bırakabilirsiniz.

    • “PasswordAuthentication”ı bulun ve “hayır” olarak ayarlayın.
    • “PubkeyAuthentication”ı bulun ve “Evet” olarak ayarlayın.
  • Varsayılan SSH portunu değiştirin

Sadece bunu değiştirerek, çoğu otomatik bot saldırısının önüne geçebiliriz, çünkü bunların çoğu sahte botlardır ve SSH'ye 22 numaralı porttan erişmeye çalışırlar.

“#Port 22” satırını bulun ve bunu “Port 2222” gibi bir şeye değiştirin (veya 2222’yi istediğiniz herhangi bir şeyle değiştirin).

Değişiklikleri kaydedin ve portun başarıyla değiştirilip değiştirilmediğini kontrol edin:

sudo systemctl restart ssh.service
sudo systemctl status ssh

Sunucunun :: port 2222'de dinleme yaptığından emin olun.

2222 portu belirtilmişse, sunucuya olan bağlantıyı sonlandırmak ve yeni porta olan bağlantının çalışıp çalışmadığını kontrol etmek için aşağıdakini çalıştırabilirsiniz:

ssh -p 2222 holu@<203.0.113.1>

Belirlediğiniz porta bağlanabiliyorsanız eğitime devam edebilirsiniz.

Bir güvenlik duvarı yapılandırın

Güvenlik duvarı kurallarını yönetmek için "ufw" kullanacağız. Kullanımı kolay olacak şekilde tasarlanmıştır ve komut satırı arayüzü kullanır. Ufw muhtemelen sisteminizde zaten yüklüdür, ancak yüklü olduğundan emin olmak için şu komutu çalıştırabilirsiniz:

sudo apt install ufw

Ardından, diğer kurallar tarafından özellikle izin verilmedikçe tüm gelen ağ trafiğini reddedeceğiz. Bu, yalnızca açıkça izin verdiğiniz trafiğe izin vererek sunucunuzun güvenliğini sağlamak için önemlidir. Şu komutu çalıştırmanız gerekecek:

sudo ufw default deny incoming

Ardından, tüm giden ağ trafiğine izin veriyoruz. Bu genellikle güvenlidir ve sunucunuzun diğer sunucular veya hizmetlerle kısıtlama olmaksızın iletişim kurmasını sağlar. Şu komutu çalıştırın:

sudo ufw default allow outgoing

Şimdi SSH portumuzun sunucumuza SSH üzerinden bağlanmasına izin vermemiz gerekiyor. Başka bir şey belirttiyseniz, 2222'yi SSH portunuzla değiştirdiğinizden emin olun ve şu komutu çalıştırın:

sudo ufw allow 2222/tcp

Son olarak güvenlik duvarı kurallarımızı etkinleştirmemiz gerekiyor:

sudo ufw enable

Fail2Ban

SSH portumuzu değiştirdik ve güvenlik duvarımızı kurduk. Peki ya bir bot portumuzu bulup yine de sunucumuza SSH üzerinden erişmeye çalışırsa ne olur? Bu bir kaba kuvvet saldırısı olur ve sunucumuzu Fail2Ban ile koruyabiliriz. Bu yazılım, kötü niyetli girişim belirtileri gösteren IP'leri engeller. Fail2Ban'ı yüklemek ve etkinleştirmek için şu üç komutu çalıştırmanız gerekir:

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

/etc/fail2ban/ klasöründeki yapılandırma dosyalarını düzenleyerek Fail2Ban ayarlarını özelleştirebilirsiniz. Daha ayrıntılı bilgi ve en iyi uygulamalar için Fail2Ban belgelerine göz atabilirsiniz.

Harika! Büyük bir adım attınız ve artık daha korumalı bir sunucunuz var. Şimdilik, sadece ara sıra düzenli bakım yapmanız gerekiyor. Bir sonraki bölümde ne yapmanız gerektiğini açıklayacağız.

Adım 2 – Düzenli Bakım

  • Sistem güncellemesi

Öncelikle sistemimiz için herhangi bir güncelleme olup olmadığını kontrol etmemiz gerekiyor. Şu komutu çalıştırın:

sudo apt update && sudo apt upgrade -y
  • İzleme raporları

Olağandışı etkinlikleri tespit etmek için sistem günlüklerinizi düzenli olarak kontrol etmelisiniz. Logwatch bu süreci otomatikleştirmenize yardımcı olabilir. Logwatch'ı şu komutla yükleyebilirsiniz:

sudo apt install logwatch

Günlük raporların nasıl ayarlanacağı, raporların nasıl göründüğü gibi konularda daha detaylı bilgiye bu kılavuzdan ulaşabilirsiniz.

  • Disk kullanımını kontrol edin.

Sunucunuzu çalıştırmak için yeterli alanınız olduğundan emin olmak için kalan disk alanınızı şu komutla kontrol edin:

df -h
  • Verilerinizi yedekleyin.

Sunucunuz tamamen silinirse veya erişilemez hale gelirse, bir felaketten kurtulabilmeniz için her zaman birden fazla yedeğiniz olmalıdır. Neyse ki, Hetzner'ın bulut sunucular için otomatik bir yedekleme çözümü var ve resmi belgelerde inceleyebilirsiniz. Kendi yedeklemenizi oluşturmak isterseniz, "rsync" veya "Duplicity" gibi araçları kullanabilirsiniz.

  • Kullanıcı hesaplarını denetle

Sunucudaki kullanıcı hesaplarını düzenli olarak kontrol etmeyi unutmayın. Sunucunuza yalnızca yetkili kullanıcıların erişebildiğinden emin olun. Artık ihtiyaç duymadığınız hesapları kaldırın. Kullanıcı hesaplarını şu komutu çalıştırarak kontrol edebilirsiniz:

sudo nano /etc/passwd
  • Rootkit ve Kötü Amaçlı Yazılımları Kontrol Edin

Sunucunuzu hızlı bir şekilde taramak için "rkhunter" ve "chkrootkit" gibi araçları kullanabilirsiniz. Bu araçlar, olası rootkit'leri, arka kapıları ve yerel güvenlik açıklarını kontrol etmenize ve her şeyin yolunda olduğundan emin olmanıza yardımcı olur. rkhunter'ın yüklü olduğundan emin olmak için şu komutları çalıştırın ve şunları kontrol edin:

sudo apt install rkhunter
sudo rkhunter --check

  • Sistem performans izleme

Son olarak, yazılımı çalıştırırken herhangi bir kaynak darboğazı olmadığından emin olmak için sistem performansını hızlıca kontrol edebilirsiniz. "htop", "top" veya "atop" gibi araçlar mevcuttur. Ancak şu komutu çalıştırabilirsiniz:

htop

Adım 3 – Daha Fazla Güvenlik Aracı

  • Saldırı tespit sistemlerini kullanın.

Sistem değişikliklerinizi izlemek için "AIDE" (Gelişmiş Saldırı Algılama Ortamı) gibi araçlar kullanabilirsiniz. Bu araç, dosya ve klasörlerinizin bir veritabanını oluşturur ve dosya bütünlüğünü sağlamak için sisteminizi bu veritabanıyla karşılaştırır. Daha fazla ayrıntı için deposuna bakabilirsiniz. İlk kullanım için şu komutu kullanarak yükleyebilirsiniz:

sudo apt install aide

Veritabanını şu komutlarla başlatın ve oluşturun:

sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Ve sisteminizi veritabanıyla şu komutu kullanarak karşılaştırın:

sudo aide --config /etc/aide/aide.conf --check
  • İki faktörlü kimlik doğrulamayı (2FA) etkinleştirin

Sunucunuza SSH üzerinden giriş yapmak için 2FA (iki faktörlü kimlik doğrulama) özelliğini de ayarlayabilirsiniz. Bu, ekstra bir koruma katmanı sağlar ve yetkisiz erişim riskini azaltır. Şu komutla yükleyebilirsiniz:

sudo apt install libpam-google-authenticator

Ve başlatmak için şu komutu çalıştırın:

google-authenticator
  • Güvenli web uygulamaları

Sunucunuzda web uygulamaları çalıştırıyorsanız, en iyi uygulamalarını takip ettiğinizden ve düzenli olarak güncellediğinizden emin olun. Örneğin, WordPress kullanıyorsanız, her zaman en son WordPress sürümünü kullanmalı ve tüm eklenti ve temaları güncel tutmalısınız. Ayrıca, uygun bir WordPress güvenlik eklentisi yüklemelisiniz. Bu, sunucunuza ve uygulamalarınıza yetkisiz erişim riskini azaltacaktır.

4. Adım – Olay Müdahale Planı

Bu plan büyük kuruluşlarda oldukça detaylı olabilir, ancak küçük eğlence sunucuları için basit ve uygulanabilir tutacağız. Bu yüzden sizin için 3 adımlı bir plan hazırladım.

  • Hazırlık

Bu bölüm için, sunucu bilgilerinizle ilgili küçük bir metin dosyası veya not defteri programınızda notlar oluşturmalısınız. Sunucu mimarisi, çalıştırdığı yazılım, yedeklemelerinizin ve günlüklerinizin nerede saklandığı ve yapılandırmalarınız gibi bilgileri ekleyin. Bu notu güvenli bir yerde saklayın. Başlangıç noktası olarak şu örneği inceleyebilirsiniz:

Sunucu bilgileri
BilgiTanım
Sunucu AdıMyServer01
IP Adresi192.168.1.100
İşletim SistemiUbuntu 24.04 LTS
İşlemci4 vCPU
Veri deposu8 GB
Depolamak100 GB SSD
SSH Bağlantı Noktası2222
    • Yazılım ve Hizmetler: Nginx 1.18.0, PostgreSQL 13, Django 3.1
    • Yedekleme: AWS S3'te çift, günlük, /mnt/backup ve uzak depolama, 30 günlük saklama
    • Nginx yapılandırması: /etc/nginx/nginx.conf
    • PostgreSQL yapılandırması: /etc/postgresql/13/main/postgresql.conf
    • Django yapılandırması: /home/myuser/myapp/settings.py
    • UFW yapılandırması: /etc/ufw/ufw.conf
  • Tanılama

Bu noktada, sunucunuzdaki sorunun ne olduğunu kontrol etmeniz gerekir. Sorun veya ihlal web uygulamanızla mı, sunucunun kendisiyle mi yoksa sunucunuzdaki veritabanlarından biriyle mi ilgili? Emin değilseniz, her şeyin risk altında olduğunu varsayın. Bu nedenle, sunucudan başlayarak her şeyi tekrar kontrol etmeye başlamalısınız.

  • Gelişim

Bu bölümde hasarlı sistemleri geri yükleyin. Sunucunuza erişemiyorsanız, bir sunucu yedeğinden geri yükleme yapmalısınız. Web uygulamalarınızdan biri çökerse, yalnızca yedeğinden geri yükleme yapmanız gerekebilir. Her şeyin geri yüklendiğinden, test edildiğinden, beklendiği gibi çalıştığından ve bir güvenlik taraması çalıştırdığınızdan emin olun.

Sonuç

Sunucunuzun güvenliğini sağlamak, en iyi uygulamalar ve düzenli bakımın bir birleşimini gerektirir. Bu yazıda özetlenen adımları izleyerek sunucu güvenliğinizi önemli ölçüde artırabilir ve değerli verilerinizi koruyabilirsiniz. Unutmayın, güvenlik sürekli bir süreçtir, bu nedenle sunucularınızı düzenli olarak kontrol etmeyi unutmayın.

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz

CentOS 6/7'ye IBSng nasıl kurulur

CentOS 6/7'de IBSng Kurulum Eğitimi Bu makalede, centOS 6/7'de IBSng kurulum eğitimi size yardımcı olmak için sağlanmıştır…