Red Hat 7 Yeni Güvenlik Duvarı : firewalld

Ö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ınlanmıştır. Güncel sürümlerine slideshare.net/ibrahimucar39545464 adresinden ulaşabilir aynı zamanda bu site üzerinden takip edebilirsiniz.

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

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önetilebilir kılar.

IPv4 ve IPv6 konfigürasyon desteği sağlamaktadır. FirewallD, Bridge Ethernet kartlarını destekler ve kalıcı konfigürasyon seçenekleri vardır. Servisler ve uygulamaların doğrudan firewall kuralı eklemesi için bir arabirim sunmaktadır.

 

FirewallD ve Iptables Karşılaştırmaları

Iptables ve FirewallD için gerekli başlıca farklılıklar şu şekildedir.

  • Iptables servisi konfigürasyon dosyasını /etc/sysconfig/iptables dizini altında saklanmaktadır, buna istinaden firewalld bir çok konfigürasyon 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ız 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ırı yapıştırınız.

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 komut kullanarak ayarlar etkinleştirilir.

root# sysctl -p /etc/sysctl.conf

NOT : Bir ayarın kalıcı olarak ayarlanmasını istiyorsanız –permanent 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ı ve 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
interfaces: eth1
sources: 192.168.100.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

root# firewall-cmd --get-default-zone

home

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 eth0 ağ arabirimini internal zone’a 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 internet 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

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 internet zone ile ilişkili olduğunu görmekteyiz.

root# firewall-cmd --get-zone-of-interface=eth0

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. Özel bir zone yapılandırmasını görmek isterseniz zone ismini –zone=zone_ismi parametresini kullanabilirsiniz.

root# firewall-cmd --list-all

public (default, active)
 interfaces: eth0
 sources: 10.0.0.254/24
 services: dhcpv6-client ssh https http ftp
 ports:
 masquerade: yes
 forward-ports: 
 icmp-blocks: 
 rich rules:

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şturulmuş 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 onlar 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: 
 masquerade: no
 forward-ports: 
 icmp-blocks: 
 rich rules: 
 
internal (active)
 interfaces: eth1
 sources: 
 services: dhcpv6-client ipp-client mdns samba-client ssh
 ports: 
 masquerade: no
 forward-ports: 
 icmp-blocks: 
 rich rules: 
 
public (default, active)
 interfaces: eth0
 sources: 10.0.0.254/24
 services: dhcpv6-client ssh https http ftp
 ports: 
 masquerade: yes
 forward-ports: 
 icmp-blocks: 
 rich rules: 
 
work
 interfaces: eth2
 sources: 
 services: dhcpv6-client ipp-client ssh
 ports: 22/tcp
 masquerade: yes
 forward-ports: port=22:proto=tcp:toport=2222:toaddr=10.0.0.200
 icmp-blocks: 
 rich rules: 
 rule family="ipv4" port port="22" protocol="tcp" accept

 

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

test
 interfaces: eth3
 sources: 192.168.100.0/24
 services: 
 ports: 
 masquerade: no
 forward-ports: 
 icmp-blocks: 
 rich rules:

Bir zone içerisindeki kaynağı silmek istersek aşağıdaki komutu kullanabiliriz. Ö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

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

eth3

Bir zone’a ağ arabirimi eklemek isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, eth0 adlı ağ arabirimini test adlı zone’a eklemek için aşağıdaki birinci komut kullanılabilir. Kalıcı olarak eklemek 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 isterseniz aşağıdaki komutu kullanabilirsiniz. Ö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 kullanmanız yeterli olacaktır. Eğer kalıcı olarak ayarlamak istemezsek –permanent parametresini kaldırabilirsiniz.

root# firewall-cmd --permanent --zone=test --change-source=172.16.16.0/16

success

Bir zone alanına ait port numaralarını listelemek istersek aşağıdaki komutu kullanabilirsiniz.

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 belirtilemezse, varsayılan zone kullanılır.

root# firewall-cmd --zone=test --list-sources

172.16.16.0/16

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 istersek aşağıdaki komutu kullanabiliriz. Daha sonra yaptığımız değişikliğin hemen aktif olmasını istersek ikinci komutu kullanabiliriz. Bu seçenek birden çok kez kullanılabilir. 

root# firewall-cmd --permanent --zone=test --add-service=http

success

root# firewall-cmd --reload

success

root# firewall-cmd --zone=test --list-all

test
interfaces: eth3
sources: 172.16.16.0/24
services: dhcpv6-client ipp-client mdns samba-client ssh https 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 ipp-client https http 

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 ipp-client mdns samba-client ssh https http

