firewalld, yalnızca farklı bir bölgenin parçası olan belirli bir IP’den SSH’ye izin vermek


0

Amacım 172.26.143.0/24 tarihinde her müşteriye ldap hizmet etmektir, ancak SSH yalnızca 172.26.143.3 için geçerli olmalıdır. Aşağıdakileri denedim:

# This is where eth0 is and no services/ports are assigned to this zone:
firewall-cmd --set-default-zone=drop
firewall-cmd --zone=internal --add-source=172.26.143.0/24 --permanent
firewall-cmd --zone=internal --add-service=ldap --permanent
firewall-cmd --zone=trusted --add-source=172.26.143.3 --permanent
firewall-cmd --zone=trusted --add-service=ssh --permanent
firewall-cmd --reload

Bu yapılandırma ile 172.26.143.3 bu sunucuya SSH gönderemez. Sadece ssh-service’yi zone = internal olan ve istemeyeceğim eklersem. Bunu nasıl başarabilirim?


Güvenilir bölgenizi ayrı bir alt ağa taşımalısınız. O zaman, tek bir büyülü IP adresine güvenmek yerine, birden fazla yönetim bilgisayarı istiyorsanız, bir yönetim alt ağına sahip olacaksınız. Bu sizin acil imar probleminizi de çözecektir.
Aeyoun

Yanıtlar:


1

Özel bir cevap, hem kaynaklar hem de arayüzlerden önce değerlendirildiklerinden, zengin bir kural (doğrudan bir kural sanırım işe yarayacaktı) oluşturmaktır.

firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family=ipv4 source address=172.26.143.3 accept'

Neden işe yaramazsa, dahili ve güvenilir bölgelerdeki kaynak tanımları çakışıyor. Bu, kaynak çakışmasına gerçekten izin verilmediği bir firewalld'in zayıflığı / sıkıntısı / böceği (?). Çalışır, ancak firewalld'in böyle bir çakışma olduğunda bölgeleri değerlendirme sırasına bağlıdır. Kodlara bakmadım ama bazı açıklamalar bir örtüşme olduğunda bölgelerin alfabetik olarak değerlendirildiğini ve başka yerlerde kuralların tanımlandığı sıralamaya dayandığını söylüyor. Her iki durumda da, örneğinizde, iç bölge SSH trafiğini alıyor ve düşürüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.