Takip et

Ubuntu ve Debian’da UFW ile Güvenlik Duvarı Kurulumu

Ubuntu ve Debian’da UFW ile Güvenlik Duvarı Kurulumu

Sunucularınızın veya kişisel bilgisayarlarınızın güvenliği, dijital varlığınızın temel taşıdır. İnternet üzerindeki tehditler her geçen gün artarken, sistemlerinizi dışarıdan gelebilecek olası saldırılara karşı korumak hayati önem taşır. İşte tam bu noktada, Ubuntu ve Debian tabanlı işletim sistemlerinde yaygın olarak kullanılan ve son derece esnek bir araç olan UFW (Uncomplicated Firewall) devreye giriyor. UFW, karmaşık ağ yapılandırmalarıyla uğraşmadan, komut satırı üzerinden kolayca güvenlik duvarı kurmanızı ve yönetmenizi sağlar. Bu makalede, UFW’yi adım adım nasıl kuracağınızı, temel yapılandırmalarını nasıl yapacağınızı ve sisteminizin güvenliğini nasıl en üst düzeye çıkarabileceğinizi detaylı bir şekilde inceleyeceğiz. Başlangıç seviyesinden ileri düzey kullanıcılara kadar herkesin anlayabileceği bir dille, gerçek dünya senaryoları üzerinden ilerleyerek bu güçlü aracı etkin bir şekilde kullanmanızı hedefliyoruz. Güvenlik duvarı, sisteminize kimlerin, hangi portlardan ve hangi protokollere erişebileceğini belirleyen bir bekçi gibidir. UFW ise bu bekçiyi kolayca yönetmenizi sağlayan bir anahtar gibidir. Peki, bu anahtarı nasıl kullanacağız ve sistemimizi nasıl daha güvenli hale getireceğiz?

Güvenlik Duvarı Nedir ve Neden Önemlidir?

Günümüzün dijital dünyasında, internete bağlı her cihaz potansiyel bir hedef haline gelebilir. Güvenlik duvarı (firewall), ağ trafiğini izleyerek ve denetleyerek yetkisiz erişimi engelleyen bir güvenlik sistemidir. Temel olarak, bir güvenlik duvarı, önceden tanımlanmış güvenlik kurallarına göre gelen ve giden ağ paketlerini inceler. Bu kurallar, hangi tür trafiğin geçmesine izin verileceğini ve hangilerinin engelleneceğini belirler. Örneğin, bir web sunucusu çalıştırıyorsanız, genellikle HTTP (port 80) ve HTTPS (port 443) trafiğine izin vermeniz gerekirken, diğer gereksiz portları kapatarak potansiyel saldırı yüzeyini daraltabilirsiniz. Güvenlik duvarları, kötü amaçlı yazılımların yayılmasını önlemek, veri sızıntılarını engellemek ve hizmet reddi (DoS) saldırılarını azaltmak gibi birçok kritik fonksiyona sahiptir. Ayrıca, şirket ağlarında hassas verileri korumak ve regülasyonlara uyum sağlamak için de vazgeçilmezdir. Bir sunucunun veya bilgisayarın internete açık olması, onu potansiyel tehditlere karşı savunmasız bırakır. Bu tehditler arasında zararlı yazılımlar, yetkisiz uzaktan erişim girişimleri, veri çalma ve sistemleri çökertme çabaları yer alır. Güvenlik duvarı, bu tür girişimlere karşı ilk savunma hattını oluşturur. Basitçe ifade etmek gerekirse, güvenlik duvarı, evinizin kapısındaki kilit gibidir; sadece güvendiğiniz kişilerin ve araçların içeri girip çıkmasına izin verirsiniz. UFW gibi kullanıcı dostu araçlar sayesinde, bu temel güvenlik önlemini almak artık eskisi kadar karmaşık değil. Gelişmiş güvenlik duvarları, paket filtreleme, durum bilgisi denetimi (stateful inspection), ağ adresi çevirisi (NAT) ve uygulama katmanı filtreleme gibi daha karmaşık özellikler sunabilir. Ancak, UFW gibi araçlar, çoğu kullanıcı ve küçük/orta ölçekli işletmeler için gerekli olan temel ve orta düzey güvenlik ihtiyaçlarını karşılamak için fazlasıyla yeterlidir. Güvenlik duvarlarının etkinliği, doğru yapılandırılmalarına bağlıdır. Yanlış yapılandırılmış bir güvenlik duvarı, zararlı trafiğe izin verebileceği gibi, meşru trafiği de engelleyerek sistemin çalışmasını aksatabilir. Bu nedenle, UFW gibi araçlarla güvenlik duvarı yönetimi, hem basit hem de dikkatli bir yaklaşım gerektirir.

