Bu rehber, Linux için basit ama etkili bir güvenlik duvarı olan UFW (Uncomplicated Firewall) kurulumunu ve yapılandırmasını gösterir. UFW, VPS sunucunuzda güvenlik duvarı kurallarını yönetmeyi kolaylaştırır.
📋 Ön koşullar
- root veya sudo erişimli VPS sunucu
- Aktif SSH bağlantısı
- Ubuntu/Debian (komutlar bu dağıtımlara göre uyarlanmıştır)
📥 UFW kurulumu
Ubuntu/Debian'da kurulum
Bashsudo apt update sudo apt install ufw -y
Kurulum doğrulaması
Bash# UFW durumunu kontrol et sudo ufw status
UFW etkin değilse şu mesajı görürsünüz: Status: inactive
⚙️ Temel yapılandırma
Önemli: UFW'yi etkinleştirmeden önce SSH portuna (22) izin verdiğinizden emin olun, aksi halde sunucuya erişiminizi kaybedersiniz.
Varsayılan kuralları ayarlama
Bash# Gelen trafiği engelle, giden trafiğe izin ver sudo ufw default deny incoming sudo ufw default allow outgoing
Gerekli bağlantılara izin verme
Bash1# SSH (22) 2sudo ufw allow 22/tcp 3 4# HTTP (80) 5sudo ufw allow 80/tcp 6 7# HTTPS (443) 8sudo ufw allow 443/tcp
🔧 UFW'yi etkinleştirme
Temel kuralları yapılandırdıktan sonra UFW'yi etkinleştirin:
Bash1# UFW'yi etkinleştir 2sudo ufw enable 3 4# Durumu kontrol et 5sudo ufw status verbose
Önemli: UFW'yi etkinleştirmeden önce SSH'ye izin verdiğinizden emin olun!
📝 Gelişmiş kurallar
Belirli IP adreslerine izin verme
Bash1# Belirli bir IP adresine izin ver 2sudo ufw allow from 192.168.1.100 3 4# Belirli IP'den belirli porta izin ver 5sudo ufw allow from 192.168.1.100 to any port 22
Port aralıkları
Bash# Port aralığına izin ver sudo ufw allow 8000:9000/tcp
Seçili bağlantıları reddetme
Bash1# Belirli portu reddet 2sudo ufw deny 8080/tcp 3 4# Belirli IP adresini reddet 5sudo ufw deny from 192.168.1.200
🔍 Kuralları yönetme
Tüm kuralları listeleme
Bash1# Numaralı liste 2sudo ufw status numbered 3 4# Ayrıntılı durum 5sudo ufw status verbose
Kuralları silme
Bash1# Numaraya göre kural sil 2sudo ufw delete 3 3 4# İçeriğe göre kural sil 5sudo ufw delete allow 80/tcp
Tüm kuralları sıfırlama
Bash# UFW'yi varsayılana sıfırla (devre dışı bırak ve kuralları sil) sudo ufw reset
💡 Tipik örnekler
Web sunucusu yapılandırması
Bash1sudo ufw default deny incoming 2sudo ufw default allow outgoing 3sudo ufw allow 22/tcp 4sudo ufw allow 80/tcp 5sudo ufw allow 443/tcp 6sudo ufw enable
Posta sunucusu yapılandırması
Bash1sudo ufw allow 25/tcp # SMTP 2sudo ufw allow 587/tcp # SMTP submission 3sudo ufw allow 465/tcp # SMTPS 4sudo ufw allow 993/tcp # IMAPS 5sudo ufw allow 995/tcp # POP3S
Veritabanı sunucusu yapılandırması
Bashsudo ufw allow from 192.168.1.0/24 to any port 3306 # Yerel ağdan MySQL sudo ufw allow from 192.168.1.0/24 to any port 5432 # Yerel ağdan PostgreSQL
✅ Doğrulama
UFW'nin düzgün çalıştığını kontrol edin:
Bash1# Durum 2sudo ufw status verbose 3 4# Aktif kurallar (numaralı) 5sudo ufw status numbered 6 7# Başka bir makineden bağlantı testi 8# (port testi için telnet veya nc)
🚫 UFW'yi devre dışı bırakma
UFW'yi geçici olarak devre dışı bırakmak isterseniz:
Bash1# UFW'yi devre dışı bırak 2sudo ufw disable 3 4# Tekrar etkinleştir 5sudo ufw enable
📚 En iyi uygulamalar
- UFW'yi etkinleştirmeden önce her zaman SSH'ye izin verin
- Üretime geçmeden kuralları test edin
- Mümkünse herkese port açmak yerine belirli IP adreslerini kullanın
- Kuralları düzenli gözden geçirin ve kullanılmayanları kaldırın
- Bakımı kolaylaştırmak için kuralları belgeleyin
- Büyük değişikliklerden önce yapılandırma yedeği alın
🆘 Sorun giderme
UFW etkinleştirdikten sonra SSH bağlantısı yok
Bash1# Sağlayıcı konsolu üzerinden bağlanın (varsa) 2 3# UFW'yi sıfırla 4sudo ufw reset 5sudo ufw allow 22/tcp 6sudo ufw enable
UFW kuralları çalışmıyor
Bash1# UFW aktif mi 2sudo ufw status 3 4# UFW'yi yeniden yükle 5sudo ufw reload 6 7# iptables kontrol et (UFW iptables kullanır) 8sudo iptables -L -n
Kural eklendikten sonra port hâlâ engelli
Bash1# Kural var mı 2sudo ufw status numbered 3 4# deny kuralı öncelikli mi 5sudo ufw status verbose 6 7# Kuralı sil ve yeniden ekle 8sudo ufw delete allow 80/tcp 9sudo ufw allow 80/tcp 10sudo ufw reload
📚 Ek kaynaklar
❓ Sık sorulan sorular
S: UFW'yi başka güvenlik duvarı araçlarıyla birlikte kullanabilir miyim?
C: Hayır — UFW doğrudan iptables'ı yönetir. firewalld vb. ile eşzamanlı kullanım çakışmalara yol açabilir.
S: Belirli bir hizmet için porta nasıl izin verilir?
C: Port numarasıyla: sudo ufw allow 3306/tcp veya tanımlıysa hizmet adıyla: sudo ufw allow mysql.
S: UFW CentOS/RHEL'de çalışır mı?
C: UFW öncelikle Debian/Ubuntu içindir. CentOS/RHEL'de firewalld tercih edin.
S: Açık portları nasıl görürüm?
C: sudo ufw status verbose aktif kuralları ve portları gösterir.
S: Docker konteynerinde UFW?
C: UFW ana makine düzeyinde çalışır. Konteynerlerde Docker ağı ve güvenliğini kullanın.