Firewalld (güvenlik duvarı), bir sistemin güvenlik duvarını ağ (veya güvenlik duvarı) trafiğini destekleyerek dinamik olarak yönetmek için iptables hizmetine bir alternatiftir ve yapılandırmaları yönetmek için bir D-Bus arayüzü sağlar. Kullanımı ve yapılandırması kolaydır ve artık RHEL / CentOS, Fedora ve diğer birçok Linux dağıtımında varsayılan güvenlik duvarı yönetim aracıdır.
Firewalld Hakkında Temel Bilgiler
Güvenlik duvarı üç katmandan oluşur, bunlar:
- Core Layer: yapılandırma ve arka uçların işlenmesinden sorumludur (aşağıda listelenmiştir).
- D-Bus Interface: güvenlik duvarı yapılandırmasını değiştirmenin ve oluşturmanın birincil yolu.
- Backends: netfilter (güvenlik duvarı için kullanılan yerel çekirdek modülü) ile etkileşim için. İptables, ip6tables, ebtables, ipset, nft, linnftables; ağ yöneticisi; ve modüller.
Ağ bağlantılarının veya arabirimlerinin güven düzeyini tanımlayan ağ / güvenlik duvarı bölgelerini uygulayarak güvenlik duvarı kurallarını yönetir. Desteklenen diğer güvenlik duvarı özellikleri arasında hizmetler, doğrudan yapılandırma (ham iptables sözdizimini doğrudan iletmek için kullanılır), IPSet’ler ve ICMP türleri bulunur.
Firewalld tarafından iki tür yapılandırma ortamı desteklenir:
- Yalnızca makine yeniden başlatılıncaya veya güvenlik duvarı hizmeti yeniden başlatılıncaya kadar etkili olan çalışma zamanı yapılandırması
- kaydedilen ve ısrarla çalışan kalıcı konfigürasyon.
Güvenlik duvarı-cmd komut satırı aracı, çalışma zamanını ve kalıcı yapılandırmayı yönetmek için kullanılır. Alternatif olarak, arka plan programı ile etkileşim kurmak için güvenlik duvarı-yapılandırma grafik kullanıcı arabirimi (GUI) yapılandırma aracını kullanabilirsiniz.
Ek olarak, firewalld, diğer yerel hizmetler veya uygulamalar için, kök ayrıcalıklarıyla çalışıyorlarsa, güvenlik duvarı kurallarında doğrudan değişiklik talep etmeleri için iyi tanımlanmış bir arayüz sunar.
Firewalld için genel yapılandırma dosyası /etc/firewalld/firewalld.conf adresinde bulunur ve güvenlik duvarı özellikleri XML biçiminde yapılandırılır.
Önemli Güvenlik Duvarı Özelliklerini Anlama
Güvenlik duvarının temel özelliği ağ / güvenlik duvarı bölgeleridir. Diğer her özellik bir bölgeye sınırlıdır. Güvenlik duvarı bölgesi, bir bağlantı, arayüz veya kaynak adresi bağlama için güven düzeyini tanımlar.
Varsayılan yapılandırma, güvenilmeyenden güvenilene kadar bölgelerin varsayılan güven düzeyine göre sıralanmış bir dizi önceden tanımlanmış bölgeyle birlikte gelir: bırakma, engelleme, genel, harici, dmz, iş, ev, dahili ve güvenilir. / Usr / lib / firewalld / zones dizini altında saklanan dosyalarda tanımlanırlar.
CLI istemcisini kullanarak özel bölgelerinizi yapılandırabilir veya ekleyebilir veya mevcut dosyalardan / etc / firewalld / zones içinde bir bölge dosyası oluşturabilir veya kopyalayabilir ve düzenleyebilirsiniz.
Güvenlik duvarı altında bir diğer önemli kavram hizmetlerdir. Bir hizmet, bağlantı noktaları ve protokoller kullanılarak tanımlanır; bu tanımlar, bir web sunucusu veya uzaktan erişim hizmeti gibi belirli bir ağ hizmetini temsil eder. Hizmetler, / usr / lib / firewalld / services / veya / etc / firewalld / services / dizini altında depolanan dosyalarda tanımlanır.
Temel iptables / ip6tables / ebtables kavramlarını biliyorsanız, güvenlik duvarına doğrudan erişim sağlamak için doğrudan arabirimi (veya yapılandırmayı) da kullanabilirsiniz. Ancak, herhangi bir iptables bilgisi olmayanlar için, IPv4 ve IPv6 için daha karmaşık güvenlik duvarı kuralları oluşturmak için zengin dili kullanabilirsiniz.
Linux’ta Firewalld Paketi Nasıl Kurulur
CentOS 7’de, firewalld paketi önceden yüklenmiş olarak gelir ve aşağıdaki komutu kullanarak doğrulayabilirsiniz.
rpm -qa firewalld
Ubuntu 16.04 ve 18.04’te, gösterildiği gibi varsayılan paket yöneticisini kullanarak kurabilirsiniz.
sudo apt install firewalld
Linux’ta Firewalld Servisi Nasıl Yönetilir
Firewalld, systemctl komutu ile yönetilebilen normal bir systemd hizmetidir.
sudo systemctl start firewalld #start the service for the mean time sudo systemctl enable firewalld #enable the service to auto-start at boot time sudo systemctl status firewalld #view service status
Firewalld hizmetini başlattıktan sonra, firewall-cmd aracını kullanarak daemon’un çalışıp çalışmadığını kontrol edebilirsiniz (aktif değilse, bu komut “çalışmıyor” sonucunu verecektir).
sudo firewall-cmd --state
Herhangi bir değişikliği kalıcı olarak kaydederseniz, güvenlik duvarını yeniden başlatabiliriz. Bu, güvenlik duvarı kurallarını yeniden yükleyecek ve durum bilgilerini saklayacaktır. Mevcut kalıcı konfigürasyon, yeni çalışma zamanı konfigürasyonu olacaktır.
sudo firewall-cmd --reload
Firewalld'de Güvenlik Duvarı Bölgeleri ile Nasıl Çalışılır
Mevcut tüm güvenlik duvarı bölgelerinin ve hizmetlerinin bir listesini almak için bu komutları çalıştırın.
sudo firewall-cmd --get-zones sudo firewall-cmd --get-services
Default zone, açıkça başka bir bölgeye sınırlandırılmamış her güvenlik duvarı özelliği için kullanılan bölgedir. Ağ bağlantıları ve arayüzler için varsayılan bölge setini çalıştırarak elde edebilirsiniz.
sudo firewall-cmd --get-default-zone
default zone, örneğin harici olarak ayarlamak için aşağıdaki komutu kullanın. –Permanent seçeneğinin eklenmesinin yapılandırmayı kalıcı olarak ayarladığını (veya kalıcı yapılandırma ortamından bilgilerin sorgulanmasını sağladığını) unutmayın.
sudo firewall-cmd --set-default-zone=external ya da sudo firewall-cmd --set-default-zone=external --permanent sudo firewall-cmd --reload
Şimdi, bir bölgeye nasıl arayüz ekleneceğine bakalım. Bu örnek, kablosuz ağ bağdaştırıcınızı (wlp1s0) home zone kullanılan home zone nasıl ekleyeceğinizi gösterir.
sudo firewall-cmd --zone=home --add-interface=wlp1s0
Bir arayüz yalnızca tek bir bölgeye eklenebilir. Onu başka bir bölgeye taşımak için, –change-interface anahtarını gösterildiği gibi kullanın veya –remove-interface anahtarını kullanarak önceki bölgeden kaldırın, ardından onu yeni bölgeye ekleyin.
Genel bir WI-FI ağına bağlanmak istediğinizi varsayarak, kablosuz arayüzünüzü aşağıdaki gibi genel bölgeye geri taşımalısınız:
sudo firewall-cmd --zone=public --add-interface=wlp1s0 sudo firewall-cmd --zone=public --change-interface=wlp1s0
Aynı anda birçok bölgeyi kullanabilirsiniz. Arayüzler, hizmetler, bağlantı noktaları, protokoller gibi etkinleştirilmiş özelliklere sahip tüm aktif bölgelerin bir listesini almak için şunu çalıştırın:
sudo firewall-cmd --get-active-zones
Önceki nokta ile ilgili olarak, Belirli bir bölge hakkında, yani içine eklenen veya etkinleştirilen her şey hakkında daha fazla bilgi edinmek istiyorsanız, şu komutlardan birini kullanın:
$ sudo firewall-cmd --zone=home --list-all ya da $ sudo firewall-cmd --info-zone public
Diğer bir kullanışlı seçenek de, size kalıcı bir bölgenin hedefini gösteren –get-target’tır. Hedef şunlardan biridir: varsayılan, ACCEOT, DROP, REJECT. Çeşitli bölgelerin hedefini kontrol edebilirsiniz:
sudo firewall-cmd --permanent --zone=public --get-target sudo firewall-cmd --permanent --zone=block --get-target sudo firewall-cmd --permanent --zone=dmz --get-target sudo firewall-cmd --permanent --zone=external --get-target sudo firewall-cmd --permanent --zone=drop --get-target
Firewalld’de Bağlantı Noktaları Nasıl Açılır ve Engellenir
Güvenlik duvarında bir bağlantı noktası (veya bağlantı noktası / protokol kombinasyonu) açmak için, bunu –add-port seçeneğiyle bir bölgeye eklemeniz yeterlidir. Bölgeyi açıkça belirtmezseniz, varsayılan bölgede etkinleştirilecektir.
Aşağıdaki örnek, sırasıyla HTTP ve HTTPS protokolleri aracılığıyla gelen web trafiğine izin vermek için bağlantı noktası 80 ve 443’ün nasıl ekleneceğini gösterir:
sudo firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=443/tcp
Ardından, güvenlik duvarını yeniden yükleyin ve genel bölgede etkinleştirilmiş özellikleri bir kez daha kontrol edin, yeni eklenen bağlantı noktalarını görebilmelisiniz.
sudo firewall-cmd --reload sudo firewall-cmd --info-zone public
Güvenlik duvarında bir bağlantı noktasını engellemek veya kapatmak da aynı derecede kolaydır; –remove-port seçeneğiyle bağlantı noktasını bir bölgeden kaldırmanız yeterlidir. Örneğin, halka açık alanda 80 ve 443 numaralı bağlantı noktalarını kapatmak için.
sudo firewall-cmd --zone=public --permanent --remove-port=80/tcp --remove-port=443/tcp
Bağlantı noktası veya bağlantı noktası / protokol kombinasyonu kullanmak yerine, bir bağlantı noktasının atandığı hizmet adını bir sonraki bölümde açıklandığı gibi kullanabilirsiniz.
Firewalld’de Hizmetler Nasıl Açılır ve Engellenir
Güvenlik duvarında bir hizmeti açmak için –add-service seçeneğini kullanarak etkinleştirin. Bölge ihmal edilirse, varsayılan bölge kullanılacaktır.
Aşağıdaki komut http hizmetini genel bölgede kalıcı olarak etkinleştirecektir.
sudo firewall-cmd --zone=public --permanent --add-service=http sudo firewall-cmd --reload
–Remove-service seçeneği bir hizmeti devre dışı bırakmak için kullanılabilir
sudo firewall-cmd --zone=public --permanent --remove-service=http sudo firewall-cmd --reload
Firewalld Kullanarak Disable IP Masquerading Nasıl Etkinleştirilir ve Devre Dışı Bırakılır
IP Masquerading (IPMASQ veya MASQ olarak da bilinir), bir ağdaki ana bilgisayarlarınızın Linux sunucunuzun (IPMASQ ağ geçidi) atanmış genel IP’yi kullanarak İnternet ile iletişim kurmasına izin veren Linux ağında bir NAT (Ağ Adresi Çevirisi) mekanizmasıdır.
Bu bire çok bir eşlemedir. Görünmez ana bilgisayarlarınızdan gelen trafik, internetteki diğer bilgisayarlara Linux sunucunuzdan geliyormuş gibi görünecektir.
IP maskelemesini istediğiniz bir bölgede, örneğin halka açık bölgede etkinleştirebilirsiniz. Ancak bunu yapmadan önce, maskelemenin etkin olup olmadığını kontrol edin (“no” devre dışı olduğu ve “yes” ise aksi anlamına gelir).
sudo firewall-cmd --zone=public --query-masquerade sudo firewall-cmd --zone=public --add-masquerade
Maskeleme için tipik bir kullanım durumu, bağlantı noktası iletimi gerçekleştirmektir. Uzak bir makineden, sshd arka plan programının 5000 numaralı bağlantı noktasında dinlediği IP 10.20.1.3 ile dahili ağınızdaki bir ana bilgisayara SSH yapmak istediğinizi varsayarsak.
Aşağıdakileri yayınlayarak Linux sunucunuzdaki 22 numaralı bağlantı noktasına tüm bağlantıları hedef ana makinenizdeki istenen bağlantı noktasına iletebilirsiniz:
sudo firewall-cmd --zone=public --add-forward-port=port=22=proto=tcp:toport=5000:toaddr=10.20.1.3
Bir bölgede maskelenmeyi devre dışı bırakmak için –remove-masquerade anahtarını kullanın.
sudo firewall-cmd --zone=public --remove-masquerade
Firewalld’de ICMP Mesajı Nasıl Etkinleştirilir ve Devre Dışı Bırakılır
ICMP (Internet Control Message Protocol) mesajları ya bilgi talepleridir ya da bilgi taleplerine verilen cevaplardır ya da hata durumundadır.
Güvenlik duvarında ICMP mesajlarını etkinleştirebilir veya devre dışı bırakabilirsiniz, ancak bundan önce desteklenen tüm icmp türlerini listeleyin.
sudo firewall-cmd --get-icmptypes
İstediğiniz bir blok türü eklemek veya kaldırmak için.
sudo firewall-cmd --zone=home --add-icmp-block=echo-reply ya da sudo firewall-cmd --zone=home --remove-icmp-block=echo-reply
–List-icmp-Blocks anahtarını kullanarak bir bölgeye eklenen tüm icmp türlerini görüntüleyebilirsiniz.
sudo firewall-cmd --zone=home --list-icmp-blocks
kaynak – https://www.tecmint.com/install-configure-firewalld-in-centos-ubuntu/
Başka bir yazımızda görüşmek üzere,