SlideShare a Scribd company logo
1 of 50
Download to read offline
 
 
Ön Söz 
FirewallD Nedir ? 
FirewallD ve İptables Karşılaştırmaları 
Zone Kavramı Nedir ? 
Varsayılan Zone Tanımları 
Başlangıç 
Zone Yönetimi 
Kaynak Yönetimi 
Servis Yönetimi 
Güvenlik Duvarı Servis Konfigurasyonu 
Port Yönetimi 
Port Yönlendirme 
Güvenlik Duvarı Kural Yönetimi 
Grafik Arabirim (GUI) ile Güvenlik Duvarı Konfigurasyonu 
Örnek Uygulamalar 
Grafik Arayüz Programı ile Port Engellemek 
Grafik Arayüz Programı ile Port Yönlendirmek 
Grafik Arayüz Programı ile Varsayılan Zone Belirtmek 
Ağ Arabirimlere Bağlı Zone ‘ları Görüntülemek/Değiştirmek 
Güncel Hayattan Pratik Örnekler 
FirewallD Log Mekanizması 
FirewallD Log Seçenekleri 
FirewallD Log Kural Sözdizimi 
Syslog 
Auditd 
FirewallD Hata Numaraları 
FirewallD Konfigurasyon Yedekleme İşlemleri 
Yedek Alma 
Düzenli Full Konfigurasyon Yedekleme 
Crontab ‘a Kural Girdisi Eklemek 
Değişiklik Oldukça Düzenli Yedekleme 
Yedekten Geri Dönme 
Ön Söz 
Bu yazı RHEL 7 ile gelen FirewallD hakkında detay bilgi içermektedir. 
 
Bu makale v1 formatında ilk olarak 15.09.2015 tarihinde yayımlanmıştır. 
Güncel sürümlerin slideshare.net/ibrahimucar39545464 adresinden 
ulaşabilirsiniz. 
 
Makale ile ilgili önerilerinizi, düzeltmemi istediğiniz hususları benimle 
paylaşmanız ve katkıda bulunmanız beni çok mutlu eder. İletişim kurmaktan 
lütfen çekinmeyiniz. 
 
İbrahim UÇAR 
ucribrahim@gmail.com 
twitter.com/ucribrahim 
 
Network teknolojilerini öğrenirken, araştırma yapmamda ve yazdıklarımı 
derleyip bu makaleyi hazırlamamda katkı sunan ​Ozan UÇAR ​‘a teşekkürlerimi 
sunarım. 
 
 
   
FirewallD Nedir ? 
Rhel 7 ile beraber Iptables firewall yerini alan FirewallD yada diğer bilinen adı 
ile Dynamic Firewall bir çok yenilik sunuyor. 
 
Dynamic firewall servisi olan Firewalld, güvenli tutulması gereken ağları ve 
onların tanımladığı ağ arabirimlerini “zone” desteği ile dinamik ve esnek bir 
şekilde yönetebilir kılar. 
 
IPv4 ve IPv6 konfigurasyon desteği sağlamaktadır. FirewallD, Bridge Ethernet 
kartlarını destekler ve kalıcı konfigurasyon seçenekleri vardır. Servisler ve 
uygulamaların doğrudan firewall kuralı eklemesi için bir arabirim sunmaktadır. 
 
   
FirewallD ve İptables Karşılaştırmaları 
 
Iptables ve FirewallD için gerekli başlıca farklılıklar şu şekildedir, 
 
● Iptables servisi konfigurasyon dosyasını ​/etc/sysconfig/iptables ​dizini 
altında saklamaktadır buna istinaden firewalld bir çok konfigurasyon 
dosyasını XML formatında ​/usr/lib/firewalld/​ dizini altında 
saklamaktadır. ​Not:​ Red Hat Enterprise Linux sistemlerde varsayılan 
olarak firewalld kurulu ise ​/etc/sysconfig/iptables​ dizini 
bulunmamaktadır. 
 
● Iptables servisi ile her yeni değişiklik diğer tüm kuralların temizlenip 
/etc/sysconfig/iptables​ dosyasından yeniden yüklenmesi anlamına 
gelmektedir, buna karşın firewalld eski kuralların tamamını yeniden 
yüklemez, sadece değişiklikleri yükler ve uygular. Bu şu demek oluyor 
ki, firewalld çalışma anında bir değişiklik yaptığınızda varolan 
bağlantıları asla koparmaz. Bu durum bir statefull firewall’dan beklenen 
en şık hareket olur. 
 
 
   
Her ikiside ıptables araçlarını kullanarak kernel packet filter ile konuşur.  
 
Aşağıdaki şema bunu göstermektedir. 
 
 
 
 
   
Zone Kavramı Nedir ? 
Dilimize ​“bölge” ​olarak çevirebileceğimiz zone tanımı, ağ bağlantıları için 
güven düzeyini tanımlar. Bu bağlantı yalnızca bir zone‘a dahil olabiliyor, ancak 
bir zone için birçok ağ bağlantısı kullanılabilir. Bunu örnekleri ile 
açıklayacağım ve yazının devamında zone ifadesini kullanmayı tercih 
ediyorum (daha teknolojik) 
 
Varsayılan Zone Tanımları 
drop : ​Tüm gelen ağ paketlerini engeller. Yalnızca giden ağ bağlantıları için 
izin verilir. 
block :​ Tüm gelen ağ bağlantılarını engeller ve IPv4 için 
icmp­host­prohibited​ mesajı döndürür, IPv6 için ise​ icmp6­adm­prohibited 
döndürür. 
public : ​Ortak kullanım için oluşturulmuş bir zone. Sadece seçili gelen 
bağlantılar kabul edilir. 
external : ​Bu zone dış ağı yani internet ağını temsil etmektedir. 
dmz :​ Kamuya açık ve iç ağınıza sınırlı erişimi olan bilgisayarlar için 
arındırılmış. Yalnızca seçili gelen bağlantılar kabul edilir. 
work :​ Güvenli çalışma için oluşturulmuş çalışma alanı. 
home : ​Ev alanlarında kullanım için oluşturulmuş çalışma alanı.  
internal : ​İç ağda kullanılmak üzere oluşturulmuş çalışma alanı. 
trusted :​ Tüm ağ bağlantıları kabul edilir. 
   
Başlangıç 
Firewalld servisinin durumunu kontrol etmek isterseniz aşağıdaki komutu 
kullanabilirsiniz. 
root#​ systemctl status firewalld 
 
firewalld.service ­ firewalld ­ dynamic firewall daemon 
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) 
 Active: active (running) since Wed 2015­07­01 13:10:20 PDT; 42s ago 
 Main PID: 700 (firewalld) 
 CGroup: /system.slice/firewalld.service 
 └─700 /usr/bin/python ­Es /usr/sbin/firewalld ­­nofork ­­nopid 
 
veya alternatif kullanabileceğiniz başka bir komut ise aşağıdaki gibidir. 
root# ​firewall­cmd ­­stat 
 
running 
 
