Takip et

Debian 10 Üzerinde UFW ile Güvenlik Duvarı Kurulumu ve Yönetimi

Debian 10 Üzerinde UFW ile Güvenlik Duvarı Kurulumu ve Yönetimi Giriş Günümüzün birbirine bağlı dijital dünyasında, sunucu ve ağ güven

Debian 10 Üzerinde UFW ile Güvenlik Duvarı Kurulumu ve Yönetimi

Giriş

Günümüzün birbirine bağlı dijital dünyasında, sunucu ve ağ güvenliği her zamankinden daha kritik hale gelmiştir. İnternet’e açık bir sistem, sürekli olarak kötü niyetli saldırılara, yetkisiz erişim denemelerine ve çeşitli siber tehditlere maruz kalmaktadır. Bu tehditlere karşı ilk ve en önemli savunma hatlarından biri güvenlik duvarıdır (firewall). Güvenlik duvarı, bir ağ ile başka bir ağ arasındaki trafiği izleyen ve belirli güvenlik kurallarına göre izin veren veya engelleyen bir sistemdir.

Debian gibi Linux tabanlı işletim sistemlerinde, güvenlik duvarı işlevselliği genellikle iptables adlı güçlü ve esnek bir araç tarafından sağlanır. Ancak iptables, karmaşık sözdizimi ve detaylı yapılandırma gereksinimleri nedeniyle yeni başlayanlar veya hızlı bir kurulum yapmak isteyenler için göz korkutucu olabilir. İşte bu noktada UFW (Uncomplicated Firewall) devreye girer. UFW, iptables için kullanıcı dostu bir arayüz (frontend) sağlayarak, güvenlik duvarı kurallarını çok daha basit ve anlaşılır bir şekilde yönetmenize olanak tanır.

Bu kapsamlı teknik makale, Debian 10 (Buster) işletim sistemi üzerinde UFW’nin nasıl kurulacağını, yapılandırılacağını ve yönetileceğini adım adım açıklayacaktır. Amacımız, sunucunuzun güvenliğini artırmak için temelden ileri seviyeye kadar UFW kullanımını öğrenmenizi sağlamaktır. Makale boyunca, varsayılan politikaların belirlenmesinden belirli portlara ve IP adreslerine izin verme/engelleme kurallarına, uygulama profillerinin kullanımından yaygın senaryolara kadar birçok konuya değineceğiz.

Ön Koşullar

Bu makaledeki adımları takip edebilmek için aşağıdaki ön koşullara sahip olmanız gerekmektedir:
* Debian 10 (Buster) işletim sistemine sahip bir sunucu veya sanal makine.
* sudo ayrıcalıklarına sahip bir kullanıcı veya root erişimi.
* Temel Linux komut satırı bilgisi.
* Temel ağ kavramları (portlar, protokoller, IP adresleri) hakkında genel bir anlayış.
* Eğer sunucuya uzaktan bağlanıyorsanız, SSH erişiminizin olması kritik öneme sahiptir. UFW’yi etkinleştirmeden önce SSH erişimine izin vermek, kendinizi sistemden kilitlememek için hayati bir adımdır.

1. UFW’ye Giriş

1.1 UFW Nedir?

UFW, “Uncomplicated Firewall” kelimelerinin kısaltmasıdır ve adından da anlaşılacağı gibi, Linux sistemlerinde güvenlik duvarı yönetimini basitleştirmek amacıyla tasarlanmış bir araçtır. Aslında UFW, arka planda iptables komutlarını kullanarak çalışır. Ancak iptables‘ın karmaşık sözdizimi yerine, UFW daha sezgisel ve insan tarafından okunabilir komutlar sunar. Bu, özellikle güvenlik duvarı yönetimine yeni başlayanlar veya hızlı ve etkili bir şekilde temel güvenlik kuralları oluşturmak isteyen sistem yöneticileri için büyük bir avantajdır.

UFW, çoğu Linux dağıtımında varsayılan olarak yüklü gelmeyebilir, ancak Debian’ın resmi depolarında kolayca bulunabilir ve kurulabilir. Hem IPv4 hem de IPv6 trafiğini yönetme yeteneğine sahiptir ve bu sayede modern ağ ortamlarında kapsamlı bir koruma sağlar.