UFW Nedir ve Neden Kullanmalısınız?

UFW, “Uncomplicated Firewall” kelimelerinin kısaltmasıdır ve adından da anlaşılacağı gibi, Linux sistemlerinde güvenlik duvarı yönetimini basitleştirmek için tasarlanmış bir arayüzdür. UFW, aslında altta yatan gelişmiş güvenlik duvarı yazılımı olan iptables’ın etrafına sarılmış bir kabuktur. iptables, inanılmaz derecede güçlü ve esnek olsa da, komut satırı sözdizimi oldukça karmaşık olabilir ve yeni başlayanlar için öğrenmesi zorlayıcıdır. UFW, bu karmaşıklığı ortadan kaldırarak, daha okunabilir ve anlaşılır komutlarla güvenlik duvarı kurallarını oluşturmanıza, değiştirmenize ve silmenize olanak tanır. Ubuntu ve Debian dağıtımlarında varsayılan olarak bulunmasa da, kurulumu son derece kolaydır. Peki, neden UFW kullanmalısınız? Öncelikle, kullanım kolaylığı en büyük avantajıdır. Temel güvenlik duvarı politikalarını belirlemek, belirli portlara izin vermek veya engellemek, sadece birkaç komutla halledilebilir. Bu, sunucu yöneticileri ve geliştiriciler için büyük bir zaman tasarrufu anlamına gelir. İkinci olarak, UFW varsayılan olarak güvenli bir yapılandırma sunar. Kurulduğunda, varsayılan olarak tüm gelen bağlantıları reddeder ve tüm giden bağlantılara izin verir. Bu, “varsayılan olarak reddet” (default deny) prensibini benimseyerek, sisteminizi gereksiz yere açık bırakmaz. Üçüncü olarak, UFW, IPv6 desteği sunar. Günümüzde IPv6’nın yaygınlaşmasıyla birlikte, güvenlik duvarınızın hem IPv4 hem de IPv6 trafiğini yönetebilmesi önemlidir. UFW, bu ihtiyacı karşılar. Dördüncü olarak, UFW, profiller aracılığıyla uygulama bazlı kurallar tanımlamanıza olanak tanır. Bu, örneğin SSH (Secure Shell) veya web sunucusu gibi belirli uygulamaların gerektirdiği portları kolayca yönetmenizi sağlar. Son olarak, UFW, sisteminize ek bir yük getirmez ve performans üzerinde minimal bir etkiye sahiptir. Bu nedenle, ister yeni bir sunucu kuruyor olun, ister mevcut sisteminizin güvenliğini artırmak isteyin, UFW, etkili ve yönetilebilir bir güvenlik duvarı çözümü sunar. UFW’nin sağladığı kullanım kolaylığı, özellikle komut satırına yeni başlayanlar için güvenlik duvarı konseptini daha erişilebilir hale getirir. Karmaşık iptables komutlarıyla uğraşmak yerine, UFW’nin basit ve mantıksal komut yapısı sayesinde güvenlik duvarı yönetimi daha az korkutucu ve daha verimli hale gelir. Bu, hem bireysel kullanıcılar hem de küçük ve orta ölçekli işletmeler için ideal bir çözümdür. Ayrıca, UFW’nin varsayılan olarak gelen bağlantıları reddetmesi, birçok yaygın güvenlik açığını otomatik olarak kapatır. Bu “varsayılan olarak reddet” yaklaşımı, güvenlik açısından proaktif bir duruş sergilemenizi sağlar ve yalnızca bilinçli olarak izin verdiğiniz trafiğin sisteminize ulaşmasını garanti eder. Bu, özellikle uzaktan yönetilen sunucular için kritik öneme sahiptir.

UFW Kurulumu ve Temel Ayarlar

UFW’yi kurmak ve temel ayarlarını yapmak oldukça basittir. Öncelikle, sisteminizde UFW’nin yüklü olup olmadığını kontrol edebilirsiniz. Genellikle, Ubuntu’nun daha yeni sürümlerinde ve Debian’da varsayılan olarak gelmeyebilir, bu yüzden manuel olarak yüklemeniz gerekebilir. Terminali açın ve aşağıdaki komutu çalıştırın:

sudo apt update
sudo apt install ufw

Bu komutlar, paket listesini güncelleyecek ve ardından UFW paketini sisteminize yükleyecektir. Kurulum tamamlandıktan sonra, UFW’nin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

sudo ufw status

Başlangıçta, UFW muhtemelen “inactive” (etkin değil) olarak görünecektir. Güvenlik duvarını etkinleştirmeden önce, bazı temel kuralları belirlemek önemlidir. Aksi takdirde, UFW’yi etkinleştirdiğinizde, mevcut SSH bağlantınız bile kesilebilir ve sunucunuza uzaktan erişiminiz sona erebilir. Bu nedenle, öncelikle SSH trafiğine izin vermek kritik önem taşır. SSH, varsayılan olarak 22 numaralı TCP portunu kullanır. Bu porta izin vermek için aşağıdaki komutu kullanın:

sudo ufw allow ssh

Alternatif olarak, port numarasını doğrudan belirterek de aynı işlemi yapabilirsiniz:

sudo ufw allow 22/tcp

Bu komut, tüm IP adreslerinden gelen 22 numaralı TCP portuna yönelik trafiğe izin verecektir. Eğer IPv6 kullanıyorsanız, UFW varsayılan olarak hem IPv4 hem de IPv6 için kuralları uygular. Eğer sadece belirli bir IP adresinden SSH bağlantısına izin vermek istiyorsanız, komutu şu şekilde değiştirebilirsiniz:

sudo ufw allow from 192.168.1.100 to any port 22

Bu, yalnızca 192.168.1.100 IP adresinden gelen 22 numaralı TCP portuna erişime izin verir. Güvenlik duvarını etkinleştirmek için aşağıdaki komutu kullanın:

sudo ufw enable

Bu komutu çalıştırdığınızda, bir uyarı mesajı alacaksınız. Bu mesaj, güvenlik duvarının etkinleştirilmesinin mevcut SSH bağlantısını kesebileceğini belirtir. “y” tuşuna basarak devam edin. Etkinleştirildikten sonra, sudo ufw status komutunu tekrar çalıştırarak UFW’nin “active” (etkin) olduğunu ve belirlediğiniz SSH kuralının listelendiğini göreceksiniz.

UFW’nin temel ayarlarından biri de varsayılan politikaları belirlemektir. Varsayılan olarak UFW, tüm gelen bağlantıları reddeder (deny) ve tüm giden bağlantılara izin verir (allow). Bu genellikle en güvenli yaklaşımdır. Ancak, isterseniz bu varsayılanları değiştirebilirsiniz. Örneğin, tüm gelen bağlantıları varsayılan olarak reddetmek ve yalnızca belirli portlara izin vermek istiyorsanız, aşağıdaki komutları kullanabilirsiniz:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Bu, “varsayılan olarak reddet” prensibini daha da güçlendirir. Giden bağlantılar için varsayılan olarak izin vermek, çoğu sunucu uygulaması için gereklidir. Ancak, eğer sisteminizde sadece belirli giden bağlantılara izin vermek istiyorsanız, sudo ufw default deny outgoing komutunu kullanabilir ve ardından izin vermek istediğiniz giden portlar için kurallar ekleyebilirsiniz. Bu, daha kontrollü bir ağ trafiği yönetimi sağlar.

Kullanıcılar genellikle sadece SSH değil, aynı zamanda web sunucusu (HTTP/HTTPS) veya veritabanı gibi hizmetlere de erişim izni vermek isteyebilirler. Örneğin, bir web sunucusu çalıştırıyorsanız, HTTP (port 80) ve HTTPS (port 443) trafiğine izin vermeniz gerekir:

sudo ufw allow http
sudo ufw allow https

Bu komutlar, sırasıyla 80 ve 443 numaralı TCP portlarına gelen trafiğe izin verir. Eğer belirli bir IP adresi aralığından bu portlara erişim izni vermek istiyorsanız, yine allow from seçeneğini kullanabilirsiniz. Örneğin, yerel ağınızdaki (örneğin 192.168.1.0/24) tüm cihazların web sunucunuza erişmesine izin vermek isteyebilirsiniz:

