Bloğa geri dön

Ubuntu 18.04 üzerinde UFW ile Güvenlik Duvarı Yapılandırma

Ubuntu 18.04 üzerinde UFW ile Güvenlik Duvarı Yapılandırma

Bir güvenlik duvarı bir sistemi güvence altına almanın temel bileşenlerinden biridir. Ağ üzerindeki gelen ve giden bağlantıları yönetmekten sorumludur. Sunucularınız ve verileriniz için birincil savunma hattıdır. Bu nedenle, iyi yapılandırılmış bir güvenlik duvarına sahip olmak son derece önemlidir. Bu kılavuzda, Ubuntu 18.04 üzerinde UFW ile bir güvenlik duvarı kurma adımlarında size yol göstereceğiz.

Ubuntu üzerinde UFW

Terim UFW “Uncomplicated Firewall” (Kolaylaştırılmış Güvenlik Duvarı) anlamına gelir. Ubuntu ile önceden yüklenmiş olarak gelen varsayılan bir güvenlik duvarı programıdır. UFW aslında iptables için bir arayüzdür. UFW'nin amacı, bir güvenlik duvarını yapılandırmayı ve yönetmeyi kolaylaştırmaktır. iptables tek başına sağlam ve esnek bir seçenek olsa da, yeni başlayanlar için pek uygun değildir. UFW, hem yeni başlayanlar hem de deneyimli kullanıcılar için işi kolaylaştırır.

İlk olarak, temel UFW işlevlerine aşina olmanıza yardımcı olacak kapsamlı kılavuzumuza göz atın. Ayrıca Ubuntu sunucunuzu kurmak için bu kılavuzu da takip edebilirsiniz. Şimdi başlayalım!

Başlamak gerekirse, herhangi bir nedenle UFW'niz kurulu değilse, hemen kurun:

UFW Yapılandırması

  • IPv6 Kullanımı

Şu an itibariyle IPv4 hala baskın güçtür. Bunu akılda tutarak, bu kılavuzun büyük bir kısmı IPv4'ü de içermektedir. Neyse ki UFW, IPv6 desteğiyle de birlikte gelir. Tek yapmanız gereken bu özelliği UFW yapılandırma dosyasından etkinleştirmektir.

İlk olarak, UFW yapılandırma dosyasını bir metin düzenleyicide açın. Değişiklikleri kaydetmek için metin düzenleyicinin sudo yetkisiyle çalıştırılması gerekir:

“IPV6” ifadesini arayın ve “yes” olarak ayarlandığından emin olun.

  • Varsayılan politika

Güvenlik duvarıyla ilk kez uğraşıyorsanız, önce varsayılan politikaları tanımlamanız önerilir. Bu kurallar, herhangi bir açık kuralla eşleşmeyen trafiğin nasıl kontrol edileceğini belirler. Varsayılan olarak UFW, gelen tüm bağlantıları reddedecek ancak giden tüm bağlantılara izin verecek şekilde yapılandırılmıştır. Sunucuda çalışan bir uygulama dışarıya erişebilirken, hiç kimsenin sunucuya erişemeyeceğini tanımlar.

Aşağıdaki komutlar sadece UFW'nin varsayılan davranışını yeniden tanımlayacaktır. Daha önce değiştirilmişse UFW davranışını değiştireceğini unutmayın:

Kişisel bir bilgisayar için yalnızca bu güvenlik duvarı kuralları yeterli olacaktır. Ancak sunucular, güvenliklerini düzgün bir şekilde sıkılaştırmak için daha fazlasını gerektirir.

SSH Bağlantılarına İzin Verme

UFW şu anda yapılandırıldığı şekliyle gelen tüm bağlantıları reddedecektir. Uzak bir sunucu için bu kabul edilemez bir durumdur. Sunucuya erişim olmadan hiçbir şey yapılamaz. Bu sorunu önlemek için UFW, gelen SSH veya HTTP bağlantılarına izin verecek şekilde yapılandırılabilir.

Sunucuya SSH bağlantılarına izin vermek için aşağıdaki komutu çalıştırın. Bu komut temel olarak UFW'ye şu porttaki tüm bağlantılara izin vermesini söyleyecektir: 22. Bu, SSH arka plan programının varsayılan olarak dinlediği porttur:

Bu komut yerine, doğrudan şu porta bağlantı izni verilmesini yapılandırmak da mümkündür: 22. Bu port şu dosya altında tanımlanmıştır: /etc/services dosyası:

Port 22 SSH arka plan programı için varsayılan olduğundan, saldırılara karşı da savunmasız olabilir. Peki ya SSH sunucusu farklı bir portu dinleyecek şekilde yapılandırılmışsa? Böyle bir durumda, UFW'nin o porta bağlantıya izin vermesi gerekir. SSH sunucusunun şu portu dinlediğini varsayarsak: 1234, o zaman aşağıdaki komutu kullanın:

UFW'yi Etkinleştirme

UFW kuralları oluşturulmuş olsa da, UFW etkinleştirilmediği sürece hiçbir şey yapmazlar. Varsayılan olarak UFW devre dışıdır, yani kuralları bildirmenize rağmen bunları uygulamaz. UFW'yi etkinleştirmek için aşağıdaki komutu çalıştırın:

UFW, mevcut SSH bağlantılarının kesilmesiyle ilgili bir uyarı mesajı gösterebilir. SSH bağlantılarına izin verilecek şekilde yapılandırıldığından, UFW'yi etkinleştirmek herhangi bir kesintiye neden olmaz. Hangi kuralların ayarlandığını görmek için aşağıdaki komutu çalıştırın:

Çeşitli Bağlantılara İzin Verme

Bu noktada, kararlı bir deneyim elde etmek için UFW'nin diğer kurallarla donatılması gerekir. İzin verilecek bağlantılar özel ihtiyaçlarınıza bağlıdır. UFW'ye bir hizmetin adına veya port numarasına göre bağlantılara nasıl izin verileceğini söyleyeceğimiz zaten gösterilmiştir.

Açık olması çok yaygın olan diğer bazı portlar şunlardır:

  • SSH (port 22): Bu, SSH bağlantıları için yapılandırılmış varsayılan porttur.
  • HTTP (port 80): Bu, şifrelenmemiş web sunucularının kullandığı varsayılan porttur.
  • HTTPS (port 443): Bu, şifrelenmiş web sunucularının kullandığı varsayılan porttur.

To enable SSH connections, run either of the following commands:

Ardından, HTTP bağlantılarını etkinleştirmek için aşağıdaki komutlardan birini çalıştırın:

HTTPS bağlantılarını etkinleştirmek için aşağıdaki komutlardan birini çalıştırın:

Port Aralığı

Şimdiye kadar belirli bir porta nasıl izin verileceğini gösterdik. Peki ya bir port aralığına ihtiyaç duyulursa? Her portu UFW'ye bildirmek oldukça verimsizdir. Bazı uygulamalar birden fazla port kullanır. Neyse ki UFW, bir port aralığı bildirmeye izin verir. Bunu yapmak için aşağıdaki komut yapısını kullanın:

Aşağıdaki örnek, şu portları kullanan X11 bağlantılarını etkinleştirir: 6000 ila 6007:

Mümkün olduğunda protokollerin belirtilmesi önerilir. Ancak çoğu durumda bu gerekli değildir ve her şey sorunsuz çalışacaktır.

Belirli IP Adresleri

UFW kullanırken, bağlantıları belirli IP adreslerine göre filtrelemek de mümkündür. Varsayılan olarak UFW, herhangi bir IP adresinden gelen bağlantıları engeller. Belirli IP adreslerinden gelen bağlantılara izin verileceğini bildirmek mümkündür. Bir IP adresinden gelen bağlantıya izin vermek için aşağıdaki komut yapısını kullanın:

IP adresinin bağlanmasına izin verilen belirli portları da bildirebilirsiniz. Bunu yapmak için komuta to any port ve ardından port numarasını ekleyin:

Alt Ağlar

Bir IP adresi alt ağına izin vermeniz gerekiyorsa, bunu CIDR gösterimini kullanarak yapabilirsiniz. Bu örnekte UFW, şu aralıktaki IP adreslerinden gelen bağlantılara izin verecektir: 203.0.113.1 ila 203.0.113.254:

Önceki adıma benzer şekilde, bu IP adreslerinin bağlanabileceği portu belirtmek de mümkündür:

Belirli Bir Ağ Arayüzüne Bağlanma

Bir sunucu ortamında, sisteme bağlı birden fazla ağ arayüzü olabilir. UFW kullanarak, belirli bir kuralın yalnızca belirli bir ağ arayüzü için geçerli olduğunu tanımlamak mümkündür. İlk olarak, sunucuya bağlı tüm ağ arayüzlerini kontrol edin. Hedef ağ arayüzünün adı birincil odaktır:

 firewall with UFW on Ubuntu 18.04. 4

Bizim durumumuzda, genel internete bağlanan yalnızca bir ağ arayüzü olan ens3 bulunmaktadır. Bu ağ arayüzünden gelen bağlantılara izin vermek için aşağıdaki komut yapısını kullanın:

Ağ arayüzünden gelen trafiğin ulaşabileceği portu tanımlamak da mümkündür:

Bağlantıyı Engelleme

Varsayılan yapılandırmaya göre UFW, herhangi bir kaynaktan gelen bağlantıyı reddedecektir (bildirilen istisnalar hariç). Bu, UFW'yi kullanmanın önerilen yoludur. Ancak, belirli bir kaynak IP adresinden veya alt ağdan gelen belirli bağlantıların engellenmesi gerekebilir. Belki de UFW'nin varsayılan davranışı tüm bağlantılara izin verecek şekilde ayarlanmıştır (önerilmez).

Belirli IP adreslerinden gelen bir bağlantıyı reddetmek için UFW, reddetme (deny) kuralları gerektirir. Reddetme kuralları yazmak oldukça basittir. Herhangi bir izin verme (allow) kuralını alın, “allow” terimini “deny” ile değiştirin ve işte! Bir reddetme kuralı haline geldi.

Aşağıdaki örneğe bir göz atın. Herhangi bir HTTP bağlantısını reddetmek için aşağıdaki reddetme kuralını kullanın:

Şu adresten gelen bağlantıyı reddetmek için: 203.0.113.1, aşağıdaki reddetme kuralını kullanın:

Kuralları Silme

Şimdiye kadar öğrendiğimiz tek şey kuralların nasıl oluşturulacağıdır. Kurallar oluşturulabildiği gibi silinebilir de. UFW durumunda, bir kuralı silmenin iki özel yolu vardır.

  • Kural numarasına göre kural silme

Bu, bir UFW kuralını silmenin en basit yoludur. UFW'deki her kuralın bir kural numarası vardır. Aşağıdaki komut, tüm UFW kurallarını kural numarasıyla birlikte yazdıracaktır:

 firewall with UFW on Ubuntu 18.04. 3

Aşağıdaki komut, kural numarası ile belirtilen kuralı silecektir:

  • Gerçek kurala göre kural silme

Bu, bir kuralı silmenin daha zor olan yöntemidir. Silmek için gerçek kuralın manuel olarak belirtilmesini gerektirir. Aşağıdaki örnekte UFW, şu kural tarafından belirtilen kuralı silecektir: allow http:

Kural ayrıca şu şekilde de belirtilebilirdi: allow 80. Bu durumda, aşağıdaki komut onu silecektir:

Bir kuralın silinmesi, onu hem IPv4 hem de IPv6 için silecektir.

UFW Durumunu ve Kurallarını Kontrol Etme

UFW'nin aktif olup olmadığından emin olmak önemlidir. UFW'nin durumunu belirlemek için aşağıdaki komutu çalıştırın:

 firewall with UFW on Ubuntu 18.04. 2

Eğer durum “inactive” (etkin değil) ise, yukarıdaki UFW'yi Etkinleştirme adımını takip ederek etkinleştirin. Eğer aktifse, UFW “active” (etkin) durumunu bildirecek ve tüm aktif kuralları listeleyecektir.

UFW'yi Devre Dışı Bırakma

Herhangi bir nedenle UFW'yi kullanmayacaksanız, aşağıdaki komutu kullanarak devre dışı bırakın:

UFW devre dışı bırakılırsa, oluşturulan tüm kurallar artık aktif olmaz. Ancak kurallar silinmez. UFW yeniden etkinleştirildiğinde, tüm kurallar tekrar aktif hale gelecektir. Peki ya mevcut UFW yapılandırması tam bir karmaşaysa? Kuralları tek tek silmek yerine, tek bir komutla hepsini silmek mümkündür. UFW'yi sıfırlamak için aşağıdaki komutu çalıştırın:

 firewall with UFW on Ubuntu 18.04. 1

Bunun, başlangıçta yapılandırılan varsayılan UFW davranışını değiştirmeyeceğini unutmayın.

Sonuç

Güvenliği ve işlevselliği sağlamak için düzgün bir güvenlik duvarı yapılandırması gereklidir. Gereksiz bağlantıları sınırlarken yalnızca gerekli gelen bağlantılara izin verecek şekilde yapılandırılmalıdır.

Daha fazla güvenlik duvarı çözümü hakkında bilgi edinmek istiyorsanız, daha fazla kaynak için blogumuza göz atın:

Keyifli çalışmalar!

author

Hark Labs

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.