1.2 Neden UFW Kullanmalıyız?

UFW kullanmanın iptables‘a göre birçok avantajı vardır:

* Basitlik ve Kullanım Kolaylığı: En büyük avantajı, güvenlik duvarı kurallarını oluşturmayı ve yönetmeyi son derece basit hale getirmesidir. Karmaşık iptables komutları yerine, UFW anlaşılır ve kısa komutlar sunar. Bu, öğrenme eğrisini önemli ölçüde azaltır.
* Hızlı Kurulum: Tipik sunucu güvenlik duvarı senaryoları için, UFW ile dakikalar içinde temel bir koruma katmanı oluşturabilirsiniz. Bu, özellikle yeni bir sunucu kurulumunda veya hızlı bir şekilde güvenlik önlemleri almanız gerektiğinde çok faydalıdır.
* Hata Yapma Riskini Azaltma: iptables ile yanlış bir kural girmek, kendinizi sistemden kilitleme veya istenmeyen ağ açıklarına neden olma riski taşır. UFW, bu tür hataları en aza indirmek için tasarlanmıştır ve özellikle kritik adımlarda kullanıcıya uyarılar veya onay soruları sunar.
* Uygulama Profilleri: UFW, önceden tanımlanmış uygulama profillerini destekler. Bu profiller, belirli uygulamalar (örneğin, Apache, Nginx, OpenSSH) için gerekli portları otomatik olarak açan veya kapatan kurallar içerir. Bu, sık kullanılan hizmetler için kuralları manuel olarak girmek yerine tek bir komutla ayarlamanızı sağlar.
* Aktif Geliştirme ve Topluluk Desteği: UFW, Ubuntu ve Debian gibi popüler dağıtımlar tarafından yaygın olarak kullanıldığı için aktif bir geliştirme sürecine ve geniş bir topluluk desteğine sahiptir. Bu, sorun giderme ve yeni özellikler konusunda yardım bulmayı kolaylaştırır.

Özetle, UFW, güçlü iptables altyapısının sunduğu güvenliği, herkesin kolayca kullanabileceği basit ve sezgisel bir arayüzle birleştirir. Bu da onu Debian sunucularınız için mükemmel bir güvenlik duvarı çözümü haline getirir.

2. UFW Kurulumu

Debian 10 üzerinde UFW kurulumu oldukça basittir ve sadece birkaç adımda tamamlanabilir.

2.1 Sistem Güncellemesi

Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin paket listelerini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır. Bu, en son güvenlik yamalarına sahip olmanızı ve olası bağımlılık sorunlarını önlemenizi sağlar.

sudo apt update
sudo apt upgrade -y

sudo apt update komutu, yerel paket indeksinizi güncellerken, sudo apt upgrade -y komutu yüklü tüm paketleri en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermeyi sağlar.

2.2 UFW Paketinin Kurulumu

Sisteminiz güncelledikten sonra, UFW paketini kurabilirsiniz. UFW, Debian’ın varsayılan depolarında mevcuttur.

sudo apt install ufw -y

Bu komut, UFW paketini ve varsa gerekli bağımlılıklarını sisteminize kuracaktır.

2.3 Kurulumun Doğrulanması

Kurulum tamamlandıktan sonra, UFW’nin doğru şekilde kurulduğunu ve mevcut durumunu kontrol edebilirsiniz.

ufw status

Bu komutu çalıştırdığınızda, UFW’nin henüz etkinleştirilmediğini belirten aşağıdaki gibi bir çıktı görmelisiniz:

Status: inactive

Bu çıktı, UFW’nin başarıyla kurulduğunu ancak henüz hiçbir güvenlik duvarı kuralını uygulamadığını gösterir. Bir sonraki bölümde, UFW’yi yapılandırmaya başlayacağız.

3. UFW Temel Politikaları ve Kuralları