Firewalld servisini başlatmak/durdurmak veya yeniden başlatmak isterseniz 
aşağıdaki komutları kullanabilirsiniz. 
root#​ systemctl stop firewalld 
 
root# ​systemctl start firewalld 
 
root# ​systemctl restart firewalld 
 
Tamamen firewalld güvenlik duvarını devre dışı bırakmak isterseniz aşağıdaki 
komutu kullanabilirsiniz. 
root# ​systemctl disable firewalld 
 
aynı şekilde firewalld güvenlik duvarını yeniden etkinleştirmek için, 
root# ​systemctl enable firewalld 
 
Acil durumlarda tüm ağ trafiğini engellemek isterseniz aşağıdaki komutu 
kullanabilirsiniz. 
root#​ firewall­cmd ­­panic­on 
 
kapatmak için, 
root#​ firewall­cmd ­­panic­off 
 
Güvenlik duvarının durumunu kontrol etmek isterseniz aşağıdaki komutu 
kullanmanız yeterli olacaktır. 
root# ​firewall­cmd ­­state 
 
running 
 
 
   
Sistemde birkaç ağ arabirimi var ise, IP paketlerinin bir ağ arabiriminden bir 
başka ağ arabirimine yönlendirmek isterseniz aşağıdaki satırı ​/etc/sysctl.conf 
dosyasının içerisine girip en son satıra yapıştırın. 
NOT :​ Routing gibi bir işlem yapılmayacak ise gerekli olan bir durum değildir. 
net.ipv4.ip_forward = 1 
 
Daha sonra aşağıdaki komutu kullanılarak ayarlar etkinleştirilir. 
root# ​sysctl ­p /etc/sysctl.conf 
 
NOT: ​Bir ayarın kalıcı olarak ayarlanmasını istiyorsanız ​­­permament​ parametresini 
kullanabilirsiniz. Aksi takdirde yapılan ayarlar sistem yeniden başlatılana kadar 
sürecektir. 
NOT: ​Yapılan ayarların hemen aktif olmasını istiyorsanız ​­­reload​ parametresini 
kullanabilirsiniz. 
 
   
Zone Yönetimi 
Sistemde varsayılan hangi zone kullanıldığını öğrenmek isterseniz aşağıdaki 
komutu kullanabilirsiniz. 
root# ​firewall­cmd ­­get­default­zone 
 
public 
 
Sistem ağ arayüzleri, zone ‘lara atanmış kaynakları veya onlar hakkında bilgi 
almak isterseniz aşağıdaki komut kullanılabilir. 
root#​ firewall­cmd ­­get­active­zones 
 
public 
 interfaces: eth0 
 sources: 10.0.0.254/24 
 
test 
 sources: 192.168.100.0/24 
 
public 
 interfaces: eth1 
 sources: 172.16.16.0/24 
 
Tüm kullanılabilir zone ‘ların listesini almak isterseniz aşağıdaki komutu 
kullanabilirsiniz. 
root#​ firewall­cmd ­­get­zones 
 
block  dmz  drop  external  home  internal  public  trusted  work 
Varsayılan olarak kullandığınız bir zone alanını başka bir zone ile değiştirmek 
isterseniz aşağıdaki komutu kullanabilirsiniz. Varsayılan zone artık ​home 
ismindeki zone olacaktır. 
root#​  firewall­cmd ­­set­default­zone=home 
 
success 
 
NOT : ​Varsayılan zone ayrıca ​/etc/firewalld/firewalld.conf ​dosyasından 
değiştirilebilir. 
 
Sistem ağ arabirimleri geçici yada kalıcı bir şekilde herhangi bir zone’a 
atanabilir. Geçici olarak ​internal​ zone ‘unu ​eth0​ ağ arayüzüne atamak için 
aşağıdaki komutu kullanmanız yeterli olacaktır. 
root#​ firewall­cmd ­­zone=internal ­­change­interface=eth0 
 
success 
 
Yukarıdaki komutun aynısı sadece kalıcı olarak ​internal​ zone ‘unu ​eth0​ ağ 
arayüzüne atamak için aşağıdaki komut kullanılabilir. 
root#​ firewall­cmd ­­permanent ­­zone=internal ­­change­interface=eth0 
 
success 
 
 
   
Bir zone’a eklediğiniz ağ arabirimini geçici olarak kaldırmak isterseniz 
aşağıdaki komutu kullanabilirsiniz. Kalıcı olarak kaldırmak için​ ­­permanent 
parametresini ekleyebilirsiniz. 
root#​ firewall­cmd ­­zone=internal ­­remove­interface=eth0 
 
success 
 
Sistem ​eth0​ ağ arabiriminin hangi zone ile ilişkili olduğunu öğrenmek 
isterseniz aşağıdaki komutu kullanabilirsiniz. Aşağıdaki çıktıda ​eth0​ ağ 
arabiriminin ​internal​ zone ile ilişkili olduğunu görmekteyiz. 
root#​ firewall­cmd ­­get­zone­of­interface=eth0 
 
internal 
 
Belirtilen network aralığı ile ilişkili olan zone ‘ları listelemek isterseniz 
aşağıdaki komutu kullanabilirsiniz. 
root# ​firewall­cmd ­­get­zone­of­source=192.168.100.0/24 
 
no zone 
 
 
   
Genel geçerli zone yapılandırmasını görmek istersek aşağıdaki komutu 
kullanabiliriz. 
root#​ firewall­cmd ­­zone=public ­­list­all 
 
public (default, active) 
interfaces: eth0 
sources:  
services: dhcpv6­client ipp­client mdns samba­client ssh 
ports:  
masquerade: no 
forward­ports:  
icmp­blocks:  
 
Kalıcı olarak bir zone oluşturmak isterseniz aşağıdaki komutu kullanabilirsiniz. 
Örneğin, ​test​ adlı bir zone oluşturmak için, 
root#​ firewall­cmd ­­permanent ­­new­zone=test 
 
success 
 
root#​ firewall­cmd ­­reload 
 
success 
 
Tamamen bir zone silmek isterseniz aşağıdaki komutu kullanabilirsiniz. 
Örneğin, oluşturmuş olduğumuz ​test​ adlı zone ‘u silmek için, 
root#​ firewall­cmd ­­permanent ­­delete­zone=test 
 
success 
Önceden tanımlanmış servisleri görüntülemek istersek aşağıdaki komutu 
kullanabiliriz. 
root# ​firewall­cmd ­­get­services 
 
RH­Satellite­6 amanda­client bacula bacula­client dhcp dhcpv6 dhcpv6­client dns 
ftp high­availability http https imaps ipp ipp­client ipsec kerberos kpasswd ldap ldaps libvirt libvirt­tls mdns 
mountd ms­wbt mysql nfs ntp openvpn pmcd  
pmproxy pmwebapi pmwebapis pop3s postgresql proxy­dhcp radius rpc­bind  
samba samba­client smtp ssh telnet tftp tftp­client transmission­client vnc­server wbem­https 
 
Aşağıdaki komut tüm zone’ların etkin listesini ve zone‘lar hakkında detaylı bilgi 
verir. 
root#​ firewall­cmd ­­list­all­zones 
 
block 
 interfaces:  
 sources:  
 services:  
 ports:  
 masquerade: no 
 forward­ports:  
 icmp­blocks:  
 rich rules:  
 
 
dmz 
 interfaces:  
 sources:  
 services: ssh 
 ports:  
 masquerade: no 
 forward­ports:  
 icmp­blocks:  
 rich rules:  
  
drop 
 interfaces:  
 sources:  
 services:  
 ports:  
 masquerade: no 
 forward­ports:  
 icmp­blocks:  
 rich rules:  
  
external 
 interfaces:  
 sources:  
 services: ssh 
 ports:  
 masquerade: yes 
 forward­ports:  
 icmp­blocks:  
 rich rules:  
  
home 
 interfaces:  
 sources:  
 services: dhcpv6­client ipp­client mdns samba­client ssh 
 ports:  
Kaynak Yönetimi 
Bir zone’a kalıcı olarak network aralığı eklemek isterseniz aşağıdaki komutu 
kullanabilirsiniz. Örneğin, ​test​ adlı zone’a network aralığı eklemek için, 
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­source=192.168.100.0/24 
 
success 
 
root#​ firewall­cmd ­­reload 
 
success 
 
root#​ firewall­cmd ­­zone=test ­­list­all 
 
home 
 interfaces:  
 sources: 192.168.100.0/24 
 services: dhcpv6­client ipp­client mdns samba­client ssh 
 ports:  
 masquerade: no 
 forward­ports:  
 icmp­blocks:  
 rich rules: 
 
Bir zone içerisindeki kaynağı silmek isterseniz aşağıdaki komut kullanılabilir. 
Örneğin, ​test​ adlı zone içerisindeki ​( 192.168.100.0/24 )​ kaynağını silmek için, 
root#​ firewall­cmd ­­permanent ­­zone=test ­­remove­source=192.168.100.0/24 
 
success 
 
Bir zone’a bağlı ağ arabirimleri listelemek isterseniz aşağıdaki komutu 
kullanabilirsiniz. Herhangi bir zone belirtilmezse, varsayılan zone kullanılır. 
root#​ firewall­cmd ­­zone=test ­­list­interfaces 
 
eth0 
 
Bir zone ‘a ağ arabirimi eklemek isterseniz aşağıdaki komutu kullanabilirsiniz. 
Örneğin, eth0 a ​eth0​ adlı ağ arabirimi ​test​ adlı zone’a eklemek için aşağıdaki 
birinci komut kullanabilir. Kalıcı olarak ayarlamak isterseniz ikinci komutu 
kullanabilirsiniz. 
root# ​firewall­cmd ­­zone=test ­­add­interface=eth0 
 
success 
 
root#​ firewall­cmd ­­permanent ­­zone=test ­­add­interface=eth0 
 
success 
 
NOT:​ NetworkManager ağ arabirimleri otomatik olarak zone’lara eklemektedir. 
 
 
   
Bir zone içerisindeki kaynağı kalıcı olarak değiştirmek istersek aşağıdaki 
komutu kullanabiliriz. Örneğin,​ (192.168.100.0/24)​ kaynağını 
(172.16.16.0/24)​ kaynağı ile değiştirmek için aşağıdaki komutu kullanmamız 
yeterli olacaktır. Eğer kalıcı olarak ayarlamak istemezsek ​­­permanent 
parametresini kaldırabiliriz. 
root#​ firewall­cmd ­­permanent ­­zone=test ­­change­source=172.16.16.0/24 
 
success 
 
Bir zone alanına ait port numaralarını listelemek istersek aşağıdaki komutu 
kullanabiliriz. 
root#​ firewall­cmd ­­zone=test ­­list­ports 
 
443/tcp 22/tcp 80/udp 
 
Bir zone alanına bağlı kaynakları listelemek isterseniz aşağıdaki komutu 
kullanabilirsiniz. Eğer herhangi bir zone belirtilmezse, varsayılan zone için 
uygulanacaktır. 
root#​ firewall­cmd ­­zone=test ­­list­sources 
 
192.168.100.0/24 
 
Bir zone için yönlendirilmiş port ’ların listesini görmek için aşağıdaki komut 
kullanılabilir. Eğer herhangi bir zone belirtilmez ise varsayılan zone 
kullanılacaktır. 
root#​ firewall­cmd ­­zone=test ­­list­forward­ports 
Servis Yönetimi 
Örneğin, HTTP servisini sürekli belirtilen zone için izin vermek isterseniz 
aşağıdaki komutu kullanabilirsiniz. Daha sonra yaptığınız değişikliği hemen 
aktif olmasını isterseniz ikinci komutu kullanabilirsiniz. Bu seçenek birden çok 
kez belirtilebilir. 
root#​ firewall­cmd ­­permanent ­­zone=test ­­add­service=http 
 
success 
 
root# ​firewall­cmd ­­reload 
 
success 
 
root#​ firewall­cmd ­­zone=test ­­list­all 
 
test 
 interfaces: eth0 
 sources: 192.168.100.0/24 
 services: dhcpv6­client ipp­client mdns samba­client ssh ​http 
 ports:  
 masquerade: no 
 forward­ports: 
 
 
   
Belirtilen zone için mesela, HTTP servisini yasaklamak isterseniz aşağıdaki 
komutu kullanabilirsiniz. Yasaklamaktan kastım belirtilen HTTP servisi bu 
zone için kaldırıldığı zaman zaten bu servise kimse erişemeyecek, dolayısıyla 
yasaklanmış olacaktır. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­remove­service=http 
 
success 
 
Varsayılan olarak kullanılan zone içerisindeki servisleri listelemek istersek 
aşağıdaki komutu kullanabiliriz.  
root#​ firewall­cmd ­­list­services 
 
dhcpv6­client ssh 
 
Yukarıdaki komut varsayılan zone içerisindeki servisleri gösterir demiştik. 
Aşağıdaki komut ise belirtilen zone içerisindeki servisleri gösterir. 
root# ​firewall­cmd ­­zone=test ­­list­services 
 
dhcpv6­client http ipp­client mdns samba­client ssh 
 
Varsayılan olarak kullandığınız zone alanına yeni bir servis eklemek isterseniz 
aşağıdaki komutu kullanabilirsiniz. Kalıcı olarak eklemek isterseniz 
­­permanent​ parametresi ekleyebilirsiniz. 
root#​ firewall­cmd ­­new­service=ftp 
 
success 
 
Örneğin bir servisi sadece​ 10 saniye​ için varsayılan zone ‘a eklemek 
isterseniz aşağıdaki komutu kullanabilirsiniz. Daha sonra ​­­list­all 
parametresini kullanarak test edebilirsiniz. 
root# ​firewall­cmd  ­­add­service=samba ­­timeout=10 
 
success 
 
