
Linux Sunucu Optimizasyonu Nedir?
Linux sunucu optimizasyonu, bir sunucunun performansını artırmak için yapılan tüm işlemleri ifade eder. Bu, sunucunun daha hızlı çalışmasına, daha az kaynak kullanmasına ve daha düşük bir yük oluşturmasına yardımcı olur. Sunucu optimizasyonu, sunucuların ömrünü uzatır, kullanıcılara daha hızlı yanıt verir ve işletmenin daha iyi bir kullanıcı deneyimi sunmasına yardımcı olur.
Linux Sunucu Güvenliği Nedir?
Linux sunucu güvenliği, bir sunucunun saldırılara karşı korunmasını sağlamak için yapılan tüm işlemleri ifade eder. Bu, kötü amaçlı yazılımların sunucuya erişmesini engelleyen, yetkisiz erişimleri engelleyen ve sunucu verilerini koruyan önlemleri içerir. Sunucu güvenliği, işletmenin siber saldırılara karşı korunmasına yardımcı olur ve işletme verilerinin güvenliğini sağlar.
Linux Sunucu Güvenliği ve Optimizasyonu İçin İpuçları
- Sunucu Yazılımı Güncellemelerini Yapın
PHP:
sudo apt-get update && sudo apt-get upgrade
Bu komut, Ubuntu ve Debian tabanlı sistemlerdeki yazılım güncellemelerini yapar.
- Güvenlik Duvarı (Firewall) Kullanın
PHP:
sudo apt-get install iptables
Bu komut, iptables uygulamasını Ubuntu ve Debian tabanlı sistemlere kurar.
- SSH Erişimini Sınırlayın
PHP:
sudo nano /etc/ssh/sshd_config
Bu komut, SSH konfigürasyon dosyasını açar.
Dosya içinde aşağıdaki satırları bulun ve düzenleyin:
PHP:
#Port 22
#PermitRootLogin yes
#PasswordAuthentication yes
Port numarasını istediğiniz bir port numarası ile değiştirin. Root kullanıcısının SSH erişimini engellemek için "PermitRootLogin no" olarak değiştirin. Parola tabanlı kimlik doğrulamasını engellemek için "PasswordAuthentication no" olarak değiştirin.
- DoS (Denial of Service) Saldırılarına Karşı Koruma Sağlayın
PHP:
sudo apt-get install fail2ban
Bu komut, Ubuntu ve Debian tabanlı sistemlere Fail2Ban uygulamasını yükler. Fail2Ban, DoS saldırılarına karşı koruma sağlar.
- Swap Alanını Ayarlayın
PHP:
sudo nano /etc/fstab
Bu komut, disk yapılandırma dosyasını açar.
Aşağıdaki satırları dosyanın sonuna ekleyin:
PHP:
/swapfile none swap sw 0 0
Bu satır, swap alanınızı oluşturur. Swap alanının boyutunu ayarlamak için aşağıdaki komutu kullanabilirsiniz:
PHP:
sudo fallocate -l [boyut]G /swapfile
[boyut] kısmını swap alanının boyutu ile değiştirin. Örneğin, 2 GB swap alanı için aşağıdaki komutu kullanabilirsiniz:
PHP:
sudo fallocate -l 2G /swapfile
Swap alanını oluşturduktan sonra aşağıdaki komutları kullanarak swap alanınızı etkinleştirebilirsiniz:
PHP:
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- Sistem Güncellemelerini Yapın
PHP:
sudo apt-get update
sudo apt-get upgrade
Bu komutlar, sistemdeki tüm paketlerin ve uygulamaların güncellenmesini sağlar.
- SSH Kimlik Doğrulamasını Anahtar Tabanlı Yapın
PHP:
ssh-keygen -t rsa
Bu komut, RSA anahtarı oluşturur.
Oluşturulan anahtarı sunucuya kopyalamak için aşağıdaki komutu kullanabilirsiniz:
PHP:
ssh-copy-id [kullanıcı]@[sunucu_ip_adresi]
[kullanıcı] kısmını sunucuya bağlanmak için kullanacağınız kullanıcı adı ile değiştirin. [sunucu_ip_adresi] kısmını sunucunuzun IP adresi ile değiştirin.
SSH anahtarını kullanarak sunucuya bağlanmak için aşağıdaki komutu kullanabilirsiniz:
PHP:
ssh [kullanıcı]@[sunucu_ip_adresi] -i [anahtar_dosyası_yolu]
[kullanıcı], [sunucu_ip_adresi] ve [anahtar_dosyası_yolu] kısmını oluşturduğunuz kullanıcı adı, sunucunuzun IP adresi ve oluşturduğunuz anahtar dosyasının
yoluyla değiştirin.
- Güvenliğinizi Artırmak için Güvenlik Duvarı Kullanın
Ubuntu'da, güvenlik duvarı olarak ufw (Uncomplicated Firewall) kullanılır. Ufw, kullanımı kolay bir arayüz sağlar ve aşağıdaki komutlarla kolayca yapılandırılabilir:
PHP:
sudo ufw allow [port]/[protokol]
Bu komut, belirtilen port ve protokol için trafiği izin verir. Örneğin, HTTP trafiğini izin vermek için aşağıdaki komutu kullanabilirsiniz:
PHP:
sudo ufw allow 80/tcp
PHP:
sudo ufw enable
Bu komut, ufw güvenlik duvarını etkinleştirir.
- SSL Sertifikası Kurulumu
Let's Encrypt, sunucularınız için ücretsiz SSL sertifikaları sağlar. Let's Encrypt'in certbot aracını kullanarak sunucunuz için SSL sertifikası kurabilirsiniz.
PHP:
sudo apt-get install certbot python3-certbot-nginx
Bu komut, certbot aracını ve nginx için certbot eklentisini kurar.
PHP:
sudo certbot --nginx
Bu komut, certbot aracını kullanarak nginx üzerinde SSL sertifikası kurar.
- Veritabanı Güvenliği
- Veritabanı yönetim sisteminizin (DBMS) en son sürümünü kullanın.
- Güçlü şifreler kullanın ve düzenli olarak şifreleri değiştirin.
- Veritabanı kullanıcılarının yalnızca gerekli izinlere sahip olmasını sağlayın.
- Veritabanı erişimi için güvenli bir protokol kullanın.
- Sunucu Performansını Artırmak için Optimizasyon Yapın
- Kullanılmayan servisleri devre dışı bırakın.
- DNS sorgularını hızlandırmak için DNS önbellek yükleme kullanın.
- Önbellekleme mekanizmalarını kullanarak sunucu yanıt süresini azaltın.
- Dosya sistemini optimize edin.
- Kullanılmayan Servisleri Devre Dışı Bırakma
Sunucunuzda kullanmadığınız servisleri devre dışı bırakmak, sunucunuzun performansını artırabilir ve güvenliğini artırabilir. Ubuntu'da, systemd servis yöneticisi kullanılarak servisler yönetilir. Aşağıdaki komutları kullanarak devre dışı bırakmak istediğiniz servisleri durdurabilir ve kapatılmasını sağlayabilirsiniz:
PHP:
sudo systemctl stop [servis]
sudo systemctl disable [servis]
Örneğin, SSH servisini durdurmak ve kapatmak için aşağıdaki komutları kullanabilirsiniz:
PHP:
sudo systemctl stop ssh
sudo systemctl disable ssh
DNS Önbellekleme Kullanma
DNS önbellekleme, sunucunuzun DNS sorgularını önbelleğe alarak yanıt süresini azaltır. Bu, sunucunuzun daha hızlı yanıt vermesini sağlar. Ubuntu'da, nscd (Name Service Caching Daemon) kullanarak DNS önbellekleme yapılandırılabilir.
PHP:
sudo apt-get install nscd
Bu komut, nscd servisini yükler.
PHP:
sudo systemctl start nscd
Bu komut, nscd servisini başlatır.
Önbellekleme Mekanizmalarını Kullanma
Önbellekleme, sunucunuzun yanıt süresini azaltmak için kullanılan bir mekanizmadır. Apache veya Nginx gibi web sunucularında, önbellekleme, sunucu yanıt süresini azaltmak için kullanılabilir. Önbellekleme, statik içerikleri önbelleğe alarak sunucu yanıt süresini azaltır. Ubuntu'da, önbellekleme mekanizmaları olarak Varnish veya Redis kullanılabilir.
Dosya Sistemi Optimizasyonu
Dosya sistemi optimizasyonu, sunucunuzdaki dosya sistemlerinin performansını artırmak için yapılan bir dizi işlemdir. Ubuntu'da, dosya sistemleri için farklı optimizasyon seçenekleri mevcuttur. Örneğin, ext4 dosya sistemi için aşağıdaki komutlar kullanılabilir:
PHP:
sudo tune2fs -o journal_data_writeback /dev/sda1
Bu komut, ext4 dosya sisteminin performansını artırmak için kullanılır.
PHP:
sudo tune2fs -m 0 /dev/sda1
Bu komut, ext4 dosya sistemindeki boş alanı artırmak için kullanılır.
- Sistem Güncellemelerini Yapın
PHP:
sudo apt-get update
sudo apt-get upgrade
Bu komutlar, sunucunuzdaki tüm paketleri günceller.
- Firewall Kullanma
PHP:
sudo apt-get install ufw
Bu komut, ufw paketini yükler.
PHP:
sudo ufw enable
Bu komut, ufw'nin etkinleştirilmesini sağlar.
PHP:
sudo ufw allow [port]/[protocol]
Bu komut, belirli bir bağlantı noktası ve protokol için gelen trafiği izin verir.
Örneğin, SSH bağlantı noktasını izin vermek için aşağıdaki komutları kullanabilirsiniz:
PHP:
sudo ufw allow 22/tcp
Bu komut, SSH bağlantı noktasının TCP protokolü üzerinden gelen trafiğe izin verir.
- Sistem Günlüklerini İnceleme
PHP:
sudo tail -f /var/log/syslog
Bu komut, syslog dosyasını takip eder.
PHP:
sudo tail -f /var/log/auth.log
yapmak için aşağıdaki komutları kullanabilirsiniz:
PHP:
sudo apt-get update
sudo apt-get upgrade
Bu komutlar, sunucunuzdaki tüm paketleri günceller.
- Firewall Kullanma
PHP:
sudo apt-get install ufw
Bu komut, ufw paketini yükler.
PHP:
sudo ufw enable
Bu komut, ufw'nin etkinleştirilmesini sağlar.
PHP:
sudo ufw allow [port]/[protocol]
Bu komut, belirli bir bağlantı noktası ve protokol için gelen trafiği izin verir.
Örneğin, SSH bağlantı noktasını izin vermek için aşağıdaki komutları kullanabilirsiniz:
PHP:
sudo ufw allow 22/tcp
Bu komut, SSH bağlantı noktasının TCP protokolü üzerinden gelen trafiğe izin verir.
- Sistem Günlüklerini İnceleme
PHP:
sudo tail -f /var/log/syslog
Bu komut, syslog dosyasını takip eder.
PHP:
sudo tail -f /var/log/auth.log
Bu komut, yetkilendirme günlüğünü takip eder.
- SSH Güvenliği
- Root kullanıcısı ile SSH bağlantıları devre dışı bırakın.
- RSA anahtarını kullanarak SSH kimlik doğrulamasını etkinleştirin.
- Güçlü bir parola politikası kullanın.
- SSH bağlantı noktasını değiştirin.
- Sonuç
Unutmayın, sunucu güvenliği ve optimizasyonu bir kez yapılmış bir iş değildir. Bu süreç, sunucunuzun yaşam döngüsü boyunca devam etmelidir. Sunucunuzda yeni uygulamaların yüklenmesi veya yeni güvenlik tehditlerinin ortaya çıkması durumunda, sunucunuzun güvenliği ve performansı için ilave adımlar atmanız gerekebilir.
Sonuç olarak, bu makalede, Ubuntu'da Linux sunucu güvenliği ve optimizasyonu için birkaç ipucu ve komut örneği sunduk. Bu ipuçlarını kullanarak, sunucunuzun performansını artırabilir ve güvenliğini sağlayabilirsiniz. Ancak, her sunucu farklıdır ve sunucunuzun ihtiyaçlarına uyacak şekilde bir plan yapmanız gerekebilir. Sunucunuzun güvenliği ve performansı için sürekli olarak ilave adımlar atarak sunucunuzu koruyun ve güncelleyin.