UFW’yi etkinleştirmeden önce, varsayılan politikaları belirlemek ve özellikle SSH erişimi için bir kural eklemek kritik öneme sahiptir. Bu adımlar, kendinizi sunucunuzdan kilitlememek için hayati öneme sahiptir.

3.1 Varsayılan Politikalar

UFW’nin varsayılan politikaları, belirli bir kural tarafından açıkça izin verilmeyen veya engellenmeyen trafiğe ne olacağını belirler. Genellikle, bir sunucu için en güvenli yaklaşım, tüm gelen bağlantıları engellemek ve tüm giden bağlantılara izin vermektir. Bu, sunucunuzun dışarıdan erişilemez olmasını sağlarken, sunucunun güncellemeleri indirmesi veya dış hizmetlere bağlanması gibi normal işlemlerini sürdürmesine olanak tanır.

Varsayılan politikaları ayarlamak için aşağıdaki komutları kullanın:

sudo ufw default deny incoming
sudo ufw default allow outgoing

* sudo ufw default deny incoming: Bu komut, açıkça izin verilmediği sürece tüm gelen bağlantıları engeller. Bu, sunucunuzu dışarıdan gelecek istenmeyen bağlantılara karşı korur.
* sudo ufw default allow outgoing: Bu komut, açıkça engellenmediği sürece tüm giden bağlantılara izin verir. Bu, sunucunuzun internete erişebilmesini ve gerekli hizmetlerle iletişim kurabilmesini sağlar.

Bu politikaları uyguladıktan sonra, UFW’yi etkinleştirmeden önce mutlaka SSH erişimine izin veren bir kural eklemeniz gerekmektedir. Aksi takdirde, UFW’yi etkinleştirdiğinizde sunucunuzla olan bağlantınız kesilecek ve sunucuya uzaktan erişemeyeceksiniz.

3.2 SSH Erişimi İçin Kural Ekleme

SSH (Secure Shell), sunucunuza uzaktan güvenli bir şekilde bağlanmak için kullandığınız protokoldür. Varsayılan olarak SSH, TCP port 22’yi kullanır. Eğer SSH portunuzu değiştirdiyseniz (ki bu iyi bir güvenlik uygulamasıdır), o port numarasını kullanmanız gerekecektir.

SSH erişimine izin veren kuralı eklemek için aşağıdaki komutlardan birini kullanın:

* Varsayılan SSH portu (22) kullanılıyorsa:

sudo ufw allow ssh

UFW, /etc/services dosyasında tanımlanan yaygın hizmet adlarını anlayabilir. ssh hizmeti port 22’ye karşılık gelir.
Alternatif olarak, port numarasını doğrudan belirtebilirsiniz:

sudo ufw allow 22/tcp

* Özel bir SSH portu kullanılıyorsa (örneğin, 2222):

sudo ufw allow 2222/tcp

Port numarasını kendi yapılandırmanıza göre değiştirin.

Bu kuralı ekledikten sonra, UFW etkinleştirildiğinde SSH bağlantınızın devam edeceğinden emin olabilirsiniz.

3.3 UFW’yi Etkinleştirme

Varsayılan politikalarınızı belirleyip SSH erişimi için bir kural ekledikten sonra, UFW’yi etkinleştirmeye hazırsınız demektir.

sudo ufw enable

Bu komutu çalıştırdığınızda, UFW sizi şu şekilde bir uyarıyla karşılayacaktır:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Bu uyarı, UFW’nin etkinleştirilmesinin mevcut SSH bağlantılarınızı etkileyebileceğini belirtir. Eğer SSH kuralını doğru bir şekilde eklediyseniz, y tuşuna basıp Enter’a basarak devam edebilirsiniz.

UFW etkinleştirildikten sonra, sistem yeniden başlatıldığında da otomatik olarak başlayacaktır. Durumunu kontrol etmek için tekrar ufw status komutunu kullanabilirsiniz:

ufw status

Çıktı aşağıdaki gibi olmalıdır:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

Bu çıktı, UFW’nin etkin olduğunu ve 22 numaralı TCP portundan gelen bağlantılara izin verildiğini gösterir. (v6) ibaresi, kuralın IPv6 trafiği için de uygulandığını belirtir.