sudo ufw allow from 192.168.1.0/24 to any port 80
sudo ufw allow from 192.168.1.0/24 to any port 443

Bu tür yapılandırmalar, özellikle bir sunucunun sadece yerel ağdan erişilebilir olmasını istediğiniz durumlarda kullanışlıdır. Güvenlik duvarı kurallarını yönetirken, her zaman “en az ayrıcalık” prensibini akılda tutmak önemlidir. Yani, bir hizmetin çalışması için kesinlikle gerekmediği sürece, o hizmete erişim izni vermemelisiniz. Bu, potansiyel saldırı vektörlerini en aza indirir. UFW, bu prensibi uygulamak için güçlü bir araçtır.

UFW Kurallarını Yönetme: İzin Verme ve Engelleme

UFW’nin en güçlü yanlarından biri, kuralları esnek bir şekilde yönetebilme yeteneğidir. Kuralları eklemek (allow), engellemek (deny), belirli bir IP adresinden gelen trafiği kısıtlamak veya belirli bir portu kapatmak gibi işlemleri kolayca yapabilirsiniz. Daha önce SSH ve HTTP/HTTPS’e izin verme örneklerini gördük. Şimdi, belirli bir portu nasıl engelleyeceğimize veya belirli bir IP adresinden gelen trafiği nasıl tamamen keseceğimize bakalım.

Belirli Bir Portu Engelleme

Varsayılan olarak UFW, gelen tüm bağlantıları reddettiği için, açıkça izin vermediğiniz portlara erişim zaten engellenmiş olur. Ancak, bazı durumlarda, belirli bir portu açıkça engellemek isteyebilirsiniz. Örneğin, bir güvenlik açığı tespit edilen ancak henüz yamalanmamış bir hizmetin çalıştığı bir portu geçici olarak kapatmak isteyebilirsiniz. Bunu yapmak için deny komutunu kullanırız:

sudo ufw deny 1234/tcp

Bu komut, 1234 numaralı TCP portuna gelen tüm trafiği engelleyecektir. Eğer hem TCP hem de UDP trafiğini engellemek istiyorsanız, ayrı ayrı komutlar kullanmanız gerekir veya her ikisini de belirtebilirsiniz:

sudo ufw deny 1234

Bu komut, 1234 numaralı porta hem TCP hem de UDP üzerinden gelen tüm trafiği engelleyecektir. Engellediğiniz bir kuralı kaldırmak isterseniz, delete komutunu kullanabilirsiniz:

sudo ufw delete deny 1234/tcp

Eğer bir kuralın numarasını biliyorsanız, doğrudan numarasını kullanarak da silebilirsiniz. sudo ufw status numbered komutu, kuralları numaralarıyla birlikte listeler. Örneğin, listede 5 numaralı kuralı silmek isterseniz:

sudo ufw delete 5

Bu özellik, karmaşık kural setlerinde değişiklik yaparken büyük kolaylık sağlar.

IP Adreslerine Göre Kural Belirleme

Daha önce belirli bir IP adresinden SSH erişimine izin verme örneğini görmüştük. Benzer şekilde, belirli bir IP adresinden gelen tüm trafiği engelleyebilir veya belirli portlara erişimi kısıtlayabilirsiniz. Örneğin, kötü niyetli bir IP adresinden gelen tüm bağlantıları engellemek için:

sudo ufw deny from 203.0.113.42

Bu komut, 203.0.113.42 IP adresinden gelen tüm TCP ve UDP trafiğini engelleyecektir. Eğer sadece belirli bir portu, örneğin web sunucusunun çalıştığı 80 numaralı portu, bu IP adresinden engellemek isterseniz:

sudo ufw deny from 203.0.113.42 to any port 80

Bu, saldırganın web sunucunuza erişmesini engellerken, diğer hizmetlere (eğer izin verilmişse) erişimini devam ettirebilir. IP adreslerini engellemek, özellikle DDoS saldırılarına karşı korunmada veya bilinen kötü niyetli kaynakları bloke etmede etkili bir yöntemdir. Bir IP adresinden gelen trafiğe izin vermek istediğinizde ise allow from seçeneğini kullanırsınız. Örneğin, sadece belirli bir IP adresinden veritabanınıza erişime izin vermek:

sudo ufw allow from 192.168.1.50 to any port 3306

