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
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)
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