3.4 UFW’yi Devre Dışı Bırakma ve Sıfırlama

Bazen, sorun giderme veya kapsamlı bir yeniden yapılandırma amacıyla UFW’yi geçici olarak devre dışı bırakmanız veya tüm kurallarını sıfırlamanız gerekebilir.

* UFW’yi Devre Dışı Bırakma:

sudo ufw disable

Bu komut, UFW’yi devre dışı bırakır ve tüm kuralları etkisiz hale getirir. Ancak kurallar kaydedilir ve UFW tekrar etkinleştirildiğinde geri yüklenir.

* UFW’yi Sıfırlama:

sudo ufw reset

Bu komut, tüm UFW kurallarını ve varsayılan politikaları siler. Bu, UFW’yi sanki yeni kurulmuş gibi başlangıç durumuna döndürür. Bu komutu kullanmadan önce çok dikkatli olun, çünkü tüm güvenlik duvarı yapılandırmanız silinecektir.

UFW sizi bu işlem konusunda uyaracaktır:

Resetting all rules to installation defaults. Proceed with operation (y|n)?

y tuşuna basıp Enter’a basarak işlemi onaylayın.

4. UFW Kuralları Yönetimi

UFW, farklı ağ trafiği türleri için kurallar oluşturma, değiştirme ve silme konusunda esneklik sunar. Bu bölümde, çeşitli kural türlerini ve bunların nasıl yönetileceğini inceleyeceğiz.

4.1 Belirli Portlara İzin Verme

Web sunucuları, veritabanları veya diğer ağ hizmetleri gibi uygulamaların çalışabilmesi için belirli portlardan gelen bağlantılara izin vermeniz gerekebilir.

* HTTP (Web Sunucusu – Port 80):

sudo ufw allow http
    # Veya port numarasıyla:
    sudo ufw allow 80/tcp

* HTTPS (Güvenli Web Sunucusu – Port 443):

sudo ufw allow https
    # Veya port numarasıyla:
    sudo ufw allow 443/tcp

* Diğer Portlar ve Protokoller:
Belirli bir port ve protokol için izin vermek için genel sözdizimi şöyledir:

sudo ufw allow /

Örneğin, MySQL veritabanı için (varsayılan port 3306, TCP):

sudo ufw allow 3306/tcp

UDP tabanlı bir hizmet için (örneğin, DNS için 53. port):

sudo ufw allow 53/udp

Her iki protokol için izin vermek isterseniz:

sudo ufw allow 53

Bu, hem TCP hem de UDP için kural ekleyecektir.

4.2 Belirli Portları Engelleme

Belirli portlardan gelen veya giden trafiği engellemek isteyebilirsiniz. Varsayılan olarak tüm gelen bağlantılar engellenmiş olduğundan, bu genellikle giden trafiği veya daha önce izin verilmiş bir portu engellemek için kullanılır.

* Belirli bir porttan gelen trafiği engelleme:

sudo ufw deny /

Örneğin, eski ve güvensiz Telnet servisi (port 23) için:

sudo ufw deny 23/tcp

Eğer varsayılan gelen politika deny ise, bu kurala genellikle ihtiyaç duyulmaz, ancak belirli bir kuralı geçersiz kılmak için kullanılabilir.

4.3 Belirli IP Adreslerinden Erişime İzin Verme/Engelleme

Daha granular kontrol için, trafiğe belirli IP adreslerinden veya IP aralıklarından izin verebilir veya engelleyebilirsiniz.

* Belirli bir IP adresinden tüm erişime izin verme:

sudo ufw allow from 

Örneğin, 192.168.1.100 IP adresinden tüm gelen bağlantılara izin vermek:

sudo ufw allow from 192.168.1.100

* Belirli bir IP adresinden belirli bir porta erişime izin verme:

sudo ufw allow from  to any port 

Örneğin, 192.168.1.100 IP adresinden sadece SSH (port 22) erişimine izin vermek:

sudo ufw allow from 192.168.1.100 to any port 22

* Belirli bir IP bloğundan (CIDR) erişime izin verme:

