Blog Projeler Dokümanlar Araçlar Hizmetler Dosyalar Linkler Hakkımda İletişim
Katmanlı güvenlik duvarı, kimlik, ağ bölümleri, yedekleme ve izleme sistemi

firewalld Rich Rule Nedir? Kullanım ve Örnekler

Rich Rule sözdizimi; IP, port, service, IPv4/IPv6, log, rate limit, runtime/permanent ve priority örnekleriyle güvenli firewalld rehberi.

firewalld Rich Rule nedir?

Rich Rule, firewalld içinde kaynak/hedef adresi, servis veya port, protokol, log/limit ve accept, reject ya da drop eylemini tek bir okunabilir kuralda birleştiren rich-language sözdizimidir. Basit --add-service veya --add-port işleminin ifade edemediği “yalnız bu IP bu porta erişsin ve reddedilenleri sınırlı logla” gibi kurallar için kullanılır.

Rich Rule bir zone veya policy parçasıdır. Bu nedenle komutta --zone değerini açıkça belirtmek, aktif zone'u tahmin etmekten daha güvenlidir.

Değişiklikten önce mevcut durumu oku

sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --list-all
sudo firewall-cmd --zone=public --list-rich-rules
sudo firewall-cmd --permanent --zone=public --list-rich-rules

İlk liste runtime, --permanent kullanılan liste kalıcı yapılandırmadır. İkisi farklıysa reload sonrası runtime-only değişiklik kaybolabilir.

Rich Rule sözdizimi

Temel yapı şöyledir:

rule [family] [priority]
     [source]
     [destination]
     service|port|protocol|...
     [log|nflog|audit]
     [accept|reject|drop|mark]

Örnek:

rule family="ipv4"
     source address="203.0.113.10"
     port port="443" protocol="tcp"
     log prefix="HTTPS_ALLOW " limit value="5/m"
     accept

Adresler örnektir. Production komutuna kendi yönetim IP'nizi yazmadan önce mevcut SSH oturumunu ve ikinci erişim kanalını koruyun.

Rich Rule nasıl eklenir?

Önce runtime kuralıyla davranışı test et:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="443" protocol="tcp" accept'

Doğrulama başarılıysa aynı kuralı permanent yapılandırmaya ekle:

sudo firewall-cmd --permanent --zone=public   --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="443" protocol="tcp" accept'

Son olarak yapılandırmayı kontrol edip reload et:

sudo firewall-cmd --check-config
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-rich-rules

--permanent değişikliği tek başına runtime'a uygulanmaz. Resmî firewall-cmd dokümantasyonuna göre permanent yapılandırma reload veya servis yeniden başlatma sonrası runtime olur.

Rich Rule nasıl sorgulanır?

RULE='rule family="ipv4" source address="203.0.113.10" port port="443" protocol="tcp" accept'

sudo firewall-cmd --zone=public --query-rich-rule="$RULE"
echo $?

Çıkış kodu 0 kuralın bulunduğunu, 1 bulunmadığını belirtir. Otomasyon scriptinde yalnız ekrana yazılan yes/no metnine değil çıkış koduna göre karar verilebilir.

Rich Rule nasıl silinir?

Silme komutundaki kural, eklenen sözdizimiyle eşleşmelidir:

RULE='rule family="ipv4" source address="203.0.113.10" port port="443" protocol="tcp" accept'

sudo firewall-cmd --zone=public --remove-rich-rule="$RULE"
sudo firewall-cmd --permanent --zone=public --remove-rich-rule="$RULE"
sudo firewall-cmd --reload

Silmeden önce hem runtime hem permanent listede kuralı doğrulayın.

IP adresine izin verme

Belirli bir IPv4 adresinden tüm bağlantılara izin vermek:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="203.0.113.10" accept'

Bu kural geniş yetki verir. Çoğu durumda servis veya port ile daraltmak daha doğrudur:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="203.0.113.10" service name="ssh" accept'

