Linux

Linux Sistemlerde UFW Kurulumu ve Yapılandırması

12 Dakika Okuma Süresi.

UFW (Uncomplicated Firewall), yazılımsal güvenlik duvarı servisidir. Karmaşık iptables servisini daha basit bir şekilde yönetebilmek için geliştirilen UFW hem IPv4, hemde IPv6 desteklemektedir. UFW kurulumu yapıldığında varsayılan olarak devre dışı gelmektedir. UFW’i konsol üzerinden komut yardımıyla yönetebileceğiniz gibi, GUI üzerindende yönetebilme imkanı mevcuttur.


UFW Nasıl Kurulur ?

UFW Ubuntu işletim sisteminde varsayılan olarak yüklü gelmektedir, ancak minimal bir kurulum yapıyor veya farklı bir işletim sistemi kullanıyorsanız aşağıdaki komutlar yardımıyla kurulumu gerçekleştirebilirsiniz.

CentOS, Fedora, AlmaLinux, RockLinux (RHEL Tabanlı):

yum install -y ufw

Ubuntu, Debian vb:

apt install -y ufw

İlgili komutları çalıştırdıktan sonra başarılı bir şekilde yüklendiğinden emin olabilmek için aşağıdaki komut yardımıyla kurulumu sağlanan servisin versiyon bilgisini görüntüleyebilirsiniz.

ufw version

UFW Nasıl Yönetilir ?

UFW yönetimi için aşağıdaki adımları takip ederek güvenlik duvarınızı en basit şekilde yönetebilirsiniz.

UFW Enable

Güvenlik duvarı servisini aşağıdaki komut ile birlikte aktifleştirebilirsiniz.

[root@mertkarakulak ~]# ufw enable
Firewall is active and enabled on system startup
UFW Disable

Güvenlik duvarı servisini aşağıdaki komut ile birlikte devre dışı bırakabilirsiniz.

[root@mertkarakulak ~]# ufw disable
Firewall stopped and disabled on system startup
UFW Status

Güvenlik duvarı servisini aşağıdaki komut ile birlikte durum ve detaylar gibi bilgilere ulaşabilirsiniz.

[root@mertkarakulak ~]# ufw status
Status: active
Logging: on (high)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

Yeni kurulum yapıldığında veya daha hiç bir kural eklenmediğinde yukarıdaki gibi servis ile alakalı bilgilere ulaşıp, hali hazırda kural olmaması nedeniyle listelenmemektedir. Kural eklendikten sonra status bölümünden kurallarınızı listeleyebilirsiniz.

Durum bölümünde ise servisin aktifliği, loglama seviyesi, varsayılan ayarlamalar hakkında bilgi verecektir. Kural ile ilgili detayları ise /etc/ufw dizininde .rules uzantılı dosyalarda bulunmaktadır.


UFW’de Kural Ekleme

Güvenlik duvarı üzerinde iki adet aksiyon bulunmaktadır, bunlardan biri allow diğeri ise deny şeklindedir. Allow, gelen isteklere izin verirken, Deny ise gelen isteklere red edecektir.

İzin Ver (Action: Allow)

MySQL (3306) portuna gelen istekleri hem TCP hem de UDP protokollerinde izni vermek için;

ufw allow 3306

MySQL (3306) portuna gelen istekleri sadece TCP protokolü üzerinde izni vermek için;

ufw allow 3306/tcp

MySQL (3306) portuna gelen istekleri sadece UDP protokolü üzerinde izni vermek için;

ufw allow 3306/udp

Engelle (Action: Deny)

MySQL (3306) portuna gelen istekleri hem TCP hem de UDP protokollerinde engellemek vermek için;

ufw deny 3306

MySQL (3306) portuna gelen istekleri sadece TCP protokolü üzerindeengellemek vermek için;

ufw deny 3306/tcp

MySQL (3306) portuna gelen istekleri sadeceUDP protokolü üzerindeengellemek vermek için;

ufw deny 3306/udp

Port Aralıklarına İzin Ver

5700 – 5800 portları arasındaki tüm bağlantılara hem TCP hem de UDP bağlantı izni vermek için;

sudo ufw allow 5700:5800/tcp
sudo ufw allow 5700:5800/udp

Static IP Tanımları

Dışarıdan gelen (Outbound) trafik üzerinde ALL port/protokol üzerinde sabit bir IP adresine izin vermek için;

ufw allow from 172.16.1.1

Dışarıdan gelen (Outbound) trafik üzerinde ALL port/protokol üzerinde sabit bir IP adresini engellemek için;

ufw deny from 172.16.1.1

Sabit IP adresine sadece 3306 portuna erişim izni vermek için;

ufw allow from 172.16.1.1 to any port 3306

Subnet Tanımları

Dışarıdan gelen (Outbound) trafik üzerinde ALL subnet’e izin vermek için;

ufw allow from 172.16.0.0/24

