UFW Nasıl Kurulur ve Yapılandırılır - Debian/Ubuntu'da Karmaşık Olmayan Bir Güvenlik Duvarı


Bilgisayarlar birbirine bağlı olduğundan hizmetler hızla artıyor. E-posta, Sosyal Medya, Çevrimiçi Alışveriş, Web Konferansı'na kadar Sohbet, kullanıcı tarafından kullanılır. Ancak diğer taraftan bu bağlantı çift taraflı bir bıçağı andırıyor. Ayrıca Virüs, kötü amaçlı yazılım, truva atı uygulamaları gibi bilgisayarlara kötü mesajlar göndermek de mümkündür.

En büyük bilgisayar ağı olan internet her zaman iyi insanlarla dolu değildir. Bilgisayarlarımızın/sunucularımızın güvende olduğundan emin olmak için onu korumamız gerekiyor.

Bilgisayarınızda/sunucularınızda bulunması gereken bileşenlerden biri de Güvenlik Duvarı'dır. Wikipedia'dan alınan bir tanım şöyledir:

Bilgi işlemde güvenlik duvarı, veri paketlerini analiz ederek ve uygulanan kural kümesine göre bunların geçmesine izin verilip verilmeyeceğini belirleyerek gelen ve giden ağ trafiğini kontrol eden yazılım veya donanım tabanlı bir ağ güvenlik sistemidir.

Iptables, sunucular tarafından yaygın olarak kullanılan güvenlik duvarlarından biridir. Sunucuya gelen ve giden trafiği bir dizi kurala göre yönetmek için kullanılan bir programdır. Genellikle sunucuya yalnızca güvenilir bağlantının girmesine izin verilir. Ancak IPTables konsol modunda çalışıyor ve karmaşık. İptables kurallarına ve komutlarına aşina olanlar iptables güvenlik duvarının nasıl kullanılacağını anlatan aşağıdaki makaleyi okuyabilirler.

  1. Temel IPTable'lar (Linux Güvenlik Duvarı) Kılavuzu

Debian/Ubuntu'da UFW Güvenlik Duvarının Kurulumu

IPTable'ların nasıl yapılacağının karmaşıklığını azaltmak için çok sayıda ön kısım vardır. Ubuntu Linux çalıştırıyorsanız varsayılan güvenlik duvarı aracı olarak ufw'yi bulacaksınız. ufw güvenlik duvarını keşfetmeye başlayalım.

ufw nedir

ufw (Karmaşık Güvenlik Duvarı), en yaygın olarak kullanılan iptables güvenlik duvarı için bir ön uçtur ve ana bilgisayar tabanlı güvenlik duvarları için oldukça kullanışlıdır. ufw, netfilter'ı yönetmek için bir çerçeve sağlamanın yanı sıra, güvenlik duvarını kontrol etmek için bir komut satırı arayüzü sağlar. Güvenlik duvarı kavramlarına pek aşina olmayan Linux'a yeni başlayanlar için kullanıcı dostu ve kullanımı kolay bir arayüz sağlar.

Öte yandan aynı karmaşık komutlar, yöneticilerin komut satırı arayüzünü kullanarak karmaşık kurallar belirlemesine yardımcı olur. ufw, Debian, Ubuntu ve Linux Mint gibi diğer dağıtımlar için bir üst düzeydir.

Temel Kullanım

Öncelikle aşağıdaki komutu kullanarak ufw'nin kurulu olup olmadığını kontrol edin.

sudo dpkg --get-selections | grep ufw

ufw 		install

Kurulu değilse aşağıda gösterildiği gibi apt komutunu kullanarak kurabilirsiniz.

sudo apt-get install ufw

Kullanmadan önce ufw'nin çalışıp çalışmadığını kontrol etmelisiniz. Kontrol etmek için aşağıdaki komutu kullanın.

sudo ufw status

Durum: etkin değil'i bulduysanız bu, etkin olmadığı veya devre dışı olduğu anlamına gelir.

YENİ! Her Linux yöneticisi için vazgeçilmez bir e-kitap!

