Jump to content
Sign in to follow this  
el_jot

Firewalld - masquerade nie działa jako rich rule

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

""[email protected] 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'

[[email protected] 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

Share this post


Link to post
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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...