sudo ufw allow from /

Örneğin, 192.168.1.0/24 ağından gelen tüm bağlantılara izin vermek:

sudo ufw allow from 192.168.1.0/24

* Belirli bir IP adresinden gelen trafiği engelleme:

sudo ufw deny from 

Örneğin, 192.168.1.200 IP adresinden gelen tüm bağlantıları engellemek:

sudo ufw deny from 192.168.1.200

4.4 Belirli IP Adreslerine Giden Trafiği Engelleme

Varsayılan giden politika allow ise, belirli IP adreslerine giden trafiği engellemek isteyebilirsiniz.

sudo ufw deny out to 

Örneğin, 1.2.3.4 IP adresine giden tüm trafiği engellemek:

sudo ufw deny out to 1.2.3.4

4.5 Kuralları Silme

Mevcut bir UFW kuralını silmenin iki ana yolu vardır: kural numarasına göre veya kural tanımına göre.

* Kural numarasına göre silme:
Önce, numaralandırılmış kurallar listesini görüntüleyin:

sudo ufw status numbered

Çıktı şuna benzer olacaktır:

Status: active

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

Daha sonra, silmek istediğiniz kuralın numarasını kullanarak silin:

sudo ufw delete 

Örneğin, 2 numaralı kuralı (80/tcp) silmek için:

sudo ufw delete 2

* Kural tanımına göre silme:
Kuralı oluştururken kullandığınız komutun aynısını, allow yerine delete ile kullanarak silebilirsiniz:

sudo ufw delete allow 80/tcp

Bu yöntem, kural numarasını bilmenize gerek kalmadan, silmek istediğiniz kuralı doğrudan belirterek işlem yapmanızı sağlar.

4.6 Uygulama Profilleri Kullanımı

UFW, yaygın uygulamalar için önceden tanımlanmış kurallar içeren uygulama profillerini destekler. Bu profiller, /etc/ufw/applications.d dizininde bulunur ve genellikle uygulama kurulumu sırasında eklenir.

* Mevcut uygulama profillerini listeleme:

sudo ufw app list

Çıktı, sisteminizde kurulu olan uygulamalar için mevcut profilleri gösterebilir, örneğin:

Available applications:
      Apache
      Apache Full
      Apache Secure
      OpenSSH
      Nginx HTTP
      Nginx HTTPS
      Nginx Full

* Bir uygulamanın profil bilgilerini görüntüleme:

sudo ufw app info 'OpenSSH'

Bu komut, OpenSSH profilinin hangi portları kullandığı gibi detayları gösterecektir.
* Uygulama profili kullanarak kural ekleme:

sudo ufw allow 'OpenSSH'
    sudo ufw allow 'Nginx Full'

Nginx Full, genellikle hem HTTP (80) hem de HTTPS (443) portlarını kapsar. Bu, ayrı ayrı port kuralları eklemek yerine daha hızlı ve okunabilir bir yöntemdir.

4.7 Gelişmiş Kurallar

UFW, daha spesifik senaryolar için gelişmiş kural seçenekleri de sunar.

* Ağ Arayüzüne Özgü Kurallar:
Belirli bir ağ arayüzü (örneğin eth0) üzerinden gelen veya giden trafiği hedefleyebilirsiniz. Bu, birden fazla ağ arayüzüne sahip sunucular için kullanışlıdır.

sudo ufw allow in on eth0 to any port 80

Bu kural, sadece eth0 arayüzünden gelen HTTP trafiğine izin verir.

* Günlük Kaydı (Logging):
UFW, engellenen veya izin verilen bağlantılar hakkında günlük kayıtları tutabilir. Bu günlükler, güvenlik olaylarını izlemek ve sorun gidermek için çok değerlidir.

sudo ufw logging on

Günlük kaydını kapatmak için:

sudo ufw logging off

Günlük kaydı seviyelerini de ayarlayabilirsiniz: low, medium, high.

sudo ufw logging low

Günlük kayıtları genellikle /var/log/ufw.log dosyasında bulunur.

5. UFW Durumunu ve Loglarını Kontrol Etme

