Skocz do zawartości

Firewalld - masquerade nie działa jako rich rule


el_jot

Rekomendowane odpowiedzi

Witam!

Szukam rozwiązania problemu niedziałania masquerade pod kontrolą systemu Centos7 uruchamianej jako rich rule. Server ma dwie karty, jedna z nich w strefie (zone) =internal i druga w zone=external. Jak nazwa wskazuje masquerade jest konfigurowana na karcie w zone=external. Po wydaniu polecenia:

#firewalld-cmd --zone=external --add-masquerade

""root@ama zones]# firewall-cmd --zone=external --list-all
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources:
  services: http ssh
  ports: 554/tcp 3390/tcp 50050/tcp 7000/tcp 8000/tcp 40389/tcp 6036/tcp 3389/tcp 6037/tcp
  protocols:
  masquerade: yes
  forward-ports: port=8000:proto=tcp:toport=8000:toaddr=192.168.1.220
    port=7000:proto=tcp:toport=7000:toaddr=192.168.1.94
    port=8080:proto=tcp:toport=8080:toaddr=192.168.1.199
    port=22000:proto=tcp:toport=22:toaddr=192.168.1.10
    port=8008:proto=tcp:toport=80:toaddr=192.168.1.10
    port=6037:proto=tcp:toport=6037:toaddr=192.168.1.123
    port=554:proto=tcp:toport=554:toaddr=192.168.1.220
    port=3389:proto=tcp:toport=3389:toaddr=192.168.1.199
    port=50050:proto=tcp:toport=50050:toaddr=192.168.1.199
    port=3390:proto=tcp:toport=3390:toaddr=192.168.1.184
    port=40389:proto=tcp:toport=3389:toaddr=192.168.1.198
    port=6036:proto=tcp:toport=6036:toaddr=192.168.1.122
  sourceports:
  icmp-blocks:
  rich rules:""

wszystko działa bez problemu. Hosty ze strefy internal nawiązują połączenie z internetem (działa DNS, ping, działają strony www)

Ale podobny efekt można według literatury -> https://www.rootusers.com/how-to-use-firewalld-rich-rules-and-zones-for-filtering-and-nat/ uzyskać  ale z możliwością dokładniej szej kontroli które adresy będą podlegać translacji masquerade wykorzystując rich-rule.

Na początek próbuję zastosowac rich-rule do całej podsieci ze strefy "internal"

# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'

[root@ama zones]# firewall-cmd --zone=external --list-all
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s25
  sources:
  services: http ssh
  ports: 554/tcp 3390/tcp 50050/tcp 7000/tcp 8000/tcp 40389/tcp 6036/tcp 3389/tcp 6037/tcp
  protocols:
  masquerade: yes
  forward-ports: port=8000:proto=tcp:toport=8000:toaddr=192.168.1.220
    port=7000:proto=tcp:toport=7000:toaddr=192.168.1.94
    port=8080:proto=tcp:toport=8080:toaddr=192.168.1.199
    port=22000:proto=tcp:toport=22:toaddr=192.168.1.10
    port=8008:proto=tcp:toport=80:toaddr=192.168.1.10
    port=6037:proto=tcp:toport=6037:toaddr=192.168.1.123
    port=554:proto=tcp:toport=554:toaddr=192.168.1.220
    port=3389:proto=tcp:toport=3389:toaddr=192.168.1.199
    port=50050:proto=tcp:toport=50050:toaddr=192.168.1.199
    port=3390:proto=tcp:toport=3390:toaddr=192.168.1.184
    port=40389:proto=tcp:toport=3389:toaddr=192.168.1.198
    port=6036:proto=tcp:toport=6036:toaddr=192.168.1.122
  sourceports:
  icmp-blocks:
  rich rules:
    rule family="ipv4" source address="192.168.1.0/24" masquerade

Niestety, tak dodana translacja masquerade nie działa. Próbowałem z innym (szerszym) zakresem adresów źródłowych, próbowałem ograniczyć masquerade do konkretnego adresu np. 192.168.1.10/32 ale również bez powodzenia. Zależy mi właśnie na tym aby część adresów z podsieci 192.168.1.0/24, na przykład dla podsieci 192.168.1.0/28 działała translacja masquerade a dla pozostałych nie.

Czy ktoś miał podobne doświadczenia a może zna odpowiedź jak to się da rozwiązań za pomocą rich-rules

l.j

Odnośnik do komentarza
Udostępnij na innych stronach

Witam!

Dalej szukam rozwiazania tej sprawy choć na razie bez rezultatów :-(

Zastosowałem tym razem direct rule dla masquerade dla ograniczonego zakresu adresów :


#firewall-cmd --zone=external --direct --add-rule ipv4 nat POSTROUTING 0 -m iprange --src-range 192.168.1.10-192.168.1.20 -o enp0s25 -j MASQUERADE

System akceptuje to polecenie, które daje sie raportować z konfiguracji za pomocą polecenia "#firewall-cmd --direct --get-all-rules --zone=external" ale to nic nie zmiania

Im using Centos 3.10.0-693.5.2.el7.x86_64
I've tried also to insert general direct rule to filter table:
Próbowałem "dołożyć" ogólna regułę do direct rule do łańcuch FORWARD w tabeli filter:

# firewall-cmd --zone=external --direct --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp0s25 -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Niestety, bez pozytywnego efektu. Działa tylko najbardziej ogólne polecenie: #firewalld-cmd --zone=external --add-masquerade Ale nie mam mozliwości ograniczenia zakresu adresowego dla masquerade :-(
Zastanawiam się czy nie pominąłem czegoś w konfiguracji?

el_jot

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...