Puncte:0

Cum limitez firewalld portforwarding la anumite adrese sursă?

drapel jp

În primul rând, îmi cer scuze dacă acest lucru a fost deja întrebat înainte, dar nu am reușit să găsesc niciun răspuns căutând prin informațiile disponibile pe SE.

Situatia mea este urmatoarea: Am un server CentOS 7 care se află în fruntea oferind o serie de servicii. Este conectat cu un port ethernet public (eno1) și un port ethernet LAN (eno2) Conectat la LAN este un al doilea server către care vreau să redirecționez traficul pe un anumit port.

FirewallD oferă redirecționare porturi și funcționează. Până acum, bine! Cu toate acestea, există o problemă majoră cu care mă întâlnesc: vreau să limitez cine are acces la acel serviciu redirecționat prin IP public și nu am reușit să-l înțeleg pentru că FirewallD pare a fi mult prea simplist în ceea ce privește se poate face cu ea. Excelent dacă doriți doar să deschideți un serviciu până la „net pentru toată lumea, dar nu atât de mult când doriți să-l deschideți doar pentru anumite domenii. O problemă suplimentară este că pe serverul țintă de pe LAN, toate IP-urile sursă pentru traficul redirecționat sunt adresa LAN a serverului gateway (10.0.0.1). Aceasta înseamnă că nici nu pot filtra traficul de pe serverul țintă după IP, lăsând serviciul deschis lumii (pe care nu-l doresc)

Există vreo modalitate de a face asta cu firewalld? Am încercat să o fac manual cu iptables, dar a trebuit să recunosc înfrângerea. urmând toate informațiile pe care le-am putut găsi, nu am renunțat niciodată la serviciu...

Clarificare:

Internet -> (eno1, IP public) -> Centos -> (eno2, 10.0.0.1) -> server țintă (10.0.0.2)

Michael Hampton avatar
drapel cz
Acest lucru pare trivial de simplu; consultați https://serverfault.com/a/684739/126632
Mark Straver avatar
drapel jp
Mulțumesc, asta m-a pus pe drumul cel bun! Cu avertismentul că zonele sunt exclusive și au nevoie de toate regulile duplicate... Aproape că mi-am blocat accesul din cauza asta. :P
Puncte:1
drapel jp

Cu ajutorul lui Michael Hampton (mulțumesc!) am reușit să-mi dau seama și îmi răspund la întrebarea mea.

Ceea ce este nevoie este o zonă separată pe care o definiți adăugând domenii la aceasta:

firewall-cmd --new-zone=special --permanent
firewall-cmd --reîncărcare
firewall-cmd --zone=special --add-source=12.34.56.78/32 --permanent
firewall-cmd --zone=special --add-source=12.34.56.88/32 --permanent
firewall-cmd --zone=special --add-source=12.34.99.0/24 --permanent

Apoi adauga toate serviciile/porturile normale pe care le-ați avea în dvs public zonă la această nouă zonă (practic duplicați configurația acesteia) și, în final, adăugați regula portului redirecționat numai către noua zonă cu (exemplu http proxy):

firewall-cmd --zone=special --add-forward-port=port=8080:proto=tcp:toaddr=10.0.0.2 --permanent

apoi lansați o reîncărcare finală pentru a aplica:

firewall-cmd --reîncărcare

și voilà: domeniile 12.34.56.78/32 12.34.56.88/32 și 12.34.99.0/24 au acum acces la serviciul proxy de exemplu, dar nimeni altcineva.

ACTUALIZAȚI

Nota critica: Acești pași funcționează bine pentru trafic de intrare dar a face firewalld să se comporte ca un router NAT, inclusiv outbound, necesită mai multă muncă (pe care nu am reușit să funcționeze...). Dacă cineva are o soluție mai completă care permite intrarea și ieșirea să lucreze printr-un server protejat cu firewall, voi marca cu plăcere asta ca răspuns acceptat!

OT: Am ajuns să folosesc IPTables până la urmă oricum, pe care am început să lucrez pentru redirecționarea portului și NAT fără prea multe probleme odată ce mi-am dat seama ce am greșit (nu aveam o regulă de ieșire în lanțul FORWARD... >.> <.<) și permite un control fin asupra domeniilor în fiecare regulă (cu bonus Pot face totul de la Webmin :P). Deoarece acesta este în afara subiectului, las acest răspuns așa cum este.

Michael Hampton avatar
drapel cz
Porniți doar mascarada?!
Mark Straver avatar
drapel jp
Bineînțeles că am făcut-o. Nu a funcționat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.