Bu doküman da, Debian 10 (Buster) üzerinde Firewalld’ı nasıl yükleyeceğiniz ve yapılandırılabildiğimize bakacağız. Firewalld IPv4, IPv6, Ethernet köprüleri ve ipset güvenlik duvarı ayarları desteği ile Linux güvenlik duvarı yönetim aracıdır.Firewalld, Linux çekirdeğinin netfilter çerçevesinin ön uç görevi görür.Bu Linux dağıtımları RHEL 7 ailesi için varsayılan bir güvenlik duvarı yönetim yazılımı dır ama Linux dağıtımları Debian ailesinde de kullanılabilir.
Debian 10 ‘a Güvenlik Duvarı Yükleme
Güvenlik duvarı paketi resmi Debian 10 apt depolarında mevcuttur.Yükleme, terminaldeki komutların altında, sudo ayrıcalıklarına sahip kök kullanıcı kadar hızlıdır.
sudo apt update
sudo apt -y install firewalld
Bu komutlar, Debian 10’a güvenlik duvarı yükler ve hizmeti ön yüklemeden başlatacak şekilde ayarlar.Paket ayrıntılarını aşağıdaki şekilde görebilir siniz.
$ apt policy firewalld
firewalld:
Installed: 0.6.3-5
Candidate: 0.6.3-5
Version table:
*** 0.6.3-5 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
Servisin çalışma durumunda olduğunu doğrulayın
$ sudo firewall-cmd --state
running
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset
Active: active (running) since Sun 2019-07-07 06:35:14 EDT; 1min 33s ago
Docs: man:firewalld(1)
Main PID: 7955 (firewalld)
Tasks: 2 (limit: 2319)
Memory: 24.5M
CGroup: /system.slice/firewalld.service
└─7955 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid
Ufw servisi etkinleştirilmiş ise varsıyalan güvenlik duvarının firewalld olması için ufw devre dışı bırakmanız gerekmektedir.
sudo ufw disable
Debian 10’da Firewalld kullanma
Firewall paketlerimiz yüklendi ve servisimiz çalışır duruma geldi. Artık nasıl kurallar ekleyeceğimize dair bir kaç örnek yapabiliriz.
1 – Yapılandırılan tüm güvenlik duvarı kurallarını listeleme
$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
güvenlik duvarılı hizmeti başlattığınızda ssh
ve dhcpv6-client
hizmetlerine varsayılan olarak izin verilir.
2 – Enabled/disabled servisler listele
Aktif veya pasif hizmetlerin tam listesine ulaşmak için aşağıdaki komutu kullanabilir siniz.
sudo firewall-cmd --get-services
3 – Servise izin verme / Servis listeleri
Güvenlik duvarında bir servise izin vermek için komut aşağıdaki gibidir.
$ sudo firewall-cmd --add-service="service adı" --permanent
Aşağıdaki örnekte http servisi etkinleştirecektir.
$ sudo firewall-cmd --add-service="http" --permanent
success
$ sudo firewall-cmd --reload
Tek komutta birden fazla servis eklemek içini servisleri virgül ile ayırarak yazmanız gerekmektedir.
$ sudo firewall-cmd --add-service={http,https,smtp,imap} --permanent --zone=public
$ sudo firewall-cmd --reload
4 – TCP bağlantı noktasını aktif etme
TCP bağlantı noktasını etkinleştirmek için gerekli kural aşağıdaki gibi olması gerekmektedir.
$ sudo firewall-cmd --add-port=port/tcp --permanent
$ sudo firewall-cmd --reload
8080 ve 8443 portlarına izin vermek için aşağıdaki gibi bir kural yazmamız gerekir.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port={8080,8443}/tcp --permanent
sudo firewall-cmd --reload
5 – Yeni zone ekleme
Yeni firewall zone oluşturmak için aşağıdaki komutu kullanabiliriz.
$ sudo firewall-cmd --new-zone=zonename --permanent
E.g
$ sudo firewall-cmd --new-zone=private --permanent
$ sudo firewall-cmd --reload
6 – Zone’da specific servis/port aktif etme
Her hangi bir zone’da servisleri aktif etmek için
sudo firewall-cmd --zone=<zone> --add-port=<port>/tcp --permanent
sudo firewall-cmd --zone=<zone> --add-port=<port>/udp --permanent
sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall-cmd --zone=<zone> --add-service={service1,service2,service3} --permanent
7 – interface’e zone ekleme
Birden fazla bağlantısı olan sunucular için her interface için farklı zone ekleyebilir siniz.
sudo firewall-cmd --get-zone-of-interface=eth1 --permanent
sudo firewall-cmd --zone=<zone> --add-interface=eth1 --permanent
8 – Belirli IP’den gelen isteklere izin verme
$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="192.168.0.12/32" accept' --permanent
$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="10.1.1.0/24" accept' --permanent
9 – Kuralları listele
sudo firewall-cmd --list-rich-rules
10 – Port yönlendirme
# Enable masquerading
$ sudo firewall-cmd --add-masquerade --permanent
# Port forward to a different port within same server ( 22 > 2022)
$ sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toport=2022 --permanent
# Port forward to same port on a different server (local:22 > 192.168.2.10:22)
$ sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10 --permanent
# Port forward to different port on a different server (local:7071 > 10.50.142.37:9071)
$ sudo firewall-cmd --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37 --permanent
11 – Bir portun veya servisin kaldırılması
Bir portu veya servisi güvenlik duvarından kaldırmak için, --add
komutunu –-remove
komutu ile değiştirerek yazmanız gerekmektedir.
sudo firewall-cmd --zone=<zone> –-remove-port=<port>/tcp --permanent