Debian 10 Üzerinde UFW İle Güvenlik Duvarı Kurulumu & Yapılandırması

Düzgün yapılandırılmış bir güvenlik duvarı, genel sistem güvenliğinin en önemli parçasıdır.

UFW (Karmaşık Olmayan Güvenlik Duvarı), iptables güvenlik duvarı kurallarını yönetmek için kullanıcı dostu bir kullanıcı ara birimdir. Ana hedefi iptables yönetimini kolaylaştırmak veya adından da anlaşılacağı gibi karmaşık olmamaktır :slight_smile:

Bu makalede, Debian 10’da UFW ile güvenlik duvarının nasıl kurulacağı ve yapılandırılacağını öğreneceğiz.

Ön şartlar

Sistem güvenlik duvarını yalnızca root ya da sudo ayrıcalıklarına sahip kullanıcılar yönetebilir.

UFW Kurulumu

Öncelikle ufw paketini yüklemek için aşağıdaki komutu girin :

sudo apt update
sudo apt install ufw -y

UFW Durumunu Kontrol Etme

UFW, sunucuda bulunan hizmetlerin kilitlenmesini önlemek için güvenlik duvarını kurulumdan sonra otomatik olarak etkinleştirmez. UFW’nin durumunu aşağıdaki komutları yazarak kontrol edebilirsiniz:

sudo ufw status verbose

Çıktı şöyle görünecektir:

Status: inactive

UFW etkinleştirilirse, çıktı aşağıdakine benzer olacaktır:

UFW Varsayılan Politikaları

Varsayılan olarak, UFW gelen tüm bağlantıları engeller ve sunucudan tüm giden bağlantılara izin verir. Bu, herhangi bir bağlantı noktasını özellikle açmadığınız sürece sunucunuza erişmeye çalışan hiç kimsenin bağlanamayacağı anlamına gelir. Sunucuda çalışan uygulamalar ve hizmetler dışarıya erişebilecektir.

Varsayılan politikalar /etc/default/ufw dosyasında tanımlıdır ve sudo ufw default <policy> <chain> komutları kullanılarak değiştirilebilir.

Güvenlik duvarı politikaları, daha ayrıntılı ve kullanıcı için esnek tanımlı kurallar oluşturmanın temelini oluşturur. Genellikle, başlangıç ​​UFW Varsayılan Politikaları iyi bir başlangıç ​​noktasıdır.

Uygulama Profilleri

Uygulamaların çoğu, hizmeti tanımlayan ve UFW ayarlarını içeren bir uygulama profiliyle birlikte gönderilir. Profil, /etc/ufw/applications.d paketinin yüklenmesi sırasında dizinde otomatik olarak oluşturulur.

Sisteminizde bulunan tüm UFW uygulama profillerini listelemek için:

sudo ufw utf --help

Sisteminizde kurulu olan paketlere bağlı olarak, çıktı aşağıdakine benzer olacaktır:

Available applications:
  DNS
  IMAP
  IMAPS
  OpenSSH
  POP3
  POP3S
  Postfix
  Postfix SMTPS
  Postfix Submission

Belirli bir profil ve kuralları hakkında daha fazla bilgi bulmak için, app info komutunun ardından profil adını kullanın. Örneğin, OpenSSH profili hakkında detaylı bilgi almak için:

sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

Çıktıda profil adı, başlık, açıklama ve güvenlik duvarı kuralları bulunur.

SSH Bağlantılarına İzin Verin

UFW güvenlik duvarını etkinleştirmeden önce, gelen SSH bağlantılarına izin vermeniz gerekecektir.

Sunucunuza uzak bir konumdan bağlanıyorsanız ve gelen SSH bağlantılarına açıkça izin vermeden önce UFW güvenlik duvarını etkinleştirirseniz, Debian sunucunuza artık bağlanamazsınız.

UFW güvenlik duvarınızı SSH bağlantılarını kabul edecek şekilde yapılandırmak için aşağıdaki komutu çalıştırın:

sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)

:warning: SSH sunucunuz varsayılan bağlantı noktası olan 22 dışındaki bir bağlantı noktasını dinliyorsa, sizin bu bağlantı noktasını açmanız gerekecektir.

Örneğin, SSH sunucunuz 7722 bağlantı noktasını dinliyorsa, şu komutu çalıştırmalısınız:

sudo ufw allow 7722/tcp

UFW’yi Etkinleştirin

UFW güvenlik duvarı, gelen SSH bağlantılarına izin verecek şekilde yapılandırıldığına göre, aşağıdaki komutları çalıştırarak etkinleştirin:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Güvenlik duvarını etkinleştirmenin mevcut SSH bağlantılarını bozabileceği konusunda uyarı alacaksınız. Y yazın ve Enter tuşuna basın.

Daha Fazla Bağlantı Noktasını Açın

Sunucunuzda çalışan uygulamalara bağlı olarak, hizmetlerin çalıştığı bağlantı noktalarını açmanız gerekecektir.

Aşağıda, en yaygın hizmetlerden bazılarına gelen bağlantılara nasıl izin verileceğine ilişkin birkaç örnek vereceğim:

HTTP İçin 80 Numaralı Bağlantı Noktasını Açın

HTTP bağlantılarına izin vermek için:

sudo ufw allow http

http profili yerine, bağlantı noktası numarası 80 de kullanabilirsiniz :

sudo ufw allow 80/tcp

HTTPS İçin 443 Numaralı Bağlantı Noktasını Açın

HTTPS bağlantılarına izin vermek için:

sudo ufw allow https

Bağlantı noktası numarası 443 de kullanabilirsiniz:

sudo ufw allow 443/tcp

8080 numaralı bağlantı noktasını açın

Tomcat veya 8080 bağlantı noktasını dinleyen başka bir uygulamayı çalıştıracaksanız aşağıdaki komutu çalıştırabilirsiniz:

sudo ufw allow 8080/tcp

Bağlantı Noktası Aralıklarını Yapılandırın

UFW ile bağlantı noktası aralıklarına erişime de izin verebilirsiniz. Bir aralık açarken bağlantı noktası protokolünü de belirtmelisiniz.

Örneğin, 7100 ile 7200 bağlantı noktaları aralığında gelen bağlantılara tcp ve udp için izin verecekseniz aşağıdaki gibi komutlar vermelisiniz:

sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp

Sadece Belirlenen IP Adreslerine Bağlantı İzni Verin

Belirli bir IP adresinden tüm bağlantı noktalarına erişime izin vermek için ufw allow from komutunu kullanın:

sudo ufw allow from 12.34.56.78

Bir Bağlantı Noktası İçin Sadece Belirlenen IP Adresine İzin Verin

Belirli bir bağlantı noktasına yalnızca belirlenen bir IP adresinden erişime izin vermek için aşağıdaki komutu kullanabilirsiniz:

sudo ufw allow from 12.34.56.78 to any port 22

Alt Ağlara İzin Verin

Bir IP adresi alt ağından bağlantıya izin verme komutu aslında tek bir IP adresine izin verme komutu ile aynıdır. Tek fark, ağ maskesini belirtmeniz gerektiğidir. Örneğin, 192.168.1.1 ile 192.168.1.254 IP adresleri aralığında 3360 bağlantı noktasına (MySQL için) erişime izin vermek istiyorsanız, şu komutu kullanabilirsiniz:

sudo ufw allow from 192.168.1.0/24 to any port 3306

Yalnızca Belirlenen Bir Ağ Biriminden Bağlantılara İzin Verin

Yalnızca belirlenen bir ağ biriminden, belirli bir bağlantı noktasına erişime izin vermek için, diyelim ki 3360 numaralı bağlantı noktasına yalnızca eth2 ağ biriminden izin vermek istiyoruz, ağ ara biriminin adıyla birlikte allow in on komutunu kullanmalısınız.

sudo ufw allow in on eth2 to any port 3306

Bağlantıları Reddedin

Tüm gelen bağlantılar için varsayılan ilke deny, yani UFW ile özellikle bağlantı noktalarını açmazsanız tüm gelen bağlantıları engelle olarak ayarlanmıştır.

Diyelim ki 80 ve 443 bağlantı noktalarını açtınız sunucunuz 23.24.25.0/24 ağından saldırı altında. 23.24.25.0/24 kaynağından gelen tüm bağlantıları reddetmek için aşağıdaki komutu kullanabilirsiniz:

sudo ufw deny from 23.24.25.0/24

Yalnızca 80 ve 443 gelen bağlantı noktalarına erişimi engellemek istiyorsanız şu komutu kullanabilirsiniz:

sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443

Reddetme kuralları yazmak, izin verme kuralları ile aynıdır. Sadece allow yerine deny değerini değiştirmeniz gerekecektir.

UFW Kurallarını Silin

UFW kurallarını silmenin iki farklı yolu vardır. Kural numarasına göre ve gerçek kuralı belirterek.

Özellikle UFW’de yeniyseniz, UFW kurallarını kural numarasına göre silmek daha kolaydır.

Bir kuralı numarasına göre silmek için, silmek istediğiniz kuralın numarasını bulmanız gerekir. Bunu yapmak için aşağıdaki komutu çalıştırın:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

8080 numaralı bağlantı noktasına bağlantılara izin veren kural olan 3 numaralı kuralı silmek için aşağıdaki komutu kullanabilirsiniz:

sudo ufw delete 3

İkinci yöntem, gerçek kuralı belirterek bir kuralı silmektir. Örneğin, 8069 bağlantı noktasını açmak için bir kural eklediyseniz, aşağıdaki gibi komutla silebilirsiniz:

sudo ufw delete allow 8069

UFW’yi Devre Dışı Bırakın

Herhangi bir nedenle UFW’yi durdurmak ve tüm kuralları devre dışı bırakmak istiyorsanız sadece şu komutu yazmanız yeterlidir:

sudo ufw disable

Daha sonra UFW’yi yeniden etkinleştirmek ve tüm kuralları etkinleştirmek istiyorsanız sadece şu komutu yazmanız yeterlidir:

sudo ufw enable

UFW’yi Sıfırlayın

UFW sıfırlandığında, UFW devre dışı bırakılır ve tüm etkin kurallar silinir. Tüm değişikliklerinizi geri almak ve yeni bir başlangıç ​​yapmak istiyorsanız bu yararlı bir işlemdir.

UFW’yi sıfırlamak için aşağıdaki komutu yazmanız yeterli olacaktır:

sudo ufw reset

Sonuç

Debian 10 sunucunuza UFW güvenlik duvarını nasıl kuracağınızı ve yapılandıracağınızı öğrendiniz. Tüm gereksiz bağlantıları sınırlandırırken sisteminizin düzgün çalışması için gerekli olan tüm gelen bağlantılara izin verdiğinizden emin oldunuz.

Bir sorunla karşılaşırsanız, geri bildirim bırakmak isterseniz, aşağıdan yanıt bırakabilirsiniz :slight_smile: