Jump to content

Firewalld - masquerade nie działa jako rich rule


el_jot
 Share

Recommended Posts

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...