Önceden tanımlanmış icmp türlerini görüntülemek istersek aşağıdaki komutu 
kullanabiliriz. 
root#​ firewall­cmd ­­get­icmptypes 
 
destination­unreachable echo­reply echo­request parameter­problem redirect 
router­advertisement router­solicitation source­quench time­exceeded 
 
Varsayılan olara kullandığınız zone alanına yeni bir icmp türünü eklemek 
isterseniz aşağıdaki komutu kullanabilirsiniz. 
root#​ firewall­cmd ­­new­icmptype=echo­reply 
 
success 
 
Önceden tanımlanmış bir icmp türünü silmek istersek aşağıdaki komutu 
kullanabiliriz. Kalıcı olarak silmek istersek​ ­­permanent​ parametresi 
ekleyebiliriz. 
root#​ firewall­cmd ­­delete­icmptype=echo­reply 
 
success 
Güvenlik Duvarı Servis Konfigurasyonu 
Firewalld paketi ile birlikte güvenlik duvarı yapılandırma hizmetleri 
(ftp,httpd,ssh,)  ​/usr/lib/firewalld/services​ dizininde tutulmaktadır. Eğer yeni 
servisler eklemek isterseniz ​/etc/firewalld/services​ dizini içerisine 
ekleyebilirsiniz. Eğer dosyalar aynı hizmet için her iki yerde kullanılıyorsa 
/etc/firewalld/services ​dizinindeki dosyalar önceliklidir. 
Örneğin, HAProxy servisi. 
 
Aşağıdaki komutu kullanarak ​haproxy.xml​ adında bir dosya oluşturun ve 
aşağıdaki satırı içerisine yapıştırın. Ayarları kaydetmek için ​CTRL+O 
kombinasyonuna basıktan sonra ​enter​ tuşuna basılır ardından ​CTRL+X 
kombinasyonuna basarak dosyadan çıkılır. 
root# ​nano /etc/firewalld/services/haproxy.xml 
 
<?xml version="1.0" encoding="utf­8"?> 
<service> 
 <short>HAProxy</short> 
 <description>HAProxy load­balancer</description> 
 <port protocol="tcp" port="80"/> 
</service> 
 
Daha sonra aşağıdaki komutlar kullanılarak dosya için gerekli ayarlar yapılır. 
root#​ cd /etc/firewalld/services 
root# ​restorecon haproxy.xml 
root#​ chmod 640 haproxy.xml 
 
Varsayılan olarak kullanılan zone alanına oluşturduğumuz servisi eklemek 
istersek aşağıdaki komutu kullanabiliriz. Eğer eklemek istediğimiz özel bir 
zone varsa ​­­zone=zone_ismi​ parametresini kullanabiliriz. 
root# ​firewall­cmd ­­permanent ­­add­service=haproxy 
 
success 
 
root#​ firewall­cmd ­­reload 
 
success 
 
Varsayılan olarak kullanılan zone‘a eklediğimiz ​haproxy​ servisini kaldırmak 
istersek aşağıdaki komutu kullanabiliriz. 
root# ​firewall­cmd ­­permanent ­­remove­service=haproxy 
 
success 
 
root# ​firewall­cmd ­­reload 
 
success 
 
   
Port Yönetimi 
Bir zone alanına kalıcı olarak 443/tcp portuna izin vermek isterseniz aşağıdaki 
komutu kullanabilirsiniz. Örneğin, ​test​ adlı zone ‘a 443/tcp portunu izin 
verelim. Kalıcı olarak eklemek istemezseniz ​­­permanent​ parametresini 
kaldırabilirsiniz. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­port=443/tcp 
 
success 
 
root# ​firewall­cmd ­­reload 
 
success 
 
root# ​firewall­cmd ­­zone=test ­­list­all 
 
test 
 interfaces: eth0 
 sources: 192.168.100.0/24 
 services: dhcpv6­client http ipp­client mdns samba­client ssh 
 ports: 22/tcp ​443/tcp 
 masquerade: no 
 forward­ports: 
 
 
   
Bir zone alanına eklediğiniz port numarasını silmek isterseniz aşağıdaki 
komutu kullanabilirsiniz. Eğer herhangi bir zone belirtilmezse, varsayılan zone 
için uygulanacaktır. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­remove­port=443/tcp 
 
success 
 
Bir zone alanına eklediğimiz port numaralarını görmek istersek aşağıdaki 
komutu kullanabiliriz. 
root# ​firewall­cmd ­­zone=test ­­list­ports 
 
443/tcp 22/tcp 
Port Yönlendirme 
Güvenlik duvarında port yönlendirme yapmak isterseniz aşağıdaki adımları 
takip edebilirsiniz. 
Bir zone için port yönlendirme yapmak istersek aşağıdaki komutu 
kullanabiliriz. Aşağıdaki komutun anlamı şudur, ​test​ adlı zone için tcp 
protokolü ile​ 22​ portuna gelen tüm istekleri ​3758​ portuna yönlendir.  
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­forward­port=port=22:proto=tcp:toport=3758 
 
success 
 
root# ​firewall­cmd ­­reload 
 
success 
 
root# ​firewall­cmd ­­zone=test ­­list­all 
 
test 
 interfaces: eth0  
 sources: 192.168.100.0/24 
 services: dhcpv6­client http ipp­client mdns samba­client ssh 
 ports: 443/tcp 80/udp 22/tcp 
 masquerade: no 
 forward­ports: port=22:proto=tcp:toport=4000:toaddr= 
 
Belirtilen zone için tcp protokolü ile ​22​ portuna gelen tüm istekleri içerideki 
192.168.100.50​ ip adresinin ​3758​ portuna yönlendir. 
root# ​firewall­cmd ­­permanent ­­zone=test 
­­add­forward­port=port=22:proto=tcp:toport=3758:toadddr=192.168.100.50 
 
success 
 
Belirtilen zone için kaynağı herhangi biri olan ​80​ portuna gelen tüm istekleri 
192.168.100.150​ ip adresinin ​9999​ portuna yönlendir. 
root# ​firewall­cmd ­­permanent ­­zone=test 
­­add­forward­port=port=80:proto=tcp:toport=9999:toadddr=192.168.100.50 
 
success 
 
 
   
Bu sefer UDP protokolü üzerinden çalışan bir port yönlendirme kuralı girelim. 
Belirtilen zone için ​53​ portuna gelen tüm istekleri ​3450​ portuna yönlendir. 
root# ​firewall­cmd ­­permanent ­­zone=test 
­­add­forward­port=port=53:proto=udp:toport=3450 
 
success 
 
Yukarıdaki komutun aynısı sadece ​toaddr= ​parametresini ekleyerek içerideki 
istediğimiz bir ip adresine port yönlendirme yapabiliriz. Belirtilen zone için ​53 
portuna gelen tüm istekleri içerideki 192.168.100.100 ip adresinin ​3450 
portuna yönlendir. 
root# ​firewall­cmd ­­permanent ­­zone=test 
­­add­forward­port=port=53:proto=udp:toport=3450:toadddr=192.168.100.100 
 