Dışarıdan gelen (Outbound) trafik üzerinde ALL subnet’i engellemek için;

ufw deny from 172.16.0.0/24

Subnet üzerinde belirtli bir ip aralığına sadece 3306 portuna erişim izni vermek için;

ufw allow from 172.16.0.0/24 to any port 3306

NIC (Network Interface Card) Tanımı

Belirli bir network interface üzerinde 3306 trafiğine erişim izni vermek için;

ufw allow in on en0 to any port 3306

Kural Önceliği

İlk eklenen kural ilk geçerelidir, örneğin MySQL (3306) portuna ilk olarak tüm ip adreslerine erişimi engelleyip, daha sonrasında belirli bir ip adresine izin verirseniz, ilk tüm istekleri engelleme kuralı olduğundan çalışmayacaktır. Bu durumum önüne geçmek içinse aşağıdaki adımları takip edebilirsiniz.

İlk sırada sabit ip adresine 3306 portuna erişim izni kuralı tanımlamak için;

ufw insert 1 allow from 172.16.1.1 to any port 443

Mevcut kuralların sırasını görüntülemek için aşağıdaki komutu çalıştırabilirsiniz.

[root@mertkarakulak ~]# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 443                        ALLOW IN    172.16.1.1              
[ 2] SSH                        ALLOW IN    Anywhere                  
[ 3] Anywhere                   ALLOW IN    172.16.0.0/24            
[ 4] 53/tcp                     DENY IN     Anywhere                  
[ 5] 25                         DENY IN     Anywhere                  
[ 6] 443                        DENY IN     Anywhere                  
[ 7] SSH (v6)                   ALLOW IN    Anywhere (v6)             
[ 8] 53/tcp (v6)                DENY IN     Anywhere (v6)             
[ 9] 25 (v6)                    DENY IN     Anywhere (v6)             
[10] 443 (v6)                   DENY IN     Anywhere (v6)   

UFW’de Kural Silme

Daha önce tanımlanan kuralları silmek için bir kaç yol bulunmaktadır, bu yöntemler aşağıda listelenmiştir.

Daha önce kural eklemek için kullandığımız mantık aynı şekilde geçerli olmakla beraber aksiyonun hemen öncesinde silmek istediğiniz kuralın başına delete getirerek ilgili kuralı silebilmekteyiz.

MySQL (3306) portuna gelen istekleri hem TCP hem de UDP protokollerinde izni veren kuralı silmek için;

ufw delete allow 3306

MySQL (3306) portuna gelen istekleri sadece TCP protokolü üzerinde engelleyen kuralı silmek için;

ufw delete deny 3306/tcp

MySQL (3306) portuna gelen istekleri sadece UDP protokolü üzerindeengelleyen kuralı silmek için;

ufw delete deny 3306/udp

Bir diğer yöntem ise numaralandırıp, ilgili satırı silebilmekte mümkündür bu işlem için aşağıdaki adımları takip edebilirsiniz.

[root@mertkarakulak ~]# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 443                        ALLOW IN    172.16.1.1              
[ 2] SSH                        ALLOW IN    Anywhere                  
[ 3] Anywhere                   ALLOW IN    172.16.0.0/24            
[ 4] 53/tcp                     DENY IN     Anywhere                  
[ 5] 25                         DENY IN     Anywhere                  
[ 6] 443                        DENY IN     Anywhere                  
[ 7] SSH (v6)                   ALLOW IN    Anywhere (v6)             
[ 8] 53/tcp (v6)                DENY IN     Anywhere (v6)             
[ 9] 25 (v6)                    DENY IN     Anywhere (v6)             
[10] 443 (v6)                   DENY IN     Anywhere (v6)

Kuralları listeledikten sonra silmek istediğimiz satırın başındaki numarayı aşağıdaki komut yardımıyla silebiliriz.

[root@mertkarakulak ~]# ufw delete 1
Deleting:
 allow from 172.16.1.1 to any port 443
Proceed with operation (y|n)? y
Rule deleted

Not: Kuralı silmek için onayınızı isteyecektir, onay için klavyeden Y tuşuna basıp, daha sonrasında enter tuşu yardımıyla işleme onay verebilirsiniz.


UFW Sıfırlama

UFW sıfırlama işleminde, servis durdurulur ve içerisinde yer alan tüm kurallar silinir. Mevcut olan kuralları ise bir dizinde yedekleyebilir. Bu işlem içinse aşağıdaki komutu çalıştırabilirsiniz.

[root@mertkarakulak ~]# ufw reset
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y

Bu aşamaya kadar sorunsuz geldiyseniz başarılı bir şekilde güvenlik duvarınızı yapılandırdığınız anlamına gelmektedir.

Kurulum ve konfigürasyon sırasında bir problem ile karşılaşırsanız yorumlardan veya iletişim alanından bana ulaşabilirsiniz.

1 Comment

  1. Halit

    takip ediyorum düzenli olarak teşekkürler

Bir yanıt yazın