IP adresini engelleme: reject ve drop

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="198.51.100.25" reject'

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="198.51.100.26" drop'

reject paketi reddeder ve karşı tarafa hata cevabı üretebilir. drop paketi sessizce atar. Hangisinin kullanılacağı tehdit modeli ve teşhis ihtiyacına göre seçilir.

IP + port kısıtlama

Yalnız belirli ağdan TCP 5432 erişimi:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="10.20.0.0/16" port port="5432" protocol="tcp" accept'

Bu kuralın anlamlı olması için aynı porta daha geniş izin veren başka zone/port/rule olmadığını --list-all ve --list-rich-rules ile kontrol edin.

TCP ve UDP

DNS gibi TCP ve UDP gerektiren serviste iki port kuralı gerekir:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="10.20.0.0/16" port port="53" protocol="udp" accept'

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="10.20.0.0/16" port port="53" protocol="tcp" accept'

Servis tanımı ihtiyacı doğru karşılıyorsa service name="dns" daha anlaşılır olabilir.

IPv6 kuralı

IPv4 kuralı IPv6 trafiğini kapsamaz:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv6" source address="2001:db8:100::/64" service name="ssh" accept'

IPv6 etkin bir sunucuda yalnız IPv4 filtreleyip sistemi güvenli varsaymayın.

Logging ve rate limit

Sınırsız paket loglamak disk ve log pipeline'ını doldurabilir. Prefix ve limit ekleyin:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="198.51.100.0/24" port port="22" protocol="tcp" log prefix="SSH_REJECT " level="warning" limit value="5/m" reject'

Logun hangi journal/syslog hedefinde göründüğü dağıtımın log yapılandırmasına bağlıdır:

sudo journalctl -u firewalld --since "10 minutes ago"

Paket seviyesindeki kayıtlar kernel/journal tarafında farklı facility altında görülebilir; test paketini üretip gerçek log hedefini doğrulayın.

Runtime, permanent ve timeout

Geçici teşhis kuralı için timeout kullanılabilir:

sudo firewall-cmd --zone=public   --add-rich-rule='rule family="ipv4" source address="203.0.113.10" service name="ssh" accept'   --timeout=20m

Resmî dokümana göre --timeout, --permanent ile birlikte kullanılamaz. Süre dolunca runtime kural otomatik kaldırılır.

Rule priority

Birden fazla kural çakışıyorsa değerlendirme sırası önemlidir. Rich Rule priority değeri -32768 ile 32767 aralığındadır; düşük değer daha önce değerlendirilir.

sudo firewall-cmd --zone=public   --add-rich-rule='rule priority=-100 family="ipv4" source address="203.0.113.10" service name="ssh" accept'

Priority kullanmak yerine önce zone tasarımını sadeleştirmek tercih edilir. Priority verildiğinde kural envanterinde gerekçesi belgelenmelidir.

Güvenli uygulama sırası

  1. Aktif interface ve zone eşleşmesini oku.
  2. Mevcut runtime/permanent kural listesini kaydet.
  3. Yönetim erişimini kesmeyecek dar runtime kuralı ekle.
  4. Ayrı istemciden gerçek bağlantıyı test et.
  5. --query-rich-rule ve port/servis testiyle sonucu doğrula.
  6. Aynı kuralı permanent ekle.
  7. --check-config, reload ve tekrar bağlantı testi çalıştır.

Sık hatalar

Belirti Olası neden Doğrulama
Kural eklendi ama trafik değişmedi Yanlış zone/interface --get-active-zones, --get-zone-of-interface
Reload sonrası kural kayboldu Yalnız runtime eklendi Permanent listeyi kontrol et
Permanent kural hemen çalışmadı Reload yapılmadı Runtime ve permanent listeleri karşılaştır
Silme komutu kuralı bulamadı Sözdizimi/zone farklı --list-rich-rules çıktısını aynen kullan
IPv6 erişimi açık kaldı Yalnız IPv4 kuralı var IPv6 listener ve rule family kontrolü
SSH bağlantısı kesildi Allow kuralından önce geniş deny Konsol erişimi ve priority/zone incelemesi