UFW’nin etkinliğini ve kurallarının doğru çalışıp çalışmadığını düzenli olarak kontrol etmek önemlidir. Ayrıca, güvenlik olaylarını izlemek için logları incelemek de kritik bir adımdır.

5.1 UFW Durumu

UFW’nin mevcut durumunu ve aktif kurallarını kontrol etmek için çeşitli ufw status komutlarını kullanabilirsiniz.

* Temel Durum Kontrolü:

ufw status

Bu komut, UFW’nin etkin olup olmadığını ve mevcut basit kuralları gösterir.

* Ayrıntılı Durum (Verbose):

ufw status verbose

verbose seçeneği, UFW’nin varsayılan politikaları, günlük kaydı durumu ve diğer detaylar dahil olmak üzere daha ayrıntılı bilgi sağlar. Çıktı, kuralların IPv4 ve IPv6 için ayrı ayrı listelendiğini de gösterebilir.

* Numaralandırılmış Kurallar (Numbered):

sudo ufw status numbered

Bu komut, kuralları numaralandırılmış bir liste olarak gösterir. Bu, özellikle bir kuralı silmek istediğinizde kullanışlıdır, çünkü ufw delete komutuyla doğrudan kural numarasını belirtebilirsiniz.

5.2 UFW Logları

UFW, güvenlik duvarı tarafından işlenen bağlantılar hakkında bilgi içeren loglar tutabilir. Bu loglar, özellikle engellenen bağlantı denemelerini veya şüpheli aktiviteleri tespit etmek için çok değerlidir.

* Logların Konumu:
UFW günlükleri genellikle /var/log/ufw.log dosyasında saklanır. Diğer sistem günlükleriyle birlikte /var/log/syslog içinde de görülebilirler.

* Logları Görüntüleme:
Log dosyasını doğrudan okuyabilir veya gerçek zamanlı olarak izleyebilirsiniz:

sudo tail -f /var/log/ufw.log

Bu komut, /var/log/ufw.log dosyasının sonunu gösterir ve yeni satırlar eklendikçe otomatik olarak güncellenir. Bu, bir bağlantı denemesi yaparken UFW’nin nasıl tepki verdiğini görmek için kullanışlıdır.

* Log Seviyeleri:
Daha önce belirtildiği gibi, UFW günlük kaydı seviyelerini ayarlayabilirsiniz (low, medium, high). Yüksek seviyeler daha fazla ayrıntı kaydeder ancak disk alanı tüketimini artırabilir ve performansı etkileyebilir. Genellikle low veya medium seviyesi, çoğu kullanım durumu için yeterli bilgi sağlar.

Logları düzenli olarak incelemek, sunucunuzun güvenliğini izlemek ve olası saldırı girişimlerini erken tespit etmek için kritik bir güvenlik uygulamasıdır.

6. UFW ile Yaygın Senaryolar

UFW, çeşitli sunucu ve ağ hizmetlerini güvence altına almak için kullanılabilir. İşte bazı yaygın senaryolar ve UFW kurallarının nasıl uygulanabileceği:

6.1 Web Sunucusu Koruması

Bir web sunucusu (Apache, Nginx vb.) genellikle HTTP (port 80) ve HTTPS (port 443) trafiğine izin vermelidir. SSH erişimi de yönetici erişimi için gereklidir.

# Varsayılan gelen tüm bağlantıları engelle, gidenleri izin ver
sudo ufw default deny incoming
sudo ufw default allow outgoing

SSH erişimine izin ver (port 22 veya özel portunuz)

sudo ufw allow ssh

HTTP (80) ve HTTPS (443) trafiğine izin ver

sudo ufw allow http sudo ufw allow https

Veya uygulama profilleri ile:

sudo ufw allow 'Nginx Full'

sudo ufw allow 'Apache Full'

UFW'yi etkinleştir

sudo ufw enable

Bu yapılandırma, web sunucunuzun internetten erişilebilir olmasını sağlarken, diğer gereksiz portları kapatır.

6.2 Veritabanı Sunucusu Koruması