Bir zone’a 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 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

Bir zone’a tanımlanmış icmp türlerini görüntülemek istersek aşağıdaki komutu kullanabiliriz.

root# firewall-cmd --zone=test --list-icmp-blocks

Varsayılan olarak kullandığımız zone alanına yeni bir servis eklemek istersek aşağıdaki komutu kullanabiliriz. Kalıcı olarak eklemek için –permanent parametresini ekleyebiliriz.

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 servisin halen çalışıp/çalışmadığını 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 olarak kullandığınız zone’a yeni bir icmp türünü eklemek isterseniz aşağıdaki komutu kullanabilirsiniz. Aşağıda –permanent parametresini kullanarak kuralın kalıcı olmasını sağladık.

root# firewall-cmd --permanent --add-icmp-block=destination-unreachable

success

root# firewall-cmd --reload

success

root# firewall-cmd --list-all

public (default, active)
 interfaces: eth0
 sources: 
 services: dhcpv6-client ssh http https ftp
 ports: 
 masquerade: yes
 forward-ports: 
 icmp-blocks: destination-unreachable 
 rich rules:

Örneğin, varsayılan zone’a eklemiş olduğumuz destination-unreachable imcp türünü silmek istersek aşağıdaki komutu kullanabiliriz. Aşağıda –permanent parametresini kullanarak kuralın kalıcı olmasını sağladık.

root# firewall-cmd --permanent --remove-icmp-block=destination-unreachable

success

 

Güvenlik Duvarı Servis Konfigürasyonu

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çerisinde 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 portunu eklemek isterseniz aşağıdaki komutu kullanabilirsiniz. Örneğin, test adlı zone’a 443/tcp portunu ekleyelim. 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: eth3
sources: 192.168.100.0/24
services: dhcpv6-client http ipp-client mdns samba-client ssh https
ports: 22/tcp 443/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

Bir zone alanına eklediğiniz port numarasını silmek isterseniz aşağıdaki komutu kullanabilirsiniz. Eğer herhangi bir zone belirtilmez ise, 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: eth3
sources: 192.168.100.0/24
services: dhcpv6-client http ipp-client mdns samba-client ssh https
ports: 22/tcp 443/tcp
masquerade: no
forward-ports: port=22:proto=tcp:toport=3758:toaddr=
icmp-blocks: destination-unreachable
rich rules:

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:toaddr=192.168.100.50

success

Belirtilen zone için kaynağı herhangi biri olan 80 portuna gelen tüm istekleri 192.168.100.50 ip adresinin 9999 portuna yönlendir.

root# firewall-cmd --permanent --zone=test --add-forward-port=port=80:proto=tcp:toport=9999:toaddr=192.168.100.50

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 kullandığımız komutların içerisinde bulunan toaddr= parametresini kullanarak içerideki istediğimiz bir ip adresine port yönlendirme yapabiliriz. Belirtilen zone için 21 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=21:proto=udp:toport=3450:toadddr=192.168.100.100

Bir zone alanına eklediğiniz port yönlendirmeyi silmek isterseniz aşağıdaki komutu kullanabilirsiniz. Silmek istediğimiz yönlendirme kurallarını görüntülemek istersek aşağıdaki birinci komutu kullanabiliriz, daha sonra silmek istediğimiz kuralı ikinci komutu kullanarak silebiliriz. Benim silmek istediğim kurallar test adlı zone içerisinde yer almaktadır.

root# firewall-cmd --zone=test --list-all

test
interfaces: eth3
sources: 192.168.100.0/24
services: dhcpv6-client http ipp-client mdns samba-client ssh https
ports: 22/tcp 443/tcp
masquerade: no
forward-ports: port=80:proto=tcp:toport=9999:toaddr=192.168.100.50
 port=22:proto=tcp:toport=3758:toaddr=192.168.100.50
icmp-blocks: destination-unreachable
rich rules:

root# firewall-cmd --permanent --zone=test --remove-forward-port=port=80:proto=tcp:toport=9999:toaddr=192.168.100.50

success

root# firewall-cmd --reload ; firewall-cmd --zone=test --list-all

success

test
interfaces: eth3
sources: 192.168.100.0/24
services: dhcpv6-client http ipp-client mdns samba-client ssh https
ports: 22/tcp 443/tcp
masquerade: no
forward-ports: port=22:proto=tcp:toport=3758:toaddr=192.168.100.50
icmp-blocks: destination-unreachable
rich rules:

 

