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
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:
sudo apt install ufw2. adım: Varsayılanları ayarlayın ve önce SSH'ye izin verin
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSHOpenSSH, 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
sudo ufw allow 80,443/tcpDaha fazla örnek:
| Amaç | Komut |
|---|---|
| Tek bir port | sudo ufw allow 8080/tcp |
| Bir port aralığı | sudo ufw allow 30000:30100/udp |
| Yalnızca tek bir adresten | sudo ufw allow from 198.51.100.7 to any port 5432 proto tcp |
| Bütün bir ağdan | sudo ufw allow from 198.51.100.0/24 to any port 3306 proto tcp |
| Uygulama profiliyle | sudo ufw allow "Nginx Full" (bkz. sudo ufw app list) |
| Açıkça reddetme | sudo 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
sudo ufw enable
sudo ufw status verboseDoğ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:
sudo ufw limit OpenSSH
sudo ufw delete allow OpenSSHKuralları yönetmek
Kuralları numaralarıyla listeleyin ve numarayla silin:
sudo ufw status numbered
sudo ufw delete 3Bir kuralı belirli bir konuma ekleyin (kurallar sırayla değerlendirilir):
sudo ufw insert 1 deny from 203.0.113.50Bir komutun ne yapacağını uygulamadan --dry-run ile önizleyin; örneğin sudo ufw --dry-run enable.
Kayıt tutma
sudo ufw logging lowEngellenen 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
- Daha fazla kontrol: nftables güvenlik duvarı.
- Tekrarlanan denemeleri engelleyin: Fail2ban ve CrowdSec.
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.