Veritabanı sunucuları (MySQL, PostgreSQL vb.) genellikle sadece uygulama sunucularından veya belirli yönetici IP’lerinden erişilebilir olmalıdır. Doğrudan internetten erişime açık olmamalıdırlar.

# Varsayılan gelen tüm bağlantıları engelle, gidenleri izin ver
sudo ufw default deny incoming
sudo ufw default allow outgoing

SSH erişimine izin ver (yönetim için)

sudo ufw allow ssh

Sadece belirli bir uygulama sunucusunun IP'sinden MySQL (3306) erişimine izin ver

sudo ufw allow from to any port 3306 proto tcp

Sadece belirli bir yönetici IP'sinden PostgreSQL (5432) erişimine izin ver

sudo ufw allow from to any port 5432 proto tcp

UFW'yi etkinleştir

sudo ufw enable

Bu, veritabanı sunucunuzun sadece güvenilir kaynaklardan erişilmesini sağlayarak önemli bir güvenlik katmanı ekler.

6.3 Uzak Masaüstü Erişimi

Eğer sunucunuzda uzak masaüstü (örneğin RDP için 3389/tcp veya VNC için 5900/tcp) kullanıyorsanız, bu portlara sadece güvenilir IP adreslerinden erişime izin vermelisiniz.

# Varsayılan politikaları ayarla
sudo ufw default deny incoming
sudo ufw default allow outgoing

SSH erişimine izin ver

sudo ufw allow ssh

Sadece belirli bir IP'den RDP erişimine izin ver

sudo ufw allow from to any port 3389 proto tcp

Sadece belirli bir IP'den VNC erişimine izin ver

sudo ufw allow from to any port 5900 proto tcp

UFW'yi etkinleştir

sudo ufw enable

6.4 Docker ile UFW

Docker, kendi ağ kurallarını yönetmek için iptables‘ı yoğun bir şekilde kullanır. Bu, UFW ile çakışmalara yol açabilir. Docker, varsayılan olarak iptables kurallarını doğrudan manipüle eder ve bu kurallar UFW tarafından oluşturulan kuralları atlayabilir.

Bu çakışmayı gidermek için birkaç yaklaşım vardır:
* UFW’nin DEFAULT_FORWARD_POLICY ayarını değiştirme: /etc/default/ufw dosyasını düzenleyerek DEFAULT_FORWARD_POLICY="DROP" satırını bulup bunu DEFAULT_FORWARD_POLICY="ACCEPT" olarak değiştirebilirsiniz. Bu, UFW’nin yönlendirme politikasını değiştirir, ancak güvenlik açısından daha az kısıtlayıcıdır ve dikkatli kullanılmalıdır.
* Docker’ın kendi dahili güvenlik duvarını kullanma: Docker konteynerleri için UFW yerine Docker’ın kendi ağ ve güvenlik özelliklerini kullanmayı tercih edebilirsiniz.
* UFW ve Docker’ı birlikte kullanmak için karmaşık iptables kuralları oluşturma: Bu, ileri düzey kullanıcılar için geçerlidir ve bu makalenin kapsamı dışındadır.

Genel olarak, Docker kullanıyorsanız UFW’nin davranışını dikkatlice test etmeli ve Docker’ın ağ yapılandırmasının UFW kurallarınızı nasıl etkilediğini anlamalısınız. En basit çözüm, Docker’ın çalıştığı sunucuda UFW’yi dikkatlice yapılandırmak veya Docker’ın kendi ağ özelliklerine güvenmektir.

7. UFW Performans ve Güvenlik İpuçları

UFW’yi etkili bir şekilde kullanmak sadece kuralları ayarlamakla kalmaz, aynı zamanda bazı en iyi uygulamaları takip etmeyi de gerektirir.

7.1 Minimum Ayrıcalık Prensibi

Güvenlik duvarı kurallarınızı oluştururken “minimum ayrıcalık” prensibini uygulayın. Bu, sadece kesinlikle gerekli olan portlara, protokollere ve IP adreslerine erişime izin vermeniz gerektiği anlamına gelir. İhtiyacınız olmayan her şey engellenmelidir. Ne kadar az açık portunuz olursa, saldırı yüzeyiniz o kadar küçülür.