Bu, sadece 192.168.1.50 IP adresindeki istemcilerin MySQL veritabanı portu olan 3306’ya bağlanmasına izin verir. Diğer tüm IP adreslerinden bu porta gelen istekler engellenir.

Uygulama Profilleri Kullanımı

UFW, popüler uygulamalar için önceden tanımlanmış profiller sunar. Bu profiller, uygulamanın kullandığı portları ve protokolleri otomatik olarak ayarlar. Bu, kuralları manuel olarak girmek yerine daha anlaşılır bir yol sunar. Örneğin, Apache web sunucusu için:

sudo ufw app list

Bu komut, sisteminizde mevcut olan UFW uygulama profillerini listeleyecektir. Çıktıda “Apache”, “OpenSSH”, “Postfix”, “Samba” gibi profiller görebilirsiniz. Bir profile izin vermek için:

sudo ufw allow 'Apache Full'

Bu komut, Apache’nin hem HTTP (80) hem de HTTPS (443) portlarına izin verecektir. Sadece HTTP’ye izin vermek isterseniz:

sudo ufw allow 'Apache'

Bu, sadece 80 numaralı porta izin verir. Uygulama profilleri, özellikle hangi portların hangi hizmetlere ait olduğunu tam olarak bilmediğiniz durumlarda veya hızlı bir şekilde temel hizmetlere erişim izni vermek istediğinizde son derece kullanışlıdır. Bir profil kuralını silmek istediğinizde de delete komutunu kullanırsınız:

sudo ufw delete allow 'Apache'

Uygulama profilleri, güvenlik duvarı yönetimini daha da basitleştirir ve hata yapma olasılığını azaltır. Bu, özellikle yeni başlayanlar için güvenlik duvarını daha erişilebilir hale getirir.

Vaka Analizi: Güvenli Bir Web Sunucusu Yapılandırması

Bir web sunucusu barındıran bir Ubuntu veya Debian sistemini ele alalım. Bu sunucunun hem güvenli olması hem de web trafiğine (HTTP ve HTTPS) izin vermesi gerekiyor. Ayrıca, sunucu yönetimi için SSH erişimi de kritik öneme sahip.

Senaryo

Bir geliştiricisiniz ve bir web sitesi barındırmak için bir Ubuntu sunucusu kiraladınız. Sunucunuza uzaktan erişmeniz, web sitenizin ziyaretçilerinin sitenize ulaşabilmesi ve sistemin genel güvenliğinin sağlanması gerekiyor.

UFW ile Çözüm

  1. UFW Kurulumu:

    İlk adım, sunucunuza SSH ile bağlanıp UFW’yi kurmaktır:

    sudo apt update
            sudo apt install ufw
  2. Temel Güvenlik Politikaları:

    Varsayılan olarak gelen tüm bağlantıları reddedip, gidenlere izin vererek başlayın. Bu, en güvenli yaklaşımdır:

    sudo ufw default deny incoming
            sudo ufw default allow outgoing
  3. SSH Erişimi:

    Sunucu yönetimi için SSH erişimi esastır. Varsayılan SSH portu olan 22’ye izin verin. Güvenliği artırmak için, sadece belirli bir IP adresinden veya ağdan erişime izin vermek akıllıca olabilir. Varsayılan olarak tüm IP’lere izin vermek için:

    sudo ufw allow ssh

    Eğer sadece belirli bir IP’den izin vermek istiyorsanız (örneğin, geliştirme bilgisayarınızın IP’si 192.168.1.100 ise):

    sudo ufw allow from 192.168.1.100 to any port 22

    Not: Eğer SSH portunu varsayılan 22’den farklı bir porta taşıdıysanız, yeni port numarasını kullanmanız gerekir. Örneğin, port 2222 ise:

    sudo ufw allow 2222/tcp
  4. Web Trafiği:

    Web sitenizin ziyaretçilerinin sitenize ulaşabilmesi için HTTP (port 80) ve HTTPS (port 443) trafiğine izin vermeniz gerekir. UFW’nin uygulama profillerini kullanmak en kolay yoldur:

    sudo ufw allow 'Apache Full'

    Eğer Apache yerine Nginx gibi başka bir web sunucusu kullanıyorsanız ve onun profili yoksa, portları manuel olarak ekleyebilirsiniz:

    sudo ufw allow 80/tcp
            sudo ufw allow 443/tcp
  5. Diğer Hizmetler:

    Sunucunuzda başka hizmetler (örneğin, veritabanı sunucusu, FTP sunucusu vb.) çalışıyorsa, bu hizmetlerin kullandığı portlara da yalnızca gerekli IP adreslerinden veya ağlardan erişim izni verin. Örneğin, yerel ağınızdaki (192.168.1.0/24) bir veritabanına erişime izin vermek için:

    sudo ufw allow from 192.168.1.0/24 to any port 3306
  6. Güvenlik Duvarını Etkinleştirme:

    Tüm kuralları belirledikten sonra, güvenlik duvarını etkinleştirin. Bu adımda, SSH bağlantınızın kesilmemesi için yukarıdaki SSH kuralını eklediğinizden emin olun!

    sudo ufw enable

    Onaylamak için ‘y’ tuşuna basın.

  7. Durumu Kontrol Etme:

    Son olarak, kurallarınızın doğru bir şekilde uygulandığını doğrulamak için durumu kontrol edin:

    sudo ufw status verbose

    Bu komut, etkin kuralları, varsayılan politikaları ve UFW’nin genel durumunu detaylı olarak gösterecektir.