Güvenlik Duvarı Kural Yönetimi

FirewallD ile kural yazımı örnekleri –direct ve –rich-rule parametrelerini kullanarak anlatacağım.

–direct : Kullanı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 girilmiş. Bu örnekte ise kaynağı herhangi bir ip adresinden gelen ve kaynağı herhangi bir ip adresine giden 22. (ssh) portuna erişime izin verilmiş. 

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 ve kaynağı herhangi bir ip adresine giden 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 direct kurallarını görüntülemek istersek aşağıdaki komutu 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 direct kuralını silmek istersek aşağıdaki gibi bir komut kullanabiliriz. Varsayılan zone için uygulanacaktır.

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. Burdaki kural ‘da 192.168.0.0/24 network içerisinde bilgisayarlar 80 portuna erişebilecekler.

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 komut kullanılabilir.

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ş. Burada –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 komutu kullanabiliriz. Bu kuralı özel bir zone için eklemek istersek –zone=zone_ismi parametresini kullanabiliriz. Bu kuralı test adlı zone için uygulayalım.

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 bir 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

Dikkat ettiyseniz yukarıdaki kurallarda hep 22 vb.. port numaraları veya ssh gibi kelimeler kullanılmış. Siz bunu isterseniz ssh veya karşılığı olan 22 port numarasını yazın iki seçenek aynı anlama 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

Eklemiş olduğumuz kuralları listelemek istersek aşağıdaki komutu kullanabiliriz. Dikkat ettiyseniz tüm kuralları test adlı zone için yazmıştık ve aşağıdaki komut ise belirttiğimiz zone içerisindeki kuralları gösterir.

root# firewall-cmd --zone=test --list-all

test
interfaces: eth3
sources: 192.168.100.0/24
services: dhcpv6-client http ipp-client mdns samba-client ssh https
ports: 22/tcp 443/tcp
masquerade: no
forward-ports: port=22:proto=tcp:toport=3758:toaddr=192.168.100.50
icmp-blocks: destination-unreachable
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" dropt'

Peki eklediğimiz bir kuralı nasıl silebiliriz. Aşağıdaki komutu kullanarak test adlı zone için yazmış olduğumuz kuralı silebiliriz.

root# firewall-cmd --permanent --zone=test --remove-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'

success

 

Grafik Arabirim (GUI) ile Güvenlik Duvarı Yönetimi

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önetebilmenizi 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) kurulu olması gerekiyor. Grafik arayüz (desktop) kurulumunu yazının ilerleyen kısımlarında anlatacağım.

Varsayılan olarak Centos 7 ve üzeri sistemlerde artık kurulu gelecektir fakat alt sürümlerinde olmayabilir. Bu durumda aşağıdaki komutu kullanarak grafik yönetim aracını sisteminize kurabilirsiniz.

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ı çalıştırabilir ve firewalld güvenlik duvarını bu araç yardımıyla yönetebilirsiniz.

root# firewall-config

Screen Shot 2015-09-10 at 13.50.55

 

Ö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ında ve 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 yeni bir tane firewall kuralı oluşturuyoruz.

Screen Shot 2015-09-10 at 13.55.59

ardından yapacağınız işleme göre seçenekleri belirlemeniz gerekir. Benim örneğimde 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şikleri kaydediyoruz.

Screen Shot 2015-09-10 at 13.59.05

NOT : Configuration = Permanent seçilerek yapılacak ayarların kalıcı olarak ayarlanmasını sağlayabilirsiniz. Aksi takdirde sistem yeniden başlatılana kadar sürecektir.

NOT : Ayarların aktif olması için Options > Reload Firewalld butonuna tıklayabilirsiniz. Aynı zamanda firewall-cmd –reload komutunu kullanabilirsiniz.

 

Grafik Arayüz Programı ile Port Yönlendirmek

Bu örneğimde ise grafik arayüz programı ile port yönlendirme yer alıyor. İlk önce Port Forwarding sekmesine girilir ardından Add butonuna tıklayarak yeni bir kural oluşturulur. Aşağıdaki kural ise 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. 

Screen Shot 2015-09-10 at 14.00.52

NOT : Ayarların aktif olması için Options > Reload Firewalld butonuna tıklayabilir aynı zamanda firewall-cmd –reload komutunu kullanabilirsiniz.

 

Grafik Arayüz Programı ile Varsayılan Zone Belirtmek

Varsayılan olarak kullanılan herhangi bir zone’u bir başka 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 arayüz 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.

Screen Shot 2015-09-10 at 14.03.51

 

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.