696 Sayfalık Ücretsiz e-Kitabı İndirin

ufw'yi Etkinleştirme/Devre Dışı Bırakma

Etkinleştirmek için terminale aşağıdaki komutu yazmanız yeterlidir.

sudo ufw enable

Firewall is active and enabled on system startup

Devre dışı bırakmak için yazmanız yeterlidir.

sudo ufw disable

Mevcut ufw kurallarını listeleyin

Güvenlik duvarı etkinleştirildikten sonra kurallarınızı buna ekleyebilirsiniz. Varsayılan kuralların neler olduğunu görmek istiyorsanız yazabilirsiniz.

sudo ufw status verbose
Örnek Çıktı
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Ufw kuralları nasıl eklenir

Gördüğünüz gibi, varsayılan olarak her gelen bağlantı reddedilir. Makinenizi uzaktan kumanda etmek istiyorsanız uygun bağlantı noktasına izin vermelisiniz. Örneğin ssh bağlantısına izin vermek istiyorsunuz. İşte buna izin verecek komut.

Erişime izin vermek
sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Durumu tekrar kontrol ettiğinizde şu şekilde bir çıktı göreceksiniz.

sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Çok fazla kuralınız varsa ve her kurala anında sayı koymak istiyorsanız, numaralı parametreyi kullanın.

sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

İlk kural, hem tcp hem de udp paketlerinden Herhangi bir yerden bağlantı noktası 22'ye gelen bağlantıya izin verildiğini belirtir. Yalnızca tcp paketine izin vermek istiyorsanız ne olur? Daha sonra port numarasından sonra tcp parametresini ekleyebilirsiniz. İşte örnek çıktıya sahip bir örnek.

sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)
Giriş reddedildi

Aynı hileler Reddet kuralına da uygulanır. Diyelim ki ftp kuralını reddetmek istiyorsunuz. Yani sadece yazmanız yeterli.

sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Belirli Bağlantı Noktası Ekleme

Bazen herhangi bir standarda uymayan özel bir bağlantı noktamız olur. Makinemizdeki ssh bağlantı noktasını 22'den 2290'a değiştirdiğimizi varsayalım. Daha sonra 2290 bağlantı noktasına izin vermek için onu şu şekilde ekleyebiliriz.

sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Kurala bağlantı noktası aralığı eklemeniz de mümkündür. 22902300 arası portları tcp protokolü ile açmak istersek komut bu şekilde olacaktır.

sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

udp kullanmak istiyorsanız aşağıdaki komutu kullanmanız yeterlidir.

sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Lütfen 'tcp' veya 'udp' ifadesini açıkça yazmanız gerektiğini unutmayın, aksi takdirde aşağıdakine benzer bir hata mesajı alırsınız.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Belirli IP Ekleme

Daha önce hizmeti veya bağlantı noktasını temel alan kurallar eklemiştik. Ufw ayrıca IP Adresine dayalı olarak kurallar eklemenize de olanak tanır. İşte örnek komut.

sudo ufw allow from 192.168.0.104

Aralığı genişletmek için alt ağ maskesi de kullanabilirsiniz.

sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Gördüğünüz gibi from parametresi yalnızca bağlantının kaynağını sınırlayacaktır. Kime sütunuyla temsil edilen hedef ise Her Yer'dir. Hedefi 'Kime' parametresini kullanarak da yönetebilirsiniz. Bağlantı noktası 22'ye (ssh) erişime izin veren örneği görelim.

sudo ufw allow to any port 22

Yukarıdaki komut, herhangi bir yerden ve herhangi bir protokolden bağlantı noktası 22'ye erişime izin verecektir.

Parametreleri Birleştirme

Daha spesifik kurallar için IP Adresini, protokolü ve bağlantı noktasını da birleştirebilirsiniz. Diyelim ki bağlantıyı yalnızca IP 192.168.0.104'ten, yalnızca tcp protokolünden ve 22 bağlantı noktasına sınırlayan bir kural oluşturmak istiyoruz. Daha sonra komut aşağıdaki gibi olacaktır.

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