Bu vaka analizinde görüldüğü gibi, UFW, bir web sunucusunun temel güvenlik gereksinimlerini karşılamak için basit ve etkili bir yol sunar. “Varsayılan olarak reddet” prensibi, yalnızca açıkça izin verilen trafiğin geçmesine izin vererek sistemin güvenliğini önemli ölçüde artırır. SSH ve web trafiği gibi temel hizmetlere izin vermek, sunucunun işlevselliğini korurken, gereksiz portları kapalı tutmak da saldırı yüzeyini daraltır. Bu yaklaşım, hem güvenlik hem de kullanılabilirlik arasında iyi bir denge kurar.

İleri Düzey UFW Kullanımı ve İpuçları

Temel UFW yapılandırmalarını öğrendikten sonra, sisteminizin güvenliğini daha da artırmak için bazı ileri düzey özelliklerden ve ipuçlarından yararlanabilirsiniz. Bu bölüm, deneyimli kullanıcılar için UFW’yi daha etkin kullanmalarını sağlayacak bilgiler içermektedir.

Rate Limiting (Hız Sınırlama)

Rate limiting, belirli bir IP adresinden gelen isteklerin hızını sınırlamanıza olanak tanır. Bu, özellikle kaba kuvvet saldırılarını (brute-force attacks) önlemek için çok etkilidir. Örneğin, SSH portuna yönelik tekrarlanan başarısız giriş denemelerini sınırlamak isteyebilirsiniz. UFW ile bunu yapmak oldukça basittir:

sudo ufw limit ssh

Bu komut, SSH portuna (varsayılan olarak 22) gelen bağlantıları sınırlar. UFW, 30 saniye içinde bir IP adresinden 6 veya daha fazla bağlantı denemesi yapıldığında, o IP adresini 3 dakika boyunca engeller. Bu eşikleri ve süreleri değiştirmek de mümkündür, ancak varsayılan ayarlar çoğu senaryo için yeterlidir. Bu özellik, sadece SSH için değil, diğer hizmetler için de kullanılabilir. Örneğin, web sunucunuza yönelik aşırı istekleri sınırlamak için:

sudo ufw limit http
sudo ufw limit https

Rate limiting, hizmet reddi (DoS) saldırılarına karşı da bir savunma katmanı sağlar. Bir saldırganın sunucunuzu aşırı trafikle boğmasını zorlaştırır. Bu, sunucunuzun kararlı kalmasına ve meşru kullanıcılara hizmet vermeye devam etmesine yardımcı olur. UFW’nin limit komutu, aslında bir allow kuralı oluşturur ancak ek olarak hız sınırlama parametrelerini de içerir. Bu nedenle, limit komutunu kullandığınızda, o porta gelen trafiğe izin verilmiş olur, ancak belirli bir hızın üzerinde ise engellenir.

Loglama (Kayıt Tutma)

UFW, güvenlik olaylarını kaydetme (loglama) yeteneğine sahiptir. Bu loglar, güvenlik ihlallerini tespit etmek, ağ trafiğini analiz etmek ve güvenlik duvarı kurallarınızın etkinliğini değerlendirmek için hayati önem taşır. UFW’nin loglamasını etkinleştirmek için:

sudo ufw logging on