İlgili rehberler

Kaynaklar

firewalld Rich Rule Nedir? Kullanım ve Örnekler — kaynak ve uygulama notları

Konuya özgü sınır

Veritabanı bağlantısı, havuzdaki istemci ve sunucu oturumu aynı kapasite ölçüsü değildir. Bekleyen oturumları, etkin sorguları ve kilitleri birlikte yorumlayın. Üretimde ölçüm amacıyla sorgu metni toplarken kişisel veri veya parametrelerin loglara taşınmasını önleyin.

Durumu değiştirmeden ön kontrol

Aşağıdaki sorgular envanter içindir; yetki veya modül eksikliği ayrıca değerlendirilmelidir. Çıktılar burada çalıştırılmış test sonucu olarak sunulmamaktadır.

SELECT state, count(*) FROM pg_stat_activity GROUP BY state;

Birincil başvuru

İlgili okuma yolu

Paylaş:

Markdown olarak görüntüle · Markdown indir

Kaynak kullanımı ve düzeltme bildirme ilkeleri

Bu yazı hakkında sorunuz mu var? İletişime geçin.

İletişime Geç

İlgili yazılar

Katmanlı güvenlik duvarı, kimlik, ağ bölümleri, yedekleme ve izleme sistemi
Güvenlik, Ağ, İzleme ve Yedekleme

cPanel Güvenlik, Yedekleme ve Performans Kontrol Listesi

cPanel/WHM sunucusunda SSH, MFA, firewall, güncelleme, yedek, zararlı yazılım, PHP-FPM, kaynak sınırı ve geri yükleme denetimlerini birleştiren rehber.

Katmanlı güvenlik duvarı, kimlik, ağ bölümleri, yedekleme ve izleme sistemi
Güvenlik, Ağ, İzleme ve Yedekleme

Windows Firewall: IP, Subnet ve Genel Erişim

Windows Server güvenlik duvarında tek IP, CIDR subnet, LocalSubnet ve genel erişim kurallarını PowerShell ile güvenli oluşturma ve doğrulama rehberi.

Katmanlı güvenlik duvarı, kimlik, ağ bölümleri, yedekleme ve izleme sistemi
Güvenlik, Ağ, İzleme ve Yedekleme

Public Veritabanı Portu Riskleri ve Güvenli Erişim

MSSQL, PostgreSQL ve MySQL portlarını internete açmanın risklerini; VPN, private network, allowlist, TLS, en az yetki ve izlemeyle azaltma rehberi.

Katmanlı güvenlik duvarı, kimlik, ağ bölümleri, yedekleme ve izleme sistemi
Güvenlik, Ağ, İzleme ve Yedekleme

Uptime İzlemede Yanlış Pozitifleri Azaltma

Uptime kontrollerinde DNS, TLS, ağ, uygulama ve bağımlılık hatalarını ayırıp ardışık doğrulama, çoklu bölge ve doğru health endpoint ile alarm kalitesini artırma rehberi.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
Ağ ve Sistem Güvenliği

nftables ile Stateful Linux Firewall Tasarımı

nftables ile Stateful Linux Firewall Tasarımı için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; erişim yüzeyini küçültmek, en az yetki uygulamak ve güvenlik değişikliğini bağlantıyı kesmeden doğrulamak.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
Linux Sunucu Yönetimi

Rocky Linux: Güvenli Yapılandırma ve Erişim Kontrolü

Rocky Linux: Güvenli Yapılandırma ve Erişim Kontrolü için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; erişim yüzeyini küçültmek, en az yetki uygulamak ve güvenlik değişikliğini bağlantıyı kesmeden doğrulamak.