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
Bash# SSH (22) sudo ufw allow 22/tcp # HTTP (80) sudo ufw allow 80/tcp # HTTPS (443) sudo ufw allow 443/tcp
🔧 UFW'yi etkinleştirme
Temel kuralları yapılandırdıktan sonra UFW'yi etkinleştirin:
Bash# UFW'yi etkinleştir sudo ufw enable # Durumu kontrol et sudo ufw status verbose
Önemli: UFW'yi etkinleştirmeden önce SSH'ye izin verdiğinizden emin olun!
📝 Gelişmiş kurallar
Belirli IP adreslerine izin verme
Bash# Belirli bir IP adresine izin ver sudo ufw allow from 192.168.1.100 # Belirli IP'den belirli porta izin ver sudo 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
Bash# Belirli portu reddet sudo ufw deny 8080/tcp # Belirli IP adresini reddet sudo ufw deny from 192.168.1.200
🔍 Kuralları yönetme
Tüm kuralları listeleme
Bash# Numaralı liste sudo ufw status numbered # Ayrıntılı durum sudo ufw status verbose
Kuralları silme
Bash# Numaraya göre kural sil sudo ufw delete 3 # İçeriğe göre kural sil sudo 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ı
Bashsudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
Posta sunucusu yapılandırması
Bashsudo ufw allow 25/tcp # SMTP sudo ufw allow 587/tcp # SMTP submission sudo ufw allow 465/tcp # SMTPS sudo ufw allow 993/tcp # IMAPS sudo 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:
Bash# Durum sudo ufw status verbose # Aktif kurallar (numaralı) sudo ufw status numbered # Başka bir makineden bağlantı testi # (port testi için telnet veya nc)
🚫 UFW'yi devre dışı bırakma
UFW'yi geçici olarak devre dışı bırakmak isterseniz:
Bash# UFW'yi devre dışı bırak sudo ufw disable # Tekrar etkinleştir sudo 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
Bash# Sağlayıcı konsolu üzerinden bağlanın (varsa) # UFW'yi sıfırla sudo ufw reset sudo ufw allow 22/tcp sudo ufw enable
UFW kuralları çalışmıyor
Bash# UFW aktif mi sudo ufw status # UFW'yi yeniden yükle sudo ufw reload # iptables kontrol et (UFW iptables kullanır) sudo iptables -L -n
Kural eklendikten sonra port hâlâ engelli
Bash# Kural var mı sudo ufw status numbered # deny kuralı öncelikli mi sudo ufw status verbose # Kuralı sil ve yeniden ekle sudo ufw delete allow 80/tcp sudo ufw allow 80/tcp sudo 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.