Firewalld ile RHEL7 / CentOS7 üzerindeki giden bağlantılar engellensin mi?


12

RHEL7 / CentOS7 firewalld, iptables service(her ikisi de iptablesaltındaki Netfilter ile etkileşim için aracı kullanan) yerine geçen yeni bir güvenlik duvarı hizmetine sahiptir .

firewalldGelen trafiği engellemek için kolayca ayarlanabilir, ancak 1,5 yıl önce Thomas Woerner tarafından belirtildiği gibi "şu anda basit bir şekilde firewalld ile giden trafiği sınırlamak mümkün değildir". Gördüğüm kadarıyla durum o zamandan beri değişmedi. Yoksa var mı? Giden trafiği engellemenin bir yolu var mı firewalld? Değilse, iptablesaracı kullanarak kuralları manuel olarak eklemek dışında, giden trafiği engellemenin başka "standart" yolları (RHEL7 dağıtımında) var mı?

Yanıtlar:


13

Bu güzel GUI'de herhangi bir seçenek bulamadım, ancak doğrudan arayüz üzerinden mümkün

Yalnızca giden bağlantı noktası 80'i etkinleştirmek için:

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP

Bu, onu çalışma zamanı kurallarına değil kalıcı kurallara ekler.
Kalıcı kuralları yeniden yüklemeniz gerekir, böylece çalışma zamanı kuralları haline gelirler.

firewall-cmd --reload

kalıcı kurallar göstermek

firewall-cmd --permanent --direct --get-all-rules

çalışma zamanı kurallarını görüntüleme

firewall-cmd --direct --get-all-rules

Gerçek zengin kural dilini kullanarak bunu nasıl başarırsınız?
Casey

@Casey Anladığım kadarıyla, INPUT zincirleri için zengin kurallar kesinlikle kullanılıyor.
Pirinç

Yukarıdaki kuralların sadece ipv4(iptables) için çalıştığını varsayıyorum. ipv6(İp6tables için) veya eb(ebtables için ) için benzer kurallara sahip olmak arzu edilebilir .
mwfearnley

Ayrıca, bu sunucuya SSH bağlantımı öldürdü! Kurulu bağlantıların nasıl korunacağı hakkında user253068'in cevabına bakınız.
mwfearnley

6

Aynı soruyu kendim sorduktan sonra ve bazı müdahalelerle, giden trafiği HTTP / HTTPS ve DNS sorgularına kısıtlamak için bazı güzel kurallar topladım:

Kurulu bağlantılara izin ver:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT

HTTP'ye izin ver:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT

HTTPS'ye izin ver:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT

DNS sorgularına izin ver:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT

Diğer her şeyi reddet:

# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP

Önce '- kalıcı' argümanını atlayarak test etmek iyi bir fikir olabilir.

Hiçbir şekilde uzman değilim, ama bu benim tarafımdan iyi çalışıyor gibi görünüyor :)


Bir noktada kuralları kaldırmayı faydalı bulabilirsiniz. Tek doğrudan kuralları kaldırmak zor görünüyor, ancak bir balyoz firewall-cmd [--permanent] --direct --remove-rules ipv4 filter OUTPUTiçin toplu olarak kaldırılacak.
mwfearnley

1

GUI ile ilgili olarak; Bunu " Doğrudan Yapılandırma " altında bulduğunuzu düşünüyorum . Erişmek için " Görünüm " de seçmeniz gerekir . Yanlış olabilirim.

Kenar notu

Kuralları silmek için; çıkmanız ve ardından yeniden girmeniz gerekir.

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.