Paket Filtreleme, Ağ Adresi Çevirisi ve Çekirdek Çalışma Zamanı Parametrelerini Ayarlama - Bölüm 2


Bölüm 1'de (“Statik Ağ Yönlendirmesinin Kurulumu”) söz verildiği gibi, bu makalede (RHCE serisinin Bölüm 2'si) konuyu tanıtarak başlayacağız Red Hat Enterprise Linux 7'de paket filtreleme ve ağ adresi çevirisi (NAT) ilkeleri, belirli koşullar değişirse veya ihtiyaçlar ortaya çıkarsa çalışan bir çekirdeğin davranışını değiştirmek için çalışma zamanı çekirdek parametrelerini ayarlamaya geçmeden önce.

RHEL 7'de Ağ Paket Filtreleme

Paket filtrelemeden bahsettiğimizde, bir güvenlik duvarı tarafından gerçekleştirilen, içinden geçmeye çalışan her veri paketinin başlığını okuyan bir işlemi kastediyoruz. Daha sonra sistem yöneticisinin önceden tanımladığı kurallara göre gerekli aksiyonları alarak paketi filtreler.

Muhtemelen bildiğiniz gibi, RHEL 7'den başlayarak, güvenlik duvarı kurallarını yöneten varsayılan hizmet güvenlik duvarıdır. İptables gibi, ağ paketlerini incelemek ve değiştirmek için Linux çekirdeğindeki netfilter modülüyle konuşur. İptables'ın aksine, güncellemeler aktif bağlantıları kesmeden anında etkili olabilir; hizmeti yeniden başlatmanıza bile gerek yoktur.

Firewalld'un bir diğer avantajı da önceden yapılandırılmış hizmet adlarına göre kuralları tanımlamamıza olanak sağlamasıdır (bununla ilgili daha fazla bilgi birazdan verilecektir).

1. Bölüm'de aşağıdaki senaryoyu kullandık:

Ancak, paket filtrelemeyi henüz ele almadığımız için örneği basitleştirmek amacıyla yönlendirici #2'deki güvenlik duvarını devre dışı bıraktığımızı hatırlayacaksınız. Şimdi hedefteki belirli bir hizmete veya bağlantı noktasına yönelik gelen paketleri nasıl etkinleştirebileceğimizi görelim.

Öncelikle enp0s3 (192.168.0.19)'den enp0s8'e (10.0.0.18) gelen trafiğe izin vermek için kalıcı bir kural ekleyelim. güçlü>):

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Yukarıdaki komut, kuralı /etc/firewalld/direct.xml dosyasına kaydedecektir:

cat /etc/firewalld/direct.xml

Ardından kuralın hemen etkili olması için etkinleştirin:

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

Artık RHEL 7 kutusundan web sunucusuna telnet uygulayabilir ve iki makine arasındaki TCP trafiğini izlemek için tcpdump'ı yeniden çalıştırabilirsiniz; bu kez yönlendirici #2'deki güvenlik duvarı ile etkinleştirilmiş.

telnet 10.0.0.20 80
tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

Yalnızca 192.168.0.18'den web sunucusuna (bağlantı noktası 80) gelen bağlantılara izin vermek ve 192.168.0.0/'deki diğer kaynaklardan gelen bağlantıları engellemek istiyorsanız ne olur? 24 ağ?

Web sunucusunun güvenlik duvarına aşağıdaki kuralları ekleyin:

firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

Artık 192.168.0.18'den ve 192.168.0.0/24'teki başka bir makineden web sunucusuna HTTP istekleri yapabilirsiniz. İlk durumda bağlantı başarıyla tamamlanmalı, ikinci durumda ise zaman aşımına uğrayacaktır.

Bunu yapmak için aşağıdaki komutlardan herhangi biri işinizi görecektir:

telnet 10.0.0.20 80
wget 10.0.0.20

Zengin kurallar hakkında daha fazla ayrıntı için Fedora Project Wiki'deki Firewalld Rich Language belgelerine göz atmanızı şiddetle tavsiye ederim.

RHEL 7'de Ağ Adresi Çevirisi

Ağ Adresi Çevirisi (NAT), özel bir ağdaki bir grup bilgisayara (aynı zamanda bunlardan yalnızca biri de olabilir) benzersiz bir genel IP adresinin atandığı işlemdir. Sonuç olarak, ağ içinde hala kendi özel IP adresleriyle benzersiz bir şekilde tanımlanıyorlar ancak dışarıdan hepsi aynı "görünüyor".