Varsayılan olarak, UFW logları /var/log/ufw.log dosyasında saklanır. Log seviyesini ayarlamak için low, medium, high veya full gibi seçenekleri kullanabilirsiniz. Örneğin, daha detaylı loglama için:

sudo ufw logging medium

Logları incelemek için tail veya grep gibi komutları kullanabilirsiniz:

sudo tail -f /var/log/ufw.log

Bu komut, log dosyasının son satırlarını sürekli olarak gösterecektir. Güvenlik olaylarını izlemek ve şüpheli aktiviteleri tespit etmek için logları düzenli olarak kontrol etmek önemlidir. Örneğin, belirli bir IP adresinden gelen engellenen bağlantı girişimlerini görmek için logları grep ile filtreleyebilirsiniz:

sudo grep "DENIED" /var/log/ufw.log

Loglama, güvenlik duvarınızın nasıl çalıştığını anlamanıza ve olası güvenlik tehditlerine karşı proaktif önlemler almanıza yardımcı olur. Hangi IP adreslerinin engellendiğini, hangi portlara erişim denemeleri yapıldığını ve bu denemelerin başarılı olup olmadığını gösterir.

IPv6 Desteği

Günümüzde IPv6 kullanımı giderek artmaktadır. UFW, varsayılan olarak hem IPv4 hem de IPv6 trafiğini yönetebilir. UFW’nin IPv6’yı etkinleştirdiğinden emin olmak için /etc/default/ufw dosyasını kontrol edebilirsiniz. Bu dosyada IPV6=yes satırının bulunması gerekir. Eğer yoksa, bu satırı ekleyip UFW’yi yeniden başlatmanız yeterlidir:

sudo nano /etc/default/ufw

Dosyayı düzenledikten sonra kaydedip kapatın ve UFW’yi yeniden başlatın:

sudo ufw disable
sudo ufw enable

Bu şekilde, UFW, hem IPv4 hem de IPv6 adreslerinden gelen trafiği yönetebilecektir. Kurallarınızı belirlerken, eğer sadece IPv4 veya sadece IPv6’ya izin vermek istiyorsanız, bunu belirtmeniz gerekebilir. Ancak çoğu durumda, UFW’nin varsayılan davranışı her iki protokolü de kapsayacak şekilde yapılandırılmıştır.

Kuralları Numaralandırma ve Silme

Daha önce bahsettiğimiz gibi, sudo ufw status numbered komutu, tüm kuralları numaralarıyla birlikte listeler. Bu, özellikle çok sayıda kuralınız olduğunda, belirli bir kuralı silmek veya değiştirmek istediğinizde çok kullanışlıdır. Örneğin, UFW durumunu numaralandırılmış olarak görüntülediğinizde, silmek istediğiniz kuralın numarasını belirleyebilirsiniz. Ardından aşağıdaki komutla o kuralı silebilirsiniz:

sudo ufw delete <kural_numarası>

Örneğin, 7 numaralı kuralı silmek için:

sudo ufw delete 7

Bu yöntem, karmaşık kural setlerinde değişiklik yaparken hata yapma olasılığını azaltır ve süreci hızlandırır. Ayrıca, kuralları allow veya deny komutlarıyla tekrar girerek de silebilirsiniz, ancak numaralandırma yöntemi genellikle daha pratiktir.

UFW’yi Yeniden Yapılandırma

Eğer UFW’de büyük değişiklikler yaptıysanız veya yapılandırmanızda bir sorun olduğunu düşünüyorsanız, UFW’yi devre dışı bırakıp tekrar etkinleştirmek iyi bir fikir olabilir. Bu, güvenlik duvarını temiz bir başlangıçla yeniden yapılandırmanıza olanak tanır.

sudo ufw disable
sudo ufw reset
sudo ufw enable

sudo ufw reset komutu, tüm UFW kurallarını siler ve UFW’yi fabrika ayarlarına döndürür. Bu komutu kullanmadan önce mevcut kurallarınızı yedeklediğinizden emin olun veya hangi kuralları yeniden oluşturmanız gerektiğini bildiğinizden emin olun.

Sonuç ve Sıkça Sorulan Sorular

