Merhaba arkadaşlar, bugün sizlere sunucu güvenliğinin temel taşlarından biri olan UFW (Uncomplicated Firewall) üzerinde nasıl durum kontrolü yapacağınızı ve mevcut kurallarınızı listeleyip yorumlayarak basit bir güvenlik analizi yapmayı anlatacağım. Bu işlem, sunucunuzun dış dünyaya hangi kapıları açık tuttuğunu görmenizi ve gereksiz açıklıkları kapatarak saldırı yüzeyinizi küçültmenizi sağlayacak.
UFW Durumunu Kontrol Etme
Öncelikle, UFW'nin sunucunuzda aktif olup olmadığını kontrol etmemiz gerekiyor. Bunun için en temel komutu kullanacağız.
Eğer güvenlik duvarınız aktifse, bu komut bize "Status: active" çıktısını ve aktif kuralların bir listesini verecektir. Eğer pasifse, "Status: inactive" yazacaktır. Daha detaylı ve numaralandırılmış bir liste için aşağıdaki komutu kullanabilirsiniz. Bu, özellikle kural silme veya düzenleme işlemlerinde işinize yarayacak.
Mevcut Kuralları Listeleme ve Anlama
Şimdi, yukarıdaki komutun bize verdiği çıktıyı nasıl yorumlayacağımıza bakalım. Örnek bir çıktı şöyle görünebilir:
Burada her satır bir kuralı temsil eder. "To" sütunu, hangi porta kuralın uygulandığını (örn: 22/tcp SSH, 80/tcp HTTP, 443/tcp HTTPS), "Action" sütunu izin ver (ALLOW) mi yoksa reddet (DENY) mi yapıldığını, "From" sütunu ise bu kuralın hangi kaynak IP adresleri için geçerli olduğunu gösterir. "Anywhere" ifadesi, tüm IP'lerden gelen trafiğe izin verildiği anlamına gelir.
Güvenlik Analizi İpuçları ve Kritik Kontroller
Listeyi incelerken, benim sunucularımda genelde şu soruları sorarım:
1. Gerçekten herkese açık olması gereken portlar neler? Örneğin, bir web sunucusu için 80 ve 443 portları dışarıya açık olmalıdır.
2. SSH portu (22) herkese açık mı? Bu çok kritik! Mümkünse SSH erişimini sadece kendi IP adresinizle veya güvendiğiniz bir VPN'in IP bloğu ile sınırlandırmanızı şiddetle tavsiye ederim. Aksi takdirde bruteforce saldırılarına açık hedef olursunuz.
3. Listenizde, ne işe yaradığını bilmediğiniz veya kullanmadığınız bir servise ait bir port görüyor musunuz? Hemen araştırın ve kullanmıyorsanız kuralı silin.
4. IPv6 kurallarınız da doğru yapılandırılmış mı? (v6) etiketli satırlara dikkat edin. IPv4 kadar IPv6 güvenliğini de unutmayın.
Örneğin, sadece kendi ofis IP'mden SSH bağlantısına izin vermek için, "Anywhere" kuralını kaldırıp daha kısıtlayıcı bir kural eklerim. Önce mevcut genel kuralı numarasıyla silerim:
Ardından, sadece belirli bir IP'den (örneğin 88.255.100.50) gelen SSH bağlantılarına izin veren kuralı eklerim:
Bu şekilde, /etc/ufw/ dizini altındaki konfigürasyon dosyalarını karıştırmadan, komut satırından temiz ve anlaşılır bir güvenlik politikası oluşturabilirsiniz.
Son Söz ve Pratik Öneri
Düzenli olarak `sudo ufw status numbered` komutunu çalıştırıp kurallarınızı gözden geçirmeniz, güvenliğinizin olmazsa olmazıdır. Her yeni servis kurduğunuzda veya bir servisi kapattığınızda, UFW kurallarınızı da buna göre güncellemeyi unutmayın.
Umarım bu basit ama etkili kontrol yöntemi sunucularınızın güvenliğini sağlamlaştırmanıza yardımcı olur. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? SSH erişimini kısıtlama gibi ek önlemleriniz var mı? Aklınıza takılan veya paylaşmak istediğiniz bir şey olursa aşağıya yazmaktan çekinmeyin. Herkese güvenli çalışmalar!
Öncelikle, UFW'nin sunucunuzda aktif olup olmadığını kontrol etmemiz gerekiyor. Bunun için en temel komutu kullanacağız.
Bash:
sudo ufw status
Eğer güvenlik duvarınız aktifse, bu komut bize "Status: active" çıktısını ve aktif kuralların bir listesini verecektir. Eğer pasifse, "Status: inactive" yazacaktır. Daha detaylı ve numaralandırılmış bir liste için aşağıdaki komutu kullanabilirsiniz. Bu, özellikle kural silme veya düzenleme işlemlerinde işinize yarayacak.
Bash:
sudo ufw status numbered
Şimdi, yukarıdaki komutun bize verdiği çıktıyı nasıl yorumlayacağımıza bakalım. Örnek bir çıktı şöyle görünebilir:
Kod:
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
[ 4] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 5] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 6] 443/tcp (v6) ALLOW IN Anywhere (v6)
Burada her satır bir kuralı temsil eder. "To" sütunu, hangi porta kuralın uygulandığını (örn: 22/tcp SSH, 80/tcp HTTP, 443/tcp HTTPS), "Action" sütunu izin ver (ALLOW) mi yoksa reddet (DENY) mi yapıldığını, "From" sütunu ise bu kuralın hangi kaynak IP adresleri için geçerli olduğunu gösterir. "Anywhere" ifadesi, tüm IP'lerden gelen trafiğe izin verildiği anlamına gelir.
Listeyi incelerken, benim sunucularımda genelde şu soruları sorarım:
1. Gerçekten herkese açık olması gereken portlar neler? Örneğin, bir web sunucusu için 80 ve 443 portları dışarıya açık olmalıdır.
2. SSH portu (22) herkese açık mı? Bu çok kritik! Mümkünse SSH erişimini sadece kendi IP adresinizle veya güvendiğiniz bir VPN'in IP bloğu ile sınırlandırmanızı şiddetle tavsiye ederim. Aksi takdirde bruteforce saldırılarına açık hedef olursunuz.
3. Listenizde, ne işe yaradığını bilmediğiniz veya kullanmadığınız bir servise ait bir port görüyor musunuz? Hemen araştırın ve kullanmıyorsanız kuralı silin.
4. IPv6 kurallarınız da doğru yapılandırılmış mı? (v6) etiketli satırlara dikkat edin. IPv4 kadar IPv6 güvenliğini de unutmayın.
Örneğin, sadece kendi ofis IP'mden SSH bağlantısına izin vermek için, "Anywhere" kuralını kaldırıp daha kısıtlayıcı bir kural eklerim. Önce mevcut genel kuralı numarasıyla silerim:
Bash:
sudo ufw delete 1
Ardından, sadece belirli bir IP'den (örneğin 88.255.100.50) gelen SSH bağlantılarına izin veren kuralı eklerim:
Bash:
sudo ufw allow from 88.255.100.50 to any port 22
Bu şekilde, /etc/ufw/ dizini altındaki konfigürasyon dosyalarını karıştırmadan, komut satırından temiz ve anlaşılır bir güvenlik politikası oluşturabilirsiniz.
Düzenli olarak `sudo ufw status numbered` komutunu çalıştırıp kurallarınızı gözden geçirmeniz, güvenliğinizin olmazsa olmazıdır. Her yeni servis kurduğunuzda veya bir servisi kapattığınızda, UFW kurallarınızı da buna göre güncellemeyi unutmayın.
Umarım bu basit ama etkili kontrol yöntemi sunucularınızın güvenliğini sağlamlaştırmanıza yardımcı olur. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? SSH erişimini kısıtlama gibi ek önlemleriniz var mı? Aklınıza takılan veya paylaşmak istediğiniz bir şey olursa aşağıya yazmaktan çekinmeyin. Herkese güvenli çalışmalar!