firewalld Komutları Hızlı Başvuru Kılavuzu (Cheatsheet)

Bu makale, firewalld hizmetini yönetmek, kalıcı ve anlık kurallar uygulamak, bölgeleri (zones) yapılandırmak ve temel ağ erişimini sağlamak için kullanılan temel komutları özetler. Yeni başlayanlar ve orta düzey kullanıcılar için idealdir.

L
Linuxize
17 görüntülenme
firewalld Komutları Hızlı Başvuru Kılavuzu (Cheatsheet)

firewalld Komutları Hızlı Başvuru Kılavuzu

firewalld, Linux sistemlerinde ağ trafiğini dinamik olarak yönetmek için kullanılan bir güvenlik duvarı yönetim aracıdır. Bu kılavuz, hizmetin temel yönetiminden gelişmiş kural yapılandırmalarına kadar bilmeniz gereken temel komutları sunar.

Temel Hizmet Yönetimi

firewalld hizmetinin durumunu kontrol etmek, başlatmak, durdurmak ve önyüklemede otomatik başlamasını sağlamak için kullanılan temel systemctl ve firewall-cmd komutları aşağıdadır.

firewall-cmd --state
sudo systemctl start firewalld
sudo systemctl stop firewalld
sudo systemctl enable firewalld
sudo systemctl disable firewalld

Kuralları Yeniden Yükleme

Güvenlik duvarı kurallarını yeniden yüklemek, mevcut bağlantıları kesmeden değişiklikleri uygulamak için kritik öneme sahiptir.

# Bağlantıları düşürmeden kuralları yeniden yükler
sudo firewall-cmd --reload

# Tam yeniden yükleme (tüm mevcut bağlantıları sıfırlar)
sudo firewall-cmd --complete-reload

İpucu: Bir kuralı kalıcı hale getirdikten sonra, etkinleştirmek için her zaman --reload komutunu çalıştırmanız gerekir.

Anlık (Runtime) ve Kalıcı (Permanent) Kurallar

firewalld'de yapılan değişiklikler varsayılan olarak yalnızca anlık (runtime) olarak uygulanır ve sistem yeniden başlatıldığında veya güvenlik duvarı yeniden yüklendiğinde kaybolur. Değişikliklerin kalıcı olması için --permanent bayrağı kullanılmalıdır.

# Yalnızca anlık: HTTP servisini etkinleştirir (Yeniden yüklemede kaybolur)
sudo firewall-cmd --add-service=http

# Kalıcı: HTTP servisini etkinleştirir (Yeniden başlatmada kalır)
sudo firewall-cmd --add-service=http --permanent

# Tüm kalıcı kuralları anlık yapılandırmaya kaydeder
sudo firewall-cmd --runtime-to-permanent

Bölgeler (Zones) Yönetimi

Bölgeler, ağ arayüzlerine farklı güven seviyeleri atamak için kullanılır. Varsayılan bölgeyi belirlemek ve arayüzleri yönetmek önemlidir.

  1. Mevcut tüm bölgeleri listelemek için: firewall-cmd --get-zones
  2. Varsayılan bölgeyi kontrol etmek için: firewall-cmd --get-default-zone
  3. Bir arayüzü (örn. eth0) kalıcı olarak bir bölgeye atamak için: sudo firewall-cmd --zone=internal --add-interface=eth0 --permanent
  4. Bir bölgenin tüm ayarlarını (servisler, portlar vb.) listelemek için: firewall-cmd --zone=public --list-all

Hizmetler ve Portlar

Belirli hizmetleri (örn. http, ssh) veya doğrudan port numaralarını açabilirsiniz.

Hizmet Ekleme/Kaldırma

# Public bölgede HTTP servisini kalıcı olarak açma
sudo firewall-cmd --zone=public --add-service=http --permanent

# Tüm ön tanımlı servisleri listeleme
firewall-cmd --get-services

Port Açma

Eğer ön tanımlı bir hizmet yoksa, port numarasını ve protokolünü belirtmelisiniz.

# TCP port 8080'i kalıcı olarak açma
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

# TCP port aralığı açma
sudo firewall-cmd --zone=public --add-port=4000-4500/tcp --permanent

Zengin Kurallar (Rich Rules)

Zengin kurallar, kaynak IP'ye, hedefe veya belirli protokollere dayalı daha karmaşık ve ince ayarlı erişim kontrolü sağlar.

# 192.168.1.0/24 ağından gelen trafiğe izin ver
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' --permanent

Yaygın Sunucu Kurulumu (Web Sunucusu)

Tipik bir web sunucusu için temel güvenlik duvarı yapılandırması adımları:

  1. Varsayılan bölgeyi belirle: sudo firewall-cmd --set-default-zone=public
  2. SSH erişimini koru: sudo firewall-cmd --zone=public --add-service=ssh --permanent
  3. HTTP ve HTTPS trafiğine izin ver: sudo firewall-cmd --zone=public --add-service=http --permanent ve sudo firewall-cmd --zone=public --add-service=https --permanent
  4. Değişiklikleri uygula: sudo firewall-cmd --reload
  5. Doğrulama: firewall-cmd --zone=public --list-all

Kaynak

Linuxize