Bu kapsamlı rehberde, Ubuntu ve Debian sistemlerinizde UFW (Uncomplicated Firewall) kullanarak güvenlik duvarı kurmayı ve yönetmeyi adım adım öğrendiniz. Temel kavramlardan başlayarak, UFW’nin kurulumunu, temel ayarlarını, kuralları yönetmeyi, ileri düzey özelliklerini ve vaka analizlerini inceledik. UFW, karmaşık iptables komutlarına bir alternatif sunarak, güvenlik duvarı yönetimini hem daha erişilebilir hem de daha verimli hale getirir. “Varsayılan olarak reddet” prensibini benimseyerek, sisteminizin güvenliğini önemli ölçüde artırabilir, yalnızca bilinçli olarak izin verdiğiniz trafiğin geçmesine izin verebilirsiniz. SSH, web trafiği gibi temel hizmetlere izin vermek ve gereksiz portları kapalı tutmak, hem güvenlik hem de kullanılabilirlik arasında optimum bir denge sağlar. Rate limiting, loglama ve IPv6 desteği gibi ileri düzey özellikler, sisteminizin güvenliğini daha da güçlendirmenize yardımcı olur.

Unutmayın ki güvenlik duvarı, dijital güvenliğinizin sadece bir parçasıdır. Güçlü parolalar kullanmak, yazılımlarınızı güncel tutmak ve bilinçli internet kullanımı gibi diğer güvenlik önlemleriyle birlikte kullanıldığında UFW, sistemlerinizi dış tehditlere karşı korumada son derece etkili bir araç olacaktır.

Sıkça Sorulan Sorular (SSS)

  • Soru: UFW’yi etkinleştirdiğimde SSH bağlantım kesilirse ne yapmalıyım?

    Cevap: Bu, UFW’yi etkinleştirmeden önce SSH portuna (varsayılan olarak 22) izin vermediğiniz anlamına gelir. Sunucunuza fiziksel erişiminiz varsa veya başka bir erişim yönteminiz varsa, sudo ufw allow ssh veya sudo ufw allow 22/tcp komutunu çalıştırıp ardından sudo ufw enable komutunu tekrar çalıştırmanız gerekir. Eğer fiziksel erişiminiz yoksa, sunucu sağlayıcınızın konsol erişimini kullanmanız gerekebilir.

  • Soru: UFW’nin varsayılan politikaları nelerdir ve bunları nasıl değiştirebilirim?

    Cevap: Varsayılan olarak UFW, tüm gelen bağlantıları reddeder (deny incoming) ve tüm giden bağlantılara izin verir (allow outgoing). Bu genellikle en güvenli yapılandırmadır. Varsayılan politikaları değiştirmek için sudo ufw default deny outgoing veya sudo ufw default allow incoming gibi komutları kullanabilirsiniz. Ancak, varsayılan olarak reddetme prensibini korumanız şiddetle tavsiye edilir.

  • Soru: Belirli bir portu hem TCP hem de UDP için nasıl engelleyebilirim?

    Cevap: Belirli bir portu hem TCP hem de UDP için engellemek için iki ayrı komut kullanmanız gerekir:

    sudo ufw deny <port_numarası>/tcp
            sudo ufw deny <port_numarası>/udp

    Veya, bazı UFW sürümlerinde tek bir komutla da yapılabilir:

    sudo ufw deny <port_numarası>

    Bu komut, belirtilen port numarasına hem TCP hem de UDP üzerinden gelen trafiği engelleyecektir.

  • Soru: UFW kurallarımı nasıl yedekleyebilirim?

    Cevap: UFW kurallarını doğrudan bir yedekleme komutu yoktur. Ancak, mevcut kurallarınızı sudo ufw status verbose komutuyla listeleyebilir ve bu çıktıyı bir metin dosyasına kaydederek yedekleyebilirsiniz. Daha sonra, sudo ufw reset komutuyla UFW’yi sıfırlayıp, kaydedilmiş komutları yeniden çalıştırarak kurallarınızı geri yükleyebilirsiniz.

  • Soru: UFW’nin performansı nasıl etkiler?

    Cevap: UFW, iptables’ın üzerinde çalışan hafif bir arayüzdür ve sistem performansı üzerinde minimal bir etkiye sahiptir. Çoğu durumda, UFW’nin getirdiği performans düşüşü fark edilmeyecek kadar azdır. Aksine, doğru yapılandırılmış bir güvenlik duvarı, kötü amaçlı trafikleri engelleyerek sistem kaynaklarının daha verimli kullanılmasını sağlayabilir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.