success 
 
Bir zone alanına eklediğiniz port yönlendirmeyi silmek isterseniz aşağıdaki 
komutu kullanabilirsiniz. 
root# ​firewall­cmd ­­permanent ­­zone=test 
­­remove­forward­port=port=53:proto=udp:toport=3450:toadddr=192.168.100.100 
 
success 
 
   
Güvenlik Duvarı Kural Yönetimi 
FirewallD ile kural yazımı örneklerini ​­­direct ​ve ​­­rich­rule ​parametrelerini 
kullanarak anlatacağım. 
 
­­direct : ​Kulllanıcıların Iptables konseptini temel seviyede öğrenmesi için 
gereklidir. Kullanılması pek önerilmez. 
­­rich­rule :​ Bilinen Iptables söz dizimi olmadan, en karmaşık firewall 
kurallarını yazmak için yüksek seviyede zengin bir yazım seçeneği sunar. 
 
Aşağıdaki örnekte ​­­direct ​parametresi kullanılarak varsayılan zone için bir 
kural girelim. Bu örneğimizde kaynağı herhangi bir ip adresinden gelen 
kaynağı herhangi bir ip adresine giden ve hedefi 22. (ssh) portuna erişimine 
izin ver. 
root# ​firewall­cmd ­­direct ­­add­rule ipv4 filter INPUT 0 ­p tcp ­­dport 22 ­j ACCEPT 
 
success 
 
Bu örneğimizde ise kaynağı herhangi bir ip adresinden gelen kaynağı 
herhangi bir ip adresine giden ve hedefi ​9000​ portuna erişimini yasakla.  
root# ​firewall­cmd ­­direct ­­add­rule ipv4 filter INPUT 0 ­p tcp ­­dport 9000 ­j DROP 
 
success 
 
 
   
Eklemiş olduğumuz direkt kullarını görüntülemek istersek aşağıdaki 
kullanabiliriz. 
root# ​firewall­cmd ­­zone=test ­­direct ­­get­all­rules 
 
ipv4 filter INPUT 0 ­p tcp ­­dport 22 ­j ACCEPT 
 
ipv4 filter INPUT 0 ­p tcp ­­dport 9000 ­j DROP 
 
 
Eğer eklemiş olduğumuz direkt kuralını silmek istersek aşağıdaki komutu 
kullanabiliriz. 
root#​ firewall­cmd  ­­direct ­­remove­rule ipv4 filter INPUT 0 ­p tcp ­­dport 22 ­j 
ACCEPT 
 
success 
 
Sıra geldi zengin ​(­­rich) ​kural yazımı ile ilgili örnek kurallar yazmaya. 
 
Belirli bir network aralığı için örneğin http (80) servisine izin vermek isterseniz 
aşağıdaki komut kullanılabilir. 
root#​ ​firewall­cmd ­­add­rich­rule 'rule family="ipv4" source 
address="192.168.0.0/24" service name="http" accept' 
 
success 
 
 
 
Yukarıdaki komutun aynısı sadece bu kuralı kalıcı olarak ayarlamak istersek 
­­permanent ​parametresini ekleyebiliriz. 
root#​ ​firewall­cmd ­­permanent ­­add­rich­rule 'rule family="ipv4" source 
address="192.168.0.0/24" service name="http" accept'  
 
success 
 
Bir network aralığı için https (443) servisine izin verelim. Unutmayınız 
­­permanent parametresini ekleyerek kuralın kalıcı olmasını sağlayabilirsiniz. 
root#​ ​firewall­cmd ­­add­rich­rule 'rule family="ipv4" source 
address="192.168.0.0/24" service name="https" accept'  
 
success 
 
Aynı şekilde bir network aralığı için vnc­server servisine izin vermek istersek 
aşağıdaki komutu kullanabiliriz. 
root#​ ​firewall­cmd ­­add­rich­rule 'rule family="ipv4" source 
address="192.168.0.0/24" service name="vnc­server" accept' 
 
success 
 
 
   
Örneğin, test adlı bir zone için kural eklemek istersek aşağıdaki gibi bir komut 
kullanabiliriz. Bu örneğimizde test adlı zone içerisindeki network aralığına ssh 
(22) servisine izin verilmiş. Unutmayınız ​­­permanent ​parametresini ekleyerek 
kuralın kalıcı olmasını sağladık. 
root#​ ​firewall­cmd ­­permanent ­­zone=test ­­add­rich­rule 'rule family="ipv4" 
source address="192.168.0.0/24" service name="ssh" accept'  
 
success 
 
Bir ip adresi için ssh (22) servisini kullanmasını engellemek istersek aşağıdaki 
gibi bir komut kullanabiliriz. Bu kuralı özel bir zone için eklemek istersek 
­­zone=zone_ismi ​parametresini kullanabiliriz. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­rich­rule 'rule family="ipv4" 
source address="192.168.100.50/24" service name="ssh" drop'  
 
success 
 
veya aşağıdaki gibi komut kullanarak bu ip adresinin ssh (22) servisini 
kullanmasını engelle aynı zamanda geri ona hata mesajı döndür diyebiliriz. :) 
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­rich­rule 'rule family="ipv4" 
source address="192.168.100.50/24" service name="ssh" reject'  
 
success 
 
 
   
Yukarıdaki kurallarda hep 22 vb.. port numaraları yerine ssh gibi kelimeler 
kullanılmış. Siz bunu isterseniz ssh veya karşılığı olan 22 port numarasını 
yazın iki seçenek aynı anlamlara geliyor. Hangisi kolayınıza geliyorsa onu 
kullanabilirsiniz. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­add­rich­rule 'rule family="ipv4" 
source address="192.168.100.50/24" service name="22" reject'  
 
success 
 
Varsayılan zone için eklemiş olduğumuz kuralları listelemek istersek aşağıdaki 
komutu kullanabiliriz. 
root# ​firewall­cmd ­­list­all 
 
public (default, active) 
  interfaces: eno16777736 
  sources:  
  services: dhcpv6­client ssh 
  ports: 443/tcp 
  masquerade: yes 
  forward­ports:  
  icmp­blocks:  
  rich rules:  
rule family="ipv4" source address="192.168.0.0/24" service 
name="http" accept 
          rule family="ipv4" source address="192.168.0.0/24" service 
name="ssh" accept'  
 
 
Özel bir zone için eklediğimiz kuralları listelemek için aşağıdaki komutu 
kullanabiliriz. 
root# ​firewall­cmd ­­zone=test ­­list­all 
 
test (active) 
  interfaces: eno33554984 
  sources: 192.168.0.0/24 
  services: dhcpv6­client ipp­client ssh 
  ports: 22/tcp 
  masquerade: yes 
  forward­ports: port=22:proto=tcp:toport=2222:toaddr=192.168.100.50 
  icmp­blocks:  
  rich rules:  
rule family="ipv4" source address="192.168.100.253/24" service 
name="21" accept 
rule family="ipv4" source address="192.168.100.50/24" service 
name="ssh" reject 
rule family="ipv4" source address="192.168.0.0/24" service 
name="http" accept 
rule family="ipv4" source address="192.168.0.0/24" service 
name="ssh" accept 
rule family="ipv4" port port="22" protocol="tcp" accept 
rule family="ipv4" source address="192.168.100.50/24" service 
name="ssh" drop 
 
 
 
 
Peki eklediğimiz bir kuralı nasıl silebiliriz. Aşağıdaki komutu kullanarak 
varsayılan zone için belirttiğimiz kuralı silebiliriz. 
root# ​firewall­cmd ­­permanent ­­remove­rich­rule=​'rule​ family="ipv4" source 
address="192.168.0.0/24" service name="http" accept​' 
 
success 
 
root#​ firewall­cmd list­all 
 
public (default, active) 
  interfaces: eno16777736 
  sources: 192.168.0.0/24 
  services: dhcpv6­client ssh 
  ports: 443/tcp 
  masquerade: yes 
  forward­ports:  
  icmp­blocks:  
  rich rules:  
          rule family="ipv4" source address="192.168.0.0/24" service 
name="ssh" accept'  
 
aynı zamanda özel bir zone için bir kural silmek istersek aşağıdaki komutu 
kullanabiliriz. Kalıcı olarak silmek isterseniz ​­­permanent​ parametresini 
ekleyebilirsiniz. 
root# ​firewall­cmd ­­permanent ­­zone=test ­­remove­rich­rule=​'rule 
family="ipv4" source address="192.168.0.0/24" service name="ssh" accept​' 
 
success 
Grafik Arabirim (GUI) ile Güvenlik Duvarı 
Konfigurasyonu  
Firewalld güvenlik duvarı komut satırından yönetildiği gibi aynı zamanda grafik 
arayüz ile yönetilebilmektedir. Bu araç kullanıcı dostu olup çok kolay bir 
şekilde firewalld güvenlik duvarını yönetebilmenize olanak sağlar. Bu grafik 
arayüzü programını çalıştırabilmeniz için centos 7 işletim sisteminizde Masa 
Üstü ortamının ( Desktop ) olması gerekiyor. Grafik arayüz kurulumunu 
yazının ilerleyen konularında değineceğim. 
 
Varsayılan olarak Centos 7 ve üzeri sistemlerde artık kurulu gelecektir fakat 
alt sürümlerde olmayabilir. Bu durumda aşağıdaki komutu kullanarak grafik 
yönetim aracını indirebilirsiniz. 
root# ​yum update && yum upgrade ­y 
root# ​yum install firewall­config ­y 
 
Kurulum bittikten sonra aşağıdaki komut yardımıyla firewalld grafik arayüz 
programını açabilir ve firewalld güvenlik duvarını yönetebilirsiniz. 
root# ​firewall­config  
 
 
Örnek Uygulamalar 
Firewall yönetiyorsanız sık yapmanız gereken işlemler arasında, port 
filtrelemek, port yönlendirmek, ip adresi yada ip gruplarına çeşitli kurallar 
tanımlamaktır. Aşağıda bunları grafik arabirim üzerinden yapmanızı 
sağlayacak pratik uygulamalar ele aldım. 
 
NOT: ​Yazının giriş kısmından sonraki bölümlerde komut satırından bu 
işlemlerin nasıl yapılacağını açıkladım. 
 
Grafik Arayüz Programı ile Port Engellemek 
Örneğin, İnternet ağından (yani public zone) 22. porta gelen trafiği engellemek 
istiyorum. Bunun için ilk önce  (firewall­config) program açılır ve kural 
oluşturmak istediğimiz zone seçilir. Zone seçildikten sonra ​Rich Rules 
sekmesine girip ​Add​ butonuna tıklayarak bir tane firewall kuralı oluşturuyoruz. 
 
 
ardından yapacağınız işleme göre seçenekleri belirlemeniz gerekir. Benim 
örneğimden internetteki herhangi bir ip adresinden, sahip olduğum herhangi 
bir ip adresin port tcp 22. porta gelen trafiği engellemek yer alıyor. Bu 
doğrultuda aşağıdaki ayarlar yapıldıktan sonra ​OK​ butonu ile değişiklikleri 
kaydediyoruz. 
 
 
NOT : Configuration = Permanent​ seçilerek yapılacak ayarların kalıcı olarak 
ayarlanmasını sağlayabilirsiniz. Aksi takdirde sistem yeniden başlatıldıktan 
sonra yapılan ayarlar silinecektir. 
 
NOT : ​Ayarların aktif olması için​ Options > Reload Firewalld​ butonuna 
tıklayabilirsiniz veya ​firewall­cmd ­­reload​ komutunu kullanabilirsiniz. 
 
   
Grafik Arayüz Programı ile Port Yönlendirmek 
Bu örnekte ise grafik arayüz programı ile port yönlendirme nasıl yapılır bunu 
inceleyelim. İlk önce ​Port Forwarding​ sekmesine girilir ardından ​Add 
butonuna tıklayarak yeni bir kural oluşturulur. Aşağıdaki kural ile internetteki 
herhangi bir ip adresinden, sahip olduğum herhangi bir ip adresinin tcp 22 
portuna gelen istekleri iç ağımdaki​ 192.168.100.50​ ip adresinin ​2222​ portuna 
yönlendirmiş oluyoruz. 
 
 
 
NOT : ​Ayarların aktif olması için​ Options > Reload Firewalld​ butonuna 
tıklayabilirsiniz veya ​firewall­cmd ­­reload​ komutunu kullanabilirsiniz. 
 
Grafik Arayüz Programı ile Varsayılan Zone 
Belirtmek 
Varsayılan olarak kullanılan herhangi bir zone ‘u başka bir zone ile 
değiştirmek isterseniz aşağıdaki adımları takip edebilirsiniz. Bunu hem komut 
satırından hemde aşağıdaki gibi grafik program ile yapabilirsiniz. 
 
Grafik arayüzde​ Options > Change Default Zone >​ bölümüne girdikten sonra 
aşağıdaki gibi istediğiniz bir zone seçerek onu varsayılan zone olarak 
kullanabilirsiniz. 
 
NOT : ​Aynı zamanda ​/etc/firewalld/firewalld.conf​ dosyasını açıp varsayılan 
zone alanını değiştirebilirsiniz. 
 
 
Ağ Arabirimlere Bağlı Zone ‘ları 
Görüntülemek/Değiştirmek 
Herhangi bir zone alanına eklediğiniz ağ arabirimini görüntülemek veya 
değiştirmek isterseniz ​Options > Change Zone of Connections >​ bölümüne 
girip gerekli ayarları yapabilirsiniz. 
 
 
 
 
 
 
 
 
Güncel Hayattan Pratik Örnekler 
 
1.​ IPv4 ve IPv6 bağlantırını ftp servisi için her 1 dakika için audit ile loglama 
yap. 
root#​ firewall­cmd ­­add­rich­rule='rule service name="ftp" ​audit​ limit 
value="1/m" accept' 
 
2.​ IPv4 bağlantıları kaynağı 192.168.0.0/24 adresinden gelen tftp servisi için 
syslog ile her 1 dakikada loglama yap. 
root#​ firewall­cmd ­­add­rich­rule='rule family="ipv4" source 
address="192.168.0.0/24" service name="tftp" ​log​ prefix="tftp" level="info" 
limit value="1/m" accept' 
 
3.​ Kaynağı 192.168.2.2 ip adresinin internete çıkarken geçen tüm 
bağlantılarına izin ver. 
root#​ ​firewall­cmd ­­add­rich­rule='rule family="ipv4" source 
address="192.168.2.2" accept' 
 
3. ​Kaynağı 192.168.2.3 ip adresinin tüm bağlantılarını engelle aynı zamanda 
geriye hata mesajı döndür. 
root# ​firewall­cmd ­­add­rich­rule='rule family="ipv4" source 
address="192.168.2.3" reject' 
 
 
5. ​Kaynağı 192.168.2.4 ip adresinin tüm bağlantılarını engelle. 
root#​ ​firewall­cmd ­­add­rich­rule='rule family="ipv4" source 
address="192.168.2.4" drop' 
 
FirewallD Log Mekanizması
Loglar sorun çözmede faydalandığımız ilk kaynaklardan biridir. Bir şeylerin 
ters gittiğini gördüğünüzde, yada anormallikleri gözlemlemek istediğinizde 
loglar hayat kurtarıcı olur. 
 
FirewallD varsayılan olarak firewall kuralları, yönlendirme kuralları için log 
tutmamaktadır. Fakat kendi kurallarınız için özel bir log dosyası 
oluşturabiliyorsunuz. Bu konuya yazının ilerleyen kısımlarında değineceğim. 
 
FirewallD hata ayıklama çıkışı varsayılan olarak ​/var/log/firewalld​ dosyasına 
yazılır. Aşağıdaki komutu kullanarak ​/var/log/firewalld ​log dosyasının son 
satırlarını görebilirsiniz. 
root# ​tail ­f /var/log/firewalld 
 
2015­08­24 12:09:45 DEBUG2: firewall.core.ipXtables.ip6tables: /sbin/ip6tables ­t 
mangle ­P FORWARD ACCEPT 
2015­08­24 12:09:45 DEBUG1: PanicModeDisabled() 
2015­08­24 12:09:49 DEBUG1: zone.getZones() 
2015­08­24 12:11:19 DEBUG1: config.getServiceByName('bacula') 
2015­08­24 12:11:2 DEBUG1: config.getZoneByName('public') 
FirewallD Log Seçenekleri 
 
FirewallD iki farklı log mekanizması bulunmaktadır. Bunlardan birisi ​auditd 
diğeri ise ​syslog​ mekanizmasıdır. Varsayılan olarak ​syslog​ mekanizması 
kullanılmaktadır. Fakat ​auditd​ ile loglama yapmak isterseniz bunu kuralda 
belirtmeniz gerekir. 
 
NOT : ​Firewalld loglama ​“s” saniye​, ​“m” dakika​,​ “h” saat​, ​“d” gün​ olmak 
üzere zaman zarfları bulunmaktadır. Bu zaman zarfları bir log dosyasının ne 
zamanda bir loglanacağını belirtir. 
 
FirewallD Log Kural Sözdizimi 
 
Firewalld log kural yazımının söz dizimi aşağıdaki gibidir. 
 
log [prefix="<prefix text>"]  [level="<log level>"]  [limit value="<rate/duration>"] 
 
 
   
Syslog
Aşağıdaki komutu kullanarak oluşturulacak firewall kuralı için o kurala ait özel 
bir log dosyası oluşturulabilir. Örneğin, aşağıdaki kuralda ​tftp​ bağlantısı için 
izin kuralı tanımlanmış ve her ​1 dakika​ için loglama yap ve logu​ tftp­log​ ismi 
ile oluştur denmiş. 
root# ​firewall­cmd ­­add­rich­rule='rule family="ipv4" source address="192.168.0.0/24" 
service name="tftp" ​log​ prefix="tftp" level="info" limit value="1/m" accept' 
 
 
Aşağıdaki kuralda ise ​192.168.100.50​ ip adresinin dışarıya ​22​ portunun 
erişimi engellenmiş ve her ​1 dakika​ için loglama yap ve logu ​ssh­log​ ismi ile 
oluştur denmiş. 
root#​ ​ ​firewall­cmd ­­add­rich­rule='rule family="ipv4" source address="192.168.100.50" 
service name="ssh" ​log​ prefix="ssh­log" level="info" limit value="1/m" drop’ 
 
 
Audit
Aşağıdaki kuralda ise ​ftp​ servisine izin verilmiş ve her ​1 dakika​ için ​auditd​ ile 
loglama yap denmiş. 
root# ​firewall­cmd ­­add­rich­rule='rule service name="ftp" ​audit​ limit value="1/m" 
accept' 
 
   
Aşağıdaki kuralda kaynağı ​192.168.2.4​ ip adresinin ​22 (ssh)​ port erişimini 
yasakla ve her ​1 dakika ​için ​auditd​ ile loglama yap ve logu​ ssh­log​ ismi ile 
oluştur denmiş. 
root#​ firewall­cmd ­­add­rich­rule='rule family="ipv4" source address="192.168.2.4" 
service name="ssh" ​audit​ prefix="ssh­log" level="info" limit value="1/m" drop’ 
FirewallD Hata Numaraları
Bazen log dosyalarını incelerken, karşımıza çıkan hataları kırmızı renkle çizili 
olarak görürüz. Bunun gibi bazen hataların yanında kodlar olur veya hatalar 
olmadan sadece kodları vardır. Örneğin ​( 403 Forbidden vb. ) ​hata kodları 
mevcuttur. Firewalld güvenlik duvarına ait hata mesajları ve karşısında hata 
numaraları aşağıdaki gibidir. 
 
Başlık                             Numara 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­             ­­­­­­­­­­­­­ 
ALREADY_ENABLED                 | 11 | 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­             ­­­­­­­­­­­­­ 
NOT_ENABLED                          | 12 | 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­             ­­­­­­­­­­­­­ 
COMMAND_FAILED                   | 13 | 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­             ­­­­­­­­­­­­­ 
NO_IPV6_NAT                            | 14 | 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­             ­­­­­­­­­­­­­ 
PANIC_MODE                            | 15 | 
 
NOT : ​Daha fazlası için ​man​ sayfasına bakınız. 
Centos 7 Desktop Kurulumu 
 
Centos 7 işletim sistemine desktop kurmak isterseniz aşağıdaki adımları takip 
edebilirsiniz. Firewalld güvenlik duvarını grafik arayüz programı ile yönetmek 
isterseniz desktop kurmalısınız aksi takdirde program açılmayacaktır. 
 
İlk önce aşağıdaki komutu kullanarak sistem depolarını güncelleyelim. 
root#​ yum ­y update 
 
Daha sonra aşağıdaki komutu kullanarak desktop için gerekli olan paketleri 
kuralım. Aşağıdaki komutu duğrudan ​copy/paste​ yapıp kullanabilirsiniz. 
root#​ yum groupinstall “GNOME Desktop” “Graphical Administration Tools” 
 
Sıra geldi otomatik olarak desktop ekranın açılmasını sağlamak. Aşağıdaki 
komutu kullanarak desktop ekranının otomatik olarak açılmasını 
sağlayabilirsiniz. Aksi takdirde aynı komut satırını göreceksiniz. 
root#​ ln ­sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target 
Sistem yeniden başlatıldıktan sonra aşağıdaki gibi Gnome Desktop masaüstü 
ekranı ile karşılaşacaksınız. 
 
Firewalld Parametreleri 
 
­­permament : ​Bu parametre bir şeyi kalıcı olarak ayarlamak için kullanılır. 
­­reload : ​Bu parametre değiştirilen ayarların hemen aktif olmasını sağlar. 
/usr/lib/firewalld/services : ​Bu dizin altında servisler bulunuyor. 
/usr/lib/firewalld/zones : ​Bu dizin içerisine bölgeler bulunuyor. 
/usr/lib/firewalld/icmptypes :​ Bu dizin içerisinde icmp türleri yer alıyor. 
/etc/firewalld/services : ​Bu dizin içerisine yeni servisler eklenebiliyor. 
firewall­cmd : ​Bu araç firewalld güvenlik duvarı komut istemcisi olarak 
kullanılıyor. 
/etc/firewalld/firewalld.conf : ​Bu dosya bölgelerin bilgilerini barındırır ve 
varsayılan hangi zone kullanılıyor onu gösterir. 
firewall­cmd ­­get­zones : ​Zone’ları listeler ve hakkında bilgi verir. 
firewall­cmd ­­get­services : ​Önceden tanımlanmış servisleri listeler. 
firewall­cmd ­­get­icmptype : ​Önceden tanımlanmış icmp türlerini listeler. 
firewall­cmd ­­get­default­zone : ​Varsayılan olarak kullanılan zone’u 
gösterir. 
firewall­cmd ­­get­default­zone=test : ​Test adlı zone’u varsayılan zone 
olarak ayarlar. 
firewall­cmd ­­get­active­zones : ​Aktif kullanılan bölgeleri listeler. 
firewall­cmd ­­get­zone­of­interface=eth0 :​ Hangi bölgenin eth0 ağ arabirimi 
ile ilişkili olduğunu gösterir. 
firewall­cmd ­­list­all­zones : ​Tüm bölgeleri listeler ve onlar hakkında birçok 
bilgi verir. 
 
 
   
FirewallD Konfigurasyon Yedekleme İşlemleri 
 
Firewall’larımızın kuralları hayati öneme sahiptir, çeşitli felaket senaryolarında 
geri dönmek, farklılıkları gözlemlemek için yedek almamız ciddi önem 
taşımaktadır. 
 
Yedek Alma 
Aşağıdaki komut ile genel geçerli olan FirewallD kurallarını yedekleyebilirsiniz. 
Daha sonra ​cat​ komutu ile içerisindeki kuralları inceleyebilirsiniz. 
root#​ iptables­save > firewalld_rules_ipv4 
 
root#​ iptables­save > firewalld_rules_ipv6 
 
Düzenli Full Konfigurasyon Yedekleme 
Bir shell script oluşturup daha sonra o script dosyasına her gün belirli saatler 
ile yedekleme yapmasını söylebiliriz. Aşağıdaki örnek script dosyasının 
içerisinde ​tar​ ile ​/etc/firewalld​, ​/var/log/firewalld​, dizinlerini bugünün tarihi ile 
/home​ dizini altına yedekle demiş oluyoruz. Bunu yapmak için ilk önce içi boş 
bir dosya oluşturulur daha sonra dosyanın içerisine  ​nano​, ​ee​, ​vim​, ​vi​ gibi 
araçlar kullanılarak girilir ve dosyanın içerisine aşağıdaki kod eklenir arından 
CTRL+O​ kombinasyonuna basarak kaydedilir ve ​CTRL+X​ kombinasyonuna 
basarak çıkılır. 
root#​ touch script_dosyam 
 
root# ​nano script_dosyam 
 
#!/bin/bash 
NOW=$(date +"%m­%d­%Y") 
FILE="firewalld_backup.$NOW.tar.gz" 
echo "Biraz bekleyin dosyalar sıkıştırılıyor… :)" 
# rest of script 
tar cvf /home/firewalld_backup.$NOW.tar.gz /etc/firewalld /var/log/firewalld 
 
 
root#​ bash script_dosyam 
 
Biraz bekleyin dosyalar sıkıştırılıyor… :) 
tar: Removing leading `/' from member names 
/etc/firewalld/ 
/etc/firewalld/firewalld.conf 
/etc/firewalld/icmptypes/ 
/etc/firewalld/lockdown­whitelist.xml 
/etc/firewalld/services/ 
/etc/firewalld/zones/ 
/etc/firewalld/zones/public.xml 
/etc/firewalld/zones/test.xml.old 
/etc/firewalld/zones/public.xml.old 
/etc/firewalld/zones/work.xml 
/etc/firewalld/zones/work.xml.old 
/etc/firewalld/direct.xml 
/etc/firewalld/direct.xml.old 
/var/log/firewalld 
 
Crontab ‘a Kural Girdisi Eklemek 
 
Yapmış olduğumuz bu bash script dosyasını her zaman gidip elle çalıştırmak 
istemeyiz. Bunun için crontab’a görev tanımlayıp bizim yapacağımız işi ona 
devredebiliriz. Bunu yapmak için ilk önce crontab içerisine girilir ardından 
aşağıdaki gibi crontab girdisi eklenir. 
 
NOT : ​Crontab girdisini ​dakika​, ​saat​,​ ayın günleri​, ​ay​, ​hafta günlerini 
istediğiniz gibi ayarlayabilirsiniz. 
 
Aşağıdaki örnekte her gün her hafta her ay öğlen saat 12 ‘de ​/bin/bash 
/root/script_dosyam​ adlı komutu çalıştır. Daha sonra dosya kaydedilip çıkılır. 
root#​ cronteb ­e 
 
* 12 *  *  * /bin/bash /root/script_dosyam 
 
Yedekten Geri Dönme 
FirewallD kurallarını yedeklediğimiz dosyanın adını aşağıdaki gibi belirterek 
yedekten geri dönebiliriz. 
root#​ iptables­restore < firewalld_rules_ipv4 
   
root#​ iptables­restore < firewalld_rules_ipv6 
 
NOT : ​Güncel sürümlerin ​slideshare.net/ibrahimucar39545464​ adresinden 
aynı zamanda​ lifeoverlinux.com​ sitesinden ulaşabilirsiniz. 

More Related Content

Featured

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Red-Hat 7 Yeni Güvenlik Duvarı : firewalld