Bloğa geri dön

UFW'nin Temelleri: Temel Güvenlik Duvarı Komutlarını Öğrenmek

UFW'nin Temelleri: Temel Güvenlik Duvarı Komutlarını Öğrenmek

Giriş

UFW kolaylaştırılmış güvenlik duvarı (uncomplicated firewall) anlamına gelir. Güvenlik duvarı işlevlerinizi ve komutlarınızı kolayca yönetmenizi sağlayan bir ön uç platformudur. UFW'yi varsayılan bir seçenek olarak Ubuntu sunucunuzla birlikte alırsınız. Araca zaten aşina değilseniz, güvenlik duvarının komut ve işlevlerinin potansiyelini en üst düzeye çıkarmak zor olabilir.

Amacımız, yeni başlayan biri olarak kullanabileceğiniz kapsamlı bir kılavuz sunmaktır. Açıklamaları, UFW ile gerçekleştirebileceğiniz çeşitli eylemlerin örnekleriyle destekleyeceğiz. Kuralların birçoğu günlük hizmetler ve etkinlikler için çok yararlı olacaktır. Hadi başlayalım!

Önkoşullar

Okumaya devam etmeden önce, UFW'nizin varsayılan kural kümesine ayarlandığından emin olun. Bu, güvenlik duvarının giden trafiğe izin verdiği ancak gelen trafiği engellediği anlamına gelir. Bu varsayılan sıfırlamanın avantajı, güvenlik duvarından hangi trafiğe izin verileceğini seçebilmenizdir. UFW'nizdeki mevcut kural kümesinin durumundan emin değilseniz, kontrol etmek için şu komutu kullanın: sudo ufw status. Bu komutu da kullanabilirsiniz:

Bunun dışında, gereksinimlerinizle en alakalı olan bölüme geçmekte özgürsünüz. Bu kılavuzda sunulan her bir komutu mutlaka kullanmak zorunda değilsiniz. Kişisel ihtiyaçlarınıza göre karıştırıp eşleştirebilirsiniz.

Bir IP Adresi Nasıl Engellenir

Herhangi bir güvenlik duvarının en temel işlevlerinden biriyle başlayalım: IP adreslerini engellemek. Belirli bir IP adresinden gelen tüm ağ bağlantılarını engellemek için kullanabileceğiniz çok basit bir komut vardır. Örneğin, bizim durumumuzdaki belirli IP adresinin 15.15.15.51 olduğunu varsayalım. Bu değeri, UFW'niz üzerinden engellemek istediğiniz IP adresiyle değiştirebilirsiniz. Bu amaçla kullanacağınız komut şudur:

Burada, from 15.15.15.51 yalnızca kaynak IP adresini belirtir, yani '15.15.15.51'. Bunun yerine belirtmek istediğiniz bir alt ağ (subnet) varsa, şu şekilde ekleyebilirsiniz: 15.15.15.0/24. Komut aynı şekilde çalışacaktır. Bu kaynak IP adresini, izin verme (allow) kuralı gibi istediğiniz herhangi bir güvenlik duvarı kuralında belirtebilirsiniz.

  • Ağ Arayüzü Bağlantılarını Engelleme

Bazen gereksinim, belirli bir IP adresinden gelen ağ bağlantılarını belirli bir ağ arayüzüne engellemek olabilir. Bu durumda, kaynak IP adresiyle birlikte ağ arayüzünü de belirtmemiz gerekecektir. Bu örnek için, kaynak IP adresinin 15.15.15.51 ve ağ arayüzünün eth0 olduğunu varsayalım:

Kaynak IP adresine benzer şekilde, ağ arayüzünü de herhangi bir güvenlik duvarı kuralında belirtebilirsiniz. Bu belirtimlerin amacı, verilen güvenlik duvarı kuralını yalnızca belirli bir ağ veya bağlantıyla sınırlandırmaktır.

SSH Bağlantılarına Nasıl İzin Verilir

Bir bulut sunucusu kullanıyorsanız bu bölüm sizinle ilgilidir. Bulut sunucunuza bağlantı kurabilmek için güvenlik duvarının gelen SSH bağlantılarına izin vermesi gerekir. Bu SSH bağlantıları 22 numaralı bağlantı noktası (port) üzerinden gelir. Ubuntu'da uzak bir sunucuya bağlanmak için SSH'nin nasıl kullanılacağını öğrenmek için bu öğreticiyi takip edebilirsiniz.

SSH bağlantıları kurarak, yerel biriminizi kullanarak bulut sunucunuzu başarıyla yönetebilirsiniz. Burada, SSH ile ilişkili güvenlik duvarı yapılandırmasıyla ilgili çeşitli kuralları ele alacağız:

  • SSH'ye İzin Verme

Gelen tüm SSH bağlantılarına izin vermek için aşağıdaki komutu kullanın:

Öte yandan, komutu bunun yerine SSH hizmetinin bağlantı noktası (port) numarasını belirterek de yürütebilirsiniz:

  • Belirli Bir IP Adresinden Gelen SSH'ye İzin Verme

Yalnızca belirli bir IP adresinden veya alt ağdan gelen SSH bağlantılarına izin vermek istiyorsanız, kaynağı belirtme olanağına sahipsiniz. Örneğin, izin vermek istediğiniz alt ağın 15.15.15.0/24 olduğunu varsayalım. Çalıştırmanız gereken komut şudur:

  • Belirli Bir IP Adresinden Gelen Rsync Bağlantısına İzin Verme

873 numaralı bağlantı noktasında çalışan Rsync, bir bilgisayar sisteminden diğerine dosya aktarımı yapmanızı sağlar. Yalnızca belirli bir IP adresinden veya alt ağdan (bu örnekte 15.15.15.0/24) gelen Rsync bağlantısına izin vermek istiyorsanız, bunu şu komutu kullanarak yapabilirsiniz:

Bu, tüm 15.15.15.0/24 alt ağının sunucunuza Rsync yapmasına izin verileceği anlamına gelir. Ayrıca, sunucunuzdaki yerel ve uzak dizinleri senkronize etmek için Rsync'in nasıl kullanılacağına dair kapsamlı bir kılavuz da burada yer almaktadır.

Web Sunucusu İstekleri Nasıl Yapılandırılır

Sırada, Web Sunucusu hizmetiyle ilgili kurallara geçeceğiz. Apache ve Nginx gibi web sunucuları genellikle HTTP ve HTTPS bağlantıları için iki bağlantı noktasından istek alır: port 80 ve port 443. Port 80, HTTP isteklerini karşılar. Port 443 ise HTTPS isteklerinden sorumludur.

Gereksinimlerde tartıştığımız gibi, UFW için varsayılan kural kümesini kullanıyorsunuz. Bu kural kümesine göre, güvenlik duvarı gelen tüm trafiği engeller veya reddeder. Bu nedenle, sunucunun bu gelen istekleri almasına ve okumasına izin veren yeni kurallar yapılandırmanız gerekecektir.

  • Tüm HTTP Bağlantılarına İzin Verme

Port 80'den gelen tüm HTTP bağlantılarına ve isteklerine izin vermek istiyorsanız şu komutu kullanın:

Komutta HTTP hizmetini belirtmek için port numarasını (port 80) da kullanabilirsiniz:

  • Tüm HTTPS Bağlantılarına İzin Verme

Port 443'ten gelen tüm HTTPS bağlantılarına ve isteklerine izin vermek istiyorsanız bu komutu çalıştırın:

Önceki komuta benzer şekilde, 'https' ifadesini HTTPS hizmetinin port numarasıyla değiştirebilirsiniz:

  • Tüm HTTP ve HTTPS Bağlantılarına İzin Verme

Hem HTTP hem de HTTPS isteklerine izin vermek istemeniz durumunda, her ikisi için de ortak bir kural kullanabilirsiniz. Bu tek komut sayesinde hem port 80 hem de port 443'ten gelen trafiğe izin verebilirsiniz:

Bir seferde birden fazla port belirtirken proto tcp komutunu kullanmak gereklidir.

Ayrıca, Nginx ve Let's Encrypt ile Apache'nin Ubuntu üzerinde nasıl güvenli hale getirileceğine dair bu ayrıntılı kılavuzları takip edebilirsiniz.

MySQL Bağlantılarına Nasıl İzin Verilir

MySQL bağlantıları 3306 numaralı port üzerinden gelir. Bir istemci uzak bir sunucudaki MySQL veritabanınızı kullanıyorsa, gelen trafiğe izin vermek için bir kural kullanmanız gerekir. MySQL'in temellerini ve bir sunucuda MySQL'in nasıl kurulacağını öğrenmek için kılavuzumuzu takip edin.

  • Belirli Bir IP Adresinden MySQL Bağlantısına İzin Verme

Önceki kurallarda da gördüğümüz gibi, gelen MySQL bağlantılarına izin vermek için kaynağı belirtmeniz gerekir. Kaynağınız belirli bir IP adresinden veya bir alt ağdan oluşabilir. Örneğimizde, komutu çalıştırmak için tüm 15.15.15.0/24 alt ağını kullanacağız:

  • Belirli Bir Ağ Arayüzüne MySQL Bağlantısına İzin Verme

MySQL bağlantılarına izin verdiğiniz ağ arayüzünü de belirtmeniz gerekiyorsa farklı bir komut kullanacaksınız. Kullandığınız ağ arayüzünün eth1 adında özel bir ağ arayüzü olduğunu varsayalım. Bu değeri kendi ağ arayüzünüzün adıyla değiştirebilirsiniz:

PostgreSQL Bağlantılarına Nasıl İzin Verilir

The PostgreSQL bağlantıları 5432 numaralı port üzerinden gelir. MySQL bağlantılarına benzer şekilde, bir istemci uzak bir sunucudaki PostgreSQL veritabanını kullanıyorsa, gelen trafiğe izin vermeniz gerekir. Bunu aşağıdaki komutları kullanarak yapabilirsiniz.

  • Belirli Bir IP Adresinden PostgreSQL Bağlantısına İzin Verme

PostgreSQL bağlantılarının belirli bir alt ağdan veya IP adresinden geldiğini biliyorsanız, kaynağı belirtmeniz gerekir. Burada bir kez daha 15.15.15.0/24 alt ağı örneğini kullanacağız:

OUTPUT politikanız ACCEPT olarak ayarlanmamışsa, ikinci bir komut çalıştırmanız gerekecektir. Bu komut, halihazırda kurulmuş PostgreSQL bağlantılarının giden trafiğine izin verir.

  • PostgreSQL'e Belirli Bir Ağ Arayüzü İçin İzin Verme

Önceki kurala benzer şekilde, PostgreSQL bağlantılarına belirli bir ağ arayüzü için izin vereceğiz. Bizim durumumuzda bu eth1'dir:

OUTPUT politikanız ACCEPT olarak ayarlanmamışsa, ikinci bir komut çalıştırmanız gerekecektir. Bu komut, halihazırda kurulmuş PostgreSQL bağlantılarının giden trafiğine izin verir. Detaylı kılavuzumuzu takip ederek Ubuntu üzerinde PostgreSQL kurulumu yapmayı öğrenebilirsiniz.

Posta Sunucuları Nasıl Yapılandırılır

Sisteminizde Sendmail ve Postfix gibi posta sunucularını da kullanıyor olabilirsiniz. Bu sunucular birkaç porta açıktır. Dinledikleri portlar, posta teslimi için ayarlanan protokollere bağlıdır. Bu nedenle öncelikle posta teslim sisteminizde hangi protokolleri çalıştırdığınızı belirlemeniz gerekecektir. Sonrasında bu bilgilere dayanarak ilgili trafik türlerine izin vereceksiniz.

  • Giden SMTP Postalarını Engelleme

Posta sunucularınız için gelen trafiğe izin veren komutlara geçmeden önce, giden SMTP postalarını nasıl engelleyeceğinizi görelim. Sunucunuzun herhangi bir giden posta göndermesini istemiyorsanız bu komutu kullanabilirsiniz. SMTP postası port 25'i kullanır. Bu trafiği engellemek için şu komutu kullanın:

Bu komutu çalıştırmanın bir sonucu olarak, güvenlik duvarınız port 25 üzerindeki tüm giden trafiği engelleyecektir. Başka bir portu engellemek istiyorsanız, '25' portunu uygun port numarasıyla değiştirmeniz yeterlidir.

  • Gelen SMTP'ye İzin Verme

Artık giden trafiği nasıl engelleyeceğinizi bildiğinize göre, gelen trafiğe izin vermek de bir o kadar basit görünecektir. Sunucunun port 25 üzerinden SMTP bağlantısı almasına izin vermek için bu komutu kullanın:

  • Gelen IMAP'e İzin Verme

Sunucunun port 143 üzerinden IMAP bağlantısı kurmasına izin vermek istiyorsanız aşağıdaki komutu kullanın:

  • Gelen IMAPS'e İzin Verme

Sunucunun port 993 üzerinden IMAPS bağlantılarına yanıt vermesine izin vermek için bu komutu kullanın:

  • Gelen POP3'e İzin Verme

Bu komut, sunucunuzun port 110 üzerinden tüm POP3 bağlantılarına yanıt vermesini sağlar:

  • Gelen POP3S'e İzin Verme

Son olarak, bu komutu kullanarak sunucunuzun POP3S bağlantıları için port 995'ten gelen istekleri almasına izin verebilirsiniz:

Sonuç

Bu kılavuz, temel UFW işlevlerine aşina olmanıza yardımcı olacaktır. Güvenlik duvarınızı yapılandırabilmeniz için bilmeniz gereken temel komutları ele aldık. Kişiselleştirilmiş bir güvenlik duvarı çözümü oluşturmak için özel gereksinimlerinize en uygun komutları seçebilirsiniz. UFW'nin esnek yapısı bu tür özelleştirmelere olanak tanır. Sizin için en iyi olanı bulmak için denemeler yapın.

Keyifli Çalışmalar!

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.