UFW nedir?
UFW yani Uncomplicated Firewall güvenlik duvarı yönetim aracıdır. Iptables güvenlik duvarı yapılandırmasını kolaylaştırmak için geliştirilen ufw, ipv4 veya v6 ile desteğiyle birlikte kullanıcıların işini epeyi kolaylaştırmaktadır. Varsayılan olarak UFW devre dışı olarak gelmektedir. UFW’yi konsol üzerinden yönetebileceğiniz gibi GUI desteği sayesinde konsol kullanmadan Gufw ile de yönetebilirsiniz. Ubuntu için varsayılan güvenlik duvarı yapılandırma aracıdır.
UFW kurulumu
UFW ubuntu üzerinde varsayılan geldiğinden dolayı farklı bir işletim sistemi kuruyorsanız aşağıdaki adımı izleyebilirsiniz.
Kurulum işleminin ardından aşağıdaki komut ile birlikte versiyon kontrolü sağlayabilirsiniz.
ÖNEMLİ: Eğer ki ev kullanıcı iseniz UFW sizler için varsayılan bir profil ile birlikte sisteminize dahil olmaktadır. Kısacası, ev kullanıcıları için istisnalar dışında tüm gelen istekler reddedilmektedir.
UFW yönetimi
UFW’yi etkinleştirmek yada pasifleştirmek için aşağıdaki komutu kullanabilirsiniz.
Mevcut UFW’ye ait kurallar dizisini görmek için aşağıdaki komutu kullanabilirsiniz.
[email protected]:/# ufw status verbose
Status: active
Logging: on (full)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
Henüz bir kural tanımlamadığımız kurallar dizisi görünmemektedir. Ancak UFW’nin mevcut durumuna ilişkin bilgi sahibi olabileceğimiz bilgiler yer almaktadır. Firewall’ın durumu, loglama hassasiyeti, ön tanımlı davranışını bu çıktı da yer almaktadır.
Kural içerikleri “/etc/ufw” altında “.rules” uzantısı ile biten dosyalarda yer almaktadır.
Kural oluşturma
UFW üzerinde iki farklı davranış allow, deny belirleyebilirsiniz. Allow ile izin verebilir, deny ile gelen istekleri reddedebilirsiniz.
Allow içeren kurallar aşağıdaki şekilde tanımlanabilir.
ufw allow <port>/<optional: protocol>
53.port üzerine gelen TCP ve UDP bağlantılarına izin verelim.
Yalnızca TCP üzerinden gelen bağlantılara izin vermek için,
Yalnızca UDP üzerinden gelen bağlantılara izin vermek için,
Deny içeren kurallar aşağıdaki şekilde tanımlanabilir.
ufw deny <port>/<optional: protocol>
53.port üzerine gelen TCP ve UDP bağlantılarını engelleyelim.
Yalnızca TCP üzerinden gelen bağlantıları engellemek için,
Yalnızca UDP üzerinden gelen bağlantıları engellemek için,
Belirli Subnet’e izin verelim.
Belirlenmiş bir IP adresine erişim izni verelim.
Belirlenmiş bir IP adresine yalnızca bir port için izin verelim.
RFC1918 adresleri yani 10.0.0.0/8, 172.16.0.0/12, 169.254.0.0/16, 192.168.0.0/16 olarak belirlenen adreslere izin verelim.
Bazı durumlarda kuralların birbirlerini bastırdığı durumlar olabilir. Örneğin: SSH bağlantılarını tümüyle kapatan bir kural eklediniz. Akabinde de spesifik bir adres için SSH izni verdiniz. Bu durumda ilk eklediğiniz kural gerçekleşecektir ve spesifik IP adresi bağlantı gerçekleştiremeyecektir.
Bu durumda araya kural eklemesi yapabilirsiniz.
Belirli bir IP adresi veya subnet için protokol sınırlaması getirelim.
Kural kaldırma
UFW üzerinde kural kaldırmak için kural oluşturma sırasında yazmış olduğunuz koda delete eklemeniz yeterlidir.
80.porta gelen bağlantıları engellemek için,
[email protected]:/# ufw deny 80/tcp
Belirlenen bu kuralı silmek için,
Yada tüm kurallar içerisinden belirlemiş olduğunuzu silmek istiyorsanız öncelikle aşağıdaki komutla kuralları numaralandırılmış halde listeleyin, ardından silmek istediğiniz kuralın numarasını ufw delete komutuna vermeniz yeterlidir.
[email protected]:/# ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 80/tcp DENY IN Anywhere
[ 2] 80/tcp (v6) DENY IN Anywhere (v6)
[email protected]:/# ufw delete 1
Deleting:
deny 80/tcp
Proceed with operation (y|n)? y
Rule deleted
Servisler için kural yazma
UFW /etc/services dosyasını da okuyabildiği için hizmet adına göre de izin verebilir veya reddedebilirsiniz. Servislerin listesini görmek için “/etc/services” dosyasına göz atabilirsiniz.
Servis ismiyle bağlantıya izin verilen kurallar aşağıdaki şekilde tanımlanabilir.
SSH servisine bağlantılara izin vermek için,
Servis ismiyle bağlantının reddedildiği kurallar aşağıdaki şekilde tanımlanabilir.
SSH servisine bağlantıları reddetmek için,
Loglama
UFW loglama için farklı bir değer belirtilmedikçe “low” yani düşük seviye loglama işlemi yapmaktadır. Loglama konusunda hassas davranmak istiyorsanız aşağıdaki komutu ‘off’, ‘low’, ‘medium’, ‘high’ ve ‘full’ değerleriyle birlikte kullanabilirsiniz.
Log kaydetme seviyeleri yükseldikçe daha fazla çıktı üreterek, yoğunluğunuza göre diskinizi hızla doldurabilir. Production ortamlarda yapılacak olan seviye belirlemelerinde bunu göz önünde bulundurmalısınız.
Loglama işlemini devre dışı bırakmak için,
En yüksek düzeyde loglama gerçekleştirmek için,
Loglama işlemini tamamiyle devre dışı bırakmak için,
Bir sonraki yazımda görüşmek dileğiyle.