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.
takip ediyorum düzenli olarak teşekkürler