7.2 Düzenli Kontrol

Güvenlik duvarı kurallarınızı düzenli olarak gözden geçirin. Uygulamalarınızı veya ağ yapılandırmanızı değiştirdiğinizde, UFW kurallarınızın hala geçerli ve optimal olduğundan emin olun. Artık kullanılmayan portları veya IP erişimlerini kapatın.

7.3 Logları İzleme

UFW günlüklerini düzenli olarak izleyin (/var/log/ufw.log). Engellenen bağlantı denemeleri, yetkisiz erişim girişimleri veya diğer şüpheli aktiviteler için günlükleri kontrol edin. Bu, potansiyel güvenlik tehditlerini erken tespit etmenize yardımcı olabilir. fail2ban gibi araçlarla UFW loglarını entegre ederek otomatik engellemeler yapabilirsiniz.

7.4 Güvenli SSH Erişimi

SSH erişimini daha da güvenli hale getirmek için aşağıdaki adımları uygulayın:
* Varsayılan SSH portunu değiştirin: Port 22 yerine daha az bilinen yüksek bir port kullanın.
* Parola yerine SSH anahtarları kullanın: Anahtarlar parolalardan çok daha güvenlidir.
* Parola ile girişi devre dışı bırakın: Sadece anahtar tabanlı girişe izin verin.
* fail2ban kullanın: Brute-force saldırılarını tespit edip otomatik olarak engellemek için fail2ban‘ı UFW ile birlikte kullanın.

7.5 IPv6 Desteği

UFW, varsayılan olarak hem IPv4 hem de IPv6 trafiğini yönetir. /etc/default/ufw dosyasındaki IPV6 ayarı yes olarak ayarlanmışsa, kurallarınız her iki protokole de uygulanır. Modern ağlarda IPv6’nın artan kullanımı göz önüne alındığında, güvenlik duvarınızın IPv6 trafiğini de doğru şekilde ele aldığından emin olun.

7.6 Kural Sıralaması

UFW, kuralları belirli bir sırada uygular. Daha spesifik kurallar genellikle daha genel kurallardan önce gelmelidir. Örneğin, belirli bir IP’den bir porta izin veren bir kural, o portu genel olarak engelleyen bir kuraldan önce gelmelidir. UFW genellikle kuralları akıllıca sıralar, ancak karmaşık senaryolarda sudo ufw status numbered komutu ile sıralamayı kontrol etmek ve gerekirse kuralları silip doğru sırayla tekrar eklemek faydalı olabilir.

Sonuç

Bu makalede, Debian 10 işletim sistemi üzerinde UFW (Uncomplicated Firewall) kurulumundan temel yapılandırmaya, kural yönetiminden yaygın senaryolara ve güvenlik ipuçlarına kadar birçok konuyu detaylı bir şekilde ele aldık. UFW’nin adından da anlaşılacağı gibi, Linux sistemlerinde güvenlik duvarı yönetimini basitleştiren güçlü bir araç olduğunu gördük.

UFW, iptables‘ın karmaşıklığından kaçınarak, sunucularınızı internetten gelebilecek tehditlere karşı korumak için hızlı ve etkili bir yol sunar. Varsayılan politikaları doğru bir şekilde ayarlamak, SSH erişimini güvence altına almak ve sadece gerekli portlara izin vermek, sunucunuzun güvenlik duruşunu önemli ölçüde iyileştirecektir.

Unutmayın ki bir güvenlik duvarı, genel güvenlik stratejinizin sadece bir parçasıdır. İşletim sistemi güncellemeleri, güçlü parolalar, düzenli yedeklemeler, güvenlik yamaları ve diğer güvenlik önlemleriyle birlikte kullanıldığında en etkili korumayı sağlar.

Bu makaledeki bilgilerle, Debian 10 sunucunuzda UFW’yi güvenle kurabilir, yapılandırabilir ve yönetebilirsiniz. Güvenliğiniz için sürekli öğrenmeye ve en iyi uygulamaları takip etmeye devam edin.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version