Reddetme kuralı oluşturma sözdizimi izin verme kuralına benzer. Yalnızca parametreyi izin ver yerine reddet olarak değiştirmeniz gerekir.

Kuralların Silinmesi

Bazen mevcut kuralınızı silmeniz gerekebilir. Bir kez daha ufw ile kuralları silmek kolaydır. Yukarıdaki örnekte, aşağıda bir kuralınız var ve onu silmek istiyorsunuz.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Kuralları silmenin iki yöntemi vardır.

Yöntem 1

Aşağıdaki komut, ftp hizmetiyle eşleşen kuralları silecektir. Yani ftp bağlantı noktası anlamına gelen 21/tcp silinecek.

sudo ufw delete allow ftp
Yöntem 2

Ancak yukarıdaki örnekte ilk kuralı aşağıdaki komutu kullanarak silmeye çalıştığınızda.

sudo ufw delete allow ssh

Or 

sudo ufw delete allow 22/tcp

Gibi bir hata mesajı bulabilirsiniz.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

O zaman bu numarayı yapabilirsiniz. Yukarıda da belirttiğimiz gibi hangi kuralı silmek istediğimizi belirtmek için kural sayısını gösterebilirsiniz. Size gösterelim.

sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Daha sonra kullanarak ilk kuralı silebilirsiniz. “y ” tuşuna bastığınızda kural kalıcı olarak silinir.

sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Bu yöntemlerden farkı göreceksiniz. Yöntem 2, kuralı silmeden önce kullanıcı onayı ister, ancak yöntem 1 bunu istemez.

Kuralları Sıfırlama

Bazı durumlarda, tüm kuralları silmek/sıfırlamak isteyebilirsiniz. Bunu yazarak yapabilirsiniz.

sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

"y " tuşuna basarsanız ufw, ufw'nizi sıfırlamadan önce mevcut tüm kuralları yedekleyecektir. Kuralların sıfırlanması güvenlik duvarınızı da devre dışı bırakacaktır. Kullanmak istiyorsanız tekrar etkinleştirmeniz gerekir.

Gelişmiş İşlevsellik

Yukarıda da belirttiğim gibi ufw güvenlik duvarı iptables'ın yapabildiği her şeyi yapabilir. Bu, iptables-restore uygun metin dosyalarından başka bir şey olmayan çeşitli kural dosyaları kümeleri kullanılarak gerçekleştirilir. Ufw'de ince ayar yapılması ve/veya ufw komutu aracılığıyla izin verilmeyen ek iptables komutlarının yerleştirilmesi, birkaç metin dosyasının düzenlenmesiyle ilgilidir.

  1. /etc/default/ufw: Varsayılan ilkeler, IPv6 desteği ve çekirdek modülleri için ana yapılandırma.
  2. /etc/ufw/before[6].rules: Bu dosyalardaki kurallar, ufw komutu aracılığıyla eklenen kurallardan önce hesaplanır.
  3. /etc/ufw/after[6].rules: Bu dosyalardaki kurallar, ufw komutu aracılığıyla eklenen kurallardan sonra hesaplanır.
  4. /etc/ufw/sysctl.conf: çekirdek ağı ayarlanabilirleri.
  5. /etc/ufw/ufw.conf: ufw'nin önyükleme sırasında etkinleştirilip etkinleştirilmeyeceğini ayarlar ve LOGLEVEL'i ayarlar.

Çözüm

İptables'ın ön ucu olarak UFW kesinlikle kullanıcı için kolay bir arayüz sağlar. Kullanıcının karmaşık iptables sözdizimini hatırlamasına gerek yoktur. UFW ayrıca parametre olarak "sade ingilizce"yi kullanır.

İzin ver, reddet, sıfırla bunlardan biridir. Orada çok daha fazla iptables ön ucu olduğuna inanıyorum. Ancak güvenlik duvarını hızlı, kolay ve elbette güvenli bir şekilde kurmak isteyen kullanıcılar için kesinlikle ufw en iyi alternatiflerden biridir. Daha fazla ayrıntı için lütfen man ufw yazarak ufw kılavuz sayfasını ziyaret edin.