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:
|
1 |
sudo ufw status verbose |
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:
|
1 |
sudo ufw deny from 15.15.15.51 |
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:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
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:
|
1 |
sudo ufw allow ssh |
Öte yandan, komutu bunun yerine SSH hizmetinin bağlantı noktası (port) numarasını belirterek de yürütebilirsiniz:
|
1 |
sudo ufw allow 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
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:
|
1 |
sudo ufw allow http |
Komutta HTTP hizmetini belirtmek için port numarasını (port 80) da kullanabilirsiniz:
|
1 |
sudo ufw allow 80 |
- 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:
|
1 |
sudo ufw allow https |
Önceki komuta benzer şekilde, 'https' ifadesini HTTPS hizmetinin port numarasıyla değiştirebilirsiniz:
|
1 |
sudo ufw allow 443 |
- 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:
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- 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:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
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:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
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:
|
1 |
sudo ufw deny out 25 |
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:
|
1 |
sudo ufw allow 25 |
- 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:
|
1 |
sudo ufw allow 143 |
- 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:
|
1 |
sudo ufw allow 993 |
- Gelen POP3'e İzin Verme
Bu komut, sunucunuzun port 110 üzerinden tüm POP3 bağlantılarına yanıt vermesini sağlar:
|
1 |
sudo ufw allow 110 |
- 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:
|
1 |
sudo ufw allow 995 |
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!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.