Screen Shot 2015-09-10 at 14.05.46

 

Güncel Hayattan Pratik Örnekler

1. IPv4 ve IPv6 bağlantıları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 ftp servisi için syslog ile her 1 dakika 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'

4. 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üğümü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ı anlık olarak izleyebilirsiniz.

root# tail -f /var/log/firewalld

2015-08-24 12:09:45 DEBUG2: firewall.core.ipXtables.ip6tables: /sbin/ip6tables -t mangle -P FORWARD ACCEPT2015-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:19 DEBUG1: config.service.2.getSettings()

2015-08-24 12:11:19 DEBUG1: config.service.2.Get('org.fedoraproject.FirewallD1.config.service', 'default')

2015-08-24 12:11:19 DEBUG1: config.service.2.Get('org.fedoraproject.FirewallD1.config.service', 'builtin')

2015-08-24 12:11:25 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'

 

Auditd

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 hata kodları vardır. Örneğin (403 Forbbiden gibi gibi) hata kodları vardır. Firewalld güvenlik duvarına ait hata mesajları ve karşısındaki 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 |

——————————             ————-

ZONE_ALREADY_SET              | 16 |

——————————             ————-

UNKNOWN_INTERFACE          | 17 |

….

NOT : Daha fazlası içi 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 doğ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.

Screen Shot 2015-09-14 at 11.23.47

 

 

 

 

 

 

 

FirewallD Parametreleri

–reload : Bu parametre değiştirilen ayarların hemen aktif olmasını sağlar.

–permanent : Bu parametre ise bir kuralı kalıcı olarak ayarlanmasını sağlar.

/usr/lib/firewalld/services : Bu dizin altında firewalld servisleri bulunuyor.

/usr/lib/firewalld/zones : Bu dizin içerisinde zone’lar bulunmaktadır.

/usr/lib/firewalld/icmptypes : Bu dizin içerisinde icmp türleri yer almaktadır.

/etc/firewalld/services : Bu dizin içerisine yeni servisler eklenebilir.

/etc/firewalld/firewalld.conf : Bu dosya zone’ların bilgilerini barındırır ve varsayılan hangi zone kullanılıyor onu gösterir.

firewall-cmd –get-zones : Tüm kullanılabilir zone’ları listeler.

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 olarak ayarlar. Yani varsayılan zone yapar.

firewall-cmd –get-active-zones : Aktif kullanılan zone’ları listeler.

firewall-cmd –get-zone-of-interface=eth0 : Hangi zone alanının eth0 ağ arabirimi ile ilişkili olduğunu gösterir.

firewall-cmd –list-all-zones : Tüm zone’ları listeler ve onlar hakkında birçok bilgi verir.

firewall-cmd –panic-on : Acil durumlarda tüm ağ trafiğini engeller. Aynı zamanda kapatmak için ise firewall-cmd –panic-off  komutunu kullanabilirsiniz.

firewall-cmd –state : Güvenlik duvarının durumunu kontrol etmenizi sağlar.

firewall-cmd –zone=test –list-interfaces : Bir zone’a bağlı ağ arabirimlerini listeler.

 

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öyleyebiliriz. 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 ardından CTRL+O kombinasyonuna bastıktan sonra enter tuşuna basarak kaydedilir ardından CTRL+X kombinasyonuna basarak dosyadan çıkılır.

root# touch script_dosyam
root# nano script_dosyam

#!bin/bash
W=$(date +"%m-%d-%Y")
FILE="backup.$NOW.tar.gz"
echo "Bekleyiniz ! Dosyalar sıkıştırılıyor..."
# rest of script
tar cvf /root/backup.$NOW.tar.gz /etc/firewalld /var/log/firewalld

daha sonra aşağıdaki komut kullanılarak script dosyası test edilir.

root# bash script_dosyam

Bekleyiniz ! Dosyalar sıkıştırılıyor...

/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ırıp yedek almayı 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 denmiş. Ayarlar yapıldıktan sonra ayarlar kaydedilerek çıkılır.

root# crontab -e

* 12 * * * /bin/bash /root/script_dosyam

 

Yedekten Geri Dönme

FirewallD kurallarını yedeklediğiniz dosyanın adını aşağıdaki gibi belirterek yedekten geri dönebilirsiniz.

root# iptables-restore < firewalld_rules_ipv4

root# iptables-restore < firewalld_rules_ipv6

Daha fazla bilgi için man sayfasına bakabilirsiniz. 

Tagged with: , , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Archives

Tweets

Follow @ucribrahim on twitter.