Sunucu Güvenliği: Verilerinizi Korumanın Temel Adımları
Sunucu güvenliği, modern işletmelerin ve kuruluşların dijital altyapılarının temel taşıdır. Sunucular, kritik verilerin depolandığı, işlemlerin gerçekleştirildiği ve uygulamaların barındırıldığı merkezi bir rol oynar. Bu nedenle, sunucu güvenliği, hem veri bütünlüğünü hem de iş sürekliliğini sağlamak için kritik öneme sahiptir.
Bu makalede, sunucu güvenliğini sağlamak için atılması gereken temel adımları detaylı ve teknik bir şekilde inceleyeceğiz. Her bir adım, uygulama örnekleri ve en iyi uygulamalarla birlikte ele alınacaktır.
1. Güçlü Parola Politikaları ve Kimlik Doğrulama
1.1. Parola Politikaları
Güçlü parola politikaları, sunucu güvenliğinin ilk adımıdır. Zayıf parolalar, saldırganların sunucuya erişim sağlamasını kolaylaştırır.
Önerilen Parola Politikaları:
- Uzunluk: En az 12 karakter.
- Karmaşıklık: Büyük harf, küçük harf, rakam ve özel karakterlerin birleşimi.
- Süreklilik: Parolaların düzenli olarak değiştirilmesi (örneğin, her 90 günde bir).
Uygulama Örneği:
Linux sunucularda parola politikalarını yapılandırmak için PAM
(Pluggable Authentication Modules) kullanılabilir. /etc/pam.d/common-password
dosyasını düzenleyerek parola politikalarını belirleyebilirsiniz.
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
1.2. Çok Faktörlü Kimlik Doğrulama (MFA)
Çok faktörlü kimlik doğrulama, kullanıcıların kimliğini doğrulamak için birden fazla yöntem kullanır. Bu yöntemler, parola, SMS kodu, biyometrik veri veya donanım token’ları olabilir.
Uygulama Örneği:
Linux sunucularda Google Authenticator
kullanarak MFA yapılandırabilirsiniz:
- Google Authenticator’ı Kurun:
sudo apt install libpam-google-authenticator
- Kullanıcı için MFA Yapılandırın:
google-authenticator
- PAM Yapılandırmasını Düzenleyin:
/etc/pam.d/sshd
dosyasına aşağıdaki satırı ekleyin:auth required pam_google_authenticator.so
2. Güncelleme ve Yama Yönetimi
2.1. İşletim Sistemi ve Yazılım Güncellemeleri
Güncel olmayan yazılımlar, bilinen güvenlik açıkları nedeniyle saldırganlar için kolay hedefler oluşturur. Düzenli güncelleme ve yama yönetimi, bu açıkları kapatmak için kritik öneme sahiptir.
Uygulama Örneği:
Linux sunucularda güncellemeleri otomatik olarak yüklemek için unattended-upgrades
paketini kullanabilirsiniz:
- Paketi Kurun:
sudo apt install unattended-upgrades
- Yapılandırma Dosyasını Düzenleyin:
/etc/apt/apt.conf.d/50unattended-upgrades
dosyasını düzenleyerek otomatik güncellemeleri etkinleştirin.
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; "${distro_id}:${distro_codename}-updates"; };
2.2. Güvenlik Açığı Taraması
Düzenli güvenlik açığı taramaları, sunucudaki zafiyetleri tespit etmek ve bu zafiyetleri gidermek için önemlidir.
Uygulama Örneği:
OpenVAS
veya Nessus
gibi araçları kullanarak düzenli güvenlik açığı taramaları yapabilirsiniz.
3. Ağ Güvenliği
3.1. Güvenlik Duvarı (Firewall) Yapılandırması
Güvenlik duvarı, sunucuya gelen ve giden trafiği kontrol eder ve yetkisiz erişimi engeller.
Uygulama Örneği:
Linux sunucularda UFW
(Uncomplicated Firewall) kullanarak güvenlik duvarı yapılandırabilirsiniz:
- UFW’yi Etkinleştirin:
sudo ufw enable
- Temel Kuralları Ekleyin:
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https
3.2. VPN ve Şifreli İletişim
Sunucuya uzaktan erişim, şifreli iletişim kanalları üzerinden sağlanmalıdır. VPN (Virtual Private Network), bu tür bir güvenli iletişim sağlar.
Uygulama Örneği:
OpenVPN
kullanarak bir VPN sunucusu kurabilirsiniz:
- OpenVPN’i Kurun:
sudo apt install openvpn
- Yapılandırma Dosyalarını Oluşturun:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/server.conf.gz
- OpenVPN’i Başlatın:
sudo systemctl start openvpn@server
4. Veri Şifreleme
4.1. Disk Şifreleme
Disk şifreleme, sunucudaki verilerin yetkisiz erişime karşı korunmasını sağlar.
Uygulama Örneği:
Linux sunucularda LUKS
(Linux Unified Key Setup) kullanarak disk şifreleme yapabilirsiniz:
- LUKS’yi Kurun:
sudo apt install cryptsetup
- Diski Şifreleyin:
sudo cryptsetup luksFormat /dev/sdX
- Şifrelenmiş Diski Açın:
sudo cryptsetup open /dev/sdX my_encrypted_disk
4.2. Veritabanı Şifreleme
Veritabanı şifreleme, hassas verilerin yetkisiz erişime karşı korunmasını sağlar.
Uygulama Örneği:
MySQL veritabanında AES_ENCRYPT
ve AES_DECRYPT
fonksiyonlarını kullanarak verileri şifreleyebilirsiniz:
INSERT INTO users (username, password) VALUES ('user1', AES_ENCRYPT('password123', 'encryption_key')); SELECT AES_DECRYPT(password, 'encryption_key') FROM users WHERE username = 'user1';
5. Yedekleme ve Felaket Kurtarma
5.1. Düzenli Yedekleme
Düzenli yedekleme, veri kaybını önlemek ve felaket durumlarında hızlı bir şekilde kurtarma yapmak için kritik öneme sahiptir.
Uygulama Örneği:
Linux sunucularda rsync
kullanarak düzenli yedekleme yapabilirsiniz:
rsync -avz /var/www/html /backup/
5.2. Felaket Kurtarma Planı
Felaket kurtarma planı, sunucu çöktüğünde veya veri kaybı yaşandığında hızlı bir şekilde kurtarma yapmak için gereklidir.
Önerilen Adımlar:
- Yedekleme Stratejisi: Tam, artımlı ve diferansiyel yedekleme stratejileri belirleyin.
- Kurtarma Testleri: Düzenli olarak kurtarma testleri yapın.
6. İzleme ve Log Yönetimi
6.1. Gerçek Zamanlı İzleme
Gerçek zamanlı izleme, sunucu performansını ve güvenliğini sürekli olarak izlemek için önemlidir.
Uygulama Örneği:
Nagios
veya Zabbix
gibi araçları kullanarak sunucuyu gerçek zamanlı olarak izleyebilirsiniz.
6.2. Log Yönetimi
Log yönetimi, güvenlik olaylarını tespit etmek ve analiz etmek için kritik öneme sahiptir.
Uygulama Örneği:
ELK Stack
(Elasticsearch, Logstash, Kibana) kullanarak logları toplayabilir, analiz edebilir ve görselleştirebilirsiniz.
7. Sonuç
Sunucu güvenliği, modern işletmelerin ve kuruluşların dijital altyapılarının temel taşıdır. Güçlü parola politikaları, güncelleme ve yama yönetimi, ağ güvenliği, veri şifreleme, yedekleme ve felaket kurtarma, izleme ve log yönetimi gibi adımlar, sunucu güvenliğini sağlamak için kritik öneme sahiptir.
Bu makalede, sunucu güvenliğini sağlamak için atılması gereken temel adımları detaylı ve teknik bir şekilde inceledik. Her bir adım, uygulama örnekleri ve en iyi uygulamalarla birlikte ele alındı. Bu adımları uygulayarak, sunucu güvenliğinizi artırabilir ve verilerinizi koruyabilirsiniz.