İçeriğe geç

AğGüvenlik duvarları

Ubuntu ve Debian'da UFW ile güvenlik duvarı kurun

Linux sunucunuzu UFW ile koruyun: varsayılan reddetme, önce SSH, port ve aralık açma, kaynak IP'ye göre izin, SSH hız sınırı ve IPv6 desteği.

  • Başlangıç
  • 15 dk okuma
  • Güncellendi

Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13

Bu sayfada
  1. Başlamadan önce
  2. 1. adım: UFW'yi kurun
  3. 2. adım: Varsayılanları ayarlayın ve önce SSH'ye izin verin
  4. 3. adım: Servislerinize izin verin
  5. 4. adım: Etkinleştirin ve kontrol edin
  6. 5. adım: SSH'yi hız sınırlamasına alın
  7. Kuralları yönetmek
  8. Kayıt tutma
  9. IPv6
  10. Docker ve UFW
  11. Sorun giderme
  12. Sonraki adımlar

UFW (Uncomplicated Firewall), sık kullanılan kuralları tek satırlık komutlara dönüştüren bir Linux güvenlik duvarı arayüzüdür. Bu rehber Ubuntu 24.04/26.04 veya Debian 12/13 üzerinde varsayılan olarak reddeden bir güvenlik duvarı kurar ve daha sonra ihtiyaç duyacağınız kuralları anlatır. 198.51.100.7 yerine kendi IP adresinizi yazın.

Başlamadan önce

  • sudo kullanıcısıyla SSH üzerinden giriş yapın ve hizmet sayfanızda görünüyorsa web konsolunu hazır tutun.
  • Çalıştırdığınız servisleri ve portlarını listeleyin: sudo ss -tulpn.

1. adım: UFW'yi kurun

UFW Ubuntu'da önceden kuruludur. Debian'da:

Bash
sudo apt install ufw

2. adım: Varsayılanları ayarlayın ve önce SSH'ye izin verin

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH

OpenSSH, 22 numaralı port için bir uygulama profilidir. SSH başka bir portta çalışıyorsa onun yerine o porta izin verin; örneğin sudo ufw allow 2222/tcp.

3. adım: Servislerinize izin verin

Bash
sudo ufw allow 80,443/tcp

Daha fazla örnek:

AmaçKomut
Tek bir portsudo ufw allow 8080/tcp
Bir port aralığısudo ufw allow 30000:30100/udp
Yalnızca tek bir adrestensudo ufw allow from 198.51.100.7 to any port 5432 proto tcp
Bütün bir ağdansudo ufw allow from 198.51.100.0/24 to any port 3306 proto tcp
Uygulama profiliylesudo ufw allow "Nginx Full" (bkz. sudo ufw app list)
Açıkça reddetmesudo ufw deny from 203.0.113.50

Veritabanlarını ve yönetim panellerini internete kapalı tutun ya da yalnızca kendi adreslerinize açın.

4. adım: Etkinleştirin ve kontrol edin

Bash
sudo ufw enable
sudo ufw status verbose

Doğrulama: durum çıktısı Status: active, Default: deny (incoming), allow (outgoing) ve her biri IPv4 ve (v6) için kurallarınızı gösterir. Hâlâ girebildiğinizi doğrulamak için yeni bir SSH oturumu açın.

5. adım: SSH'yi hız sınırlamasına alın

Düz SSH kuralını, 30 saniye içinde altı veya daha fazla bağlantı açan bir adresi reddeden sınırlı bir kuralla değiştirin:

Bash
sudo ufw limit OpenSSH
sudo ufw delete allow OpenSSH

Kuralları yönetmek

Kuralları numaralarıyla listeleyin ve numarayla silin:

Bash
sudo ufw status numbered
sudo ufw delete 3

Bir kuralı belirli bir konuma ekleyin (kurallar sırayla değerlendirilir):

Bash
sudo ufw insert 1 deny from 203.0.113.50

Bir komutun ne yapacağını uygulamadan --dry-run ile önizleyin; örneğin sudo ufw --dry-run enable.

Kayıt tutma

Bash
sudo ufw logging low

Engellenen paketler [UFW BLOCK] önekiyle kaydedilir; bunları sudo journalctl -k | grep UFW ile ya da rsyslog kuruluysa /var/log/ufw.log dosyasında okuyun.

IPv6

/etc/default/ufw dosyasının IPV6=yes içerdiğini kontrol edin. Değiştirirseniz sudo ufw reload ile yeniden yükleyin. Kurallar o zaman iki protokolü de kapsar.

Docker ve UFW

Docker container portlarını UFW'yi atlayan kendi kurallarıyla yayınlar. -p 8080:80 ile başlatılan bir container, UFW 8080'e izin vermese bile internetten erişilebilir. Portları yalnızca 127.0.0.1 üzerinde yayınlayın (örneğin -p 127.0.0.1:8080:80) ve ana makinedeki bir ters proxy üzerinden sunun. Bkz. Ubuntu'ya Docker kurulumu.

Sorun giderme

ufw enable sonrasında SSH dondu. SSH'ye izin verilmemişti. Konsolu kullanın: sudo ufw allow OpenSSH. Bkz. güvenlik duvarı değişikliğinden sonra erişimi kaybetmek.

Bir port UFW'de açık ama hâlâ erişilemiyor. Servis yalnızca 127.0.0.1 üzerinde dinliyor ya da çalışmıyor. sudo ss -tulpn ile kontrol edin. Bkz. portlar ve port yönlendirme.

UFW giden trafiğe izin verdiği halde 25 numaralı porttan posta gönderilemiyor. HyperDC VPS'lerde giden 25 numaralı port varsayılan olarak kapalıdır. 3 ay veya daha uzun süreyle satın alınan hizmetlerde bir destek bildirimi açtığınızda talep üzerine açılır. O zamana kadar postayı 587 portu üzerinden bir aktarıcıyla (relay) gönderin.

Baştan başlamak. sudo ufw reset, UFW'yi kapatır ve tüm kuralları siler (eskilerini yedekler). Etkinleştirmeden önce SSH kuralınızı yeniden ekleyin.

Sonraki adımlar

Sık sorulan sorular

UFW varsayılan olarak kurulu mu?

Ubuntu'da evet, ama siz etkinleştirene kadar kapalıdır. Debian'da sudo apt install ufw ile kurun.

UFW IPv6'yı korur mu?

Evet; varsayılan olduğu gibi /etc/default/ufw içinde IPV6=yes ayarlıyken. Eklediğiniz her kural o zaman IPv4 ve IPv6'ya uygulanır.

Docker container'larım UFW'ye rağmen neden erişilebilir?

Docker container portlarını, UFW'ninkilerden önce değerlendirilen kendi güvenlik duvarı kurallarıyla yayınlar. Portları yalnızca 127.0.0.1 üzerinde yayınlayıp önüne bir ters proxy koyun ya da Docker'ın güvenlik duvarı entegrasyonunu belgelerindeki gibi yapılandırın.

ufw limit ne yapar?

Bir porta izin verir, ama 30 saniye içinde altı veya daha fazla bağlantı açan bir adresi reddeder. SSH için uygundur ve şifre tahminini yavaşlatır.

UFW ve nftables kurallarını aynı anda kullanabilir miyim?

UFW kurallarını sistemin netfilter altyapısı üzerinden kendisi yazar. Yanında ayrı nftables veya firewalld kuralları tutmayın; tek bir araç seçin.

Kaynaklar

Şifre Oluştur

Lütfen onaylayın