Puncte:0

Masquerade/ținta firewalld: impact asupra filtrării?

drapel za

Am deschis o întrebare Aici, dar pe măsură ce am găsit câteva elemente noi, prefer să deschid unul nou.

Iată situația mea, care poate fi reprodusă:

Proaspăt sistem de operare Centos7. Configurarea a două interfețe eth1 și eth2 cu adrese IP X și Y

-----------------> @X CENTOS @Y -----------------> @Z -------
    dst_IP = A dst_IP = A
    src_IP = B dst_IP = B

editați /etc/firewalld/zones/TEST.xml, adăugați cele două interfețe, activați mascarada. Ținta firewalld este setată implicit la „implicit”.

adăugați o rută după cum urmează:

Destination Gateway GenMask
A Z 255.255.255.255

Apoi activați ip forward și dezactivați rp_filter:

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2

În această situație, dacă direcționez un pachet (@dest=A) către CentOS, pachetul este direcționat către Z. -> De ce firewalld nu îl blochează? întrucât nu există o regulă care să o accepte

Dacă dezactivez mascarada, pachetul nu mai este rutat. -> De ce?

Cu masquerade activată, dacă schimb ținta de la implicit la DROP, pachetul nu mai este rutat -> Deci ținta „implicit” nu este strict identică cu ținta „DROP”. Care sunt exact diferențele? Nu am găsit nicio informație despre asta

Puncte:0
drapel kz

În primul rând, te activezi rp_filter, și nu îl dezactivați (pentru dezactivare, ar trebui să îl setați la zero).

Info despre filtrarea cale inversă.

La o întrebare se răspunde cu ușurință: fără mascarada, routerul de destinație vede un IP sursă de B, dar nu are o rută corectă la care trimite răspunsul. Din cauza asta și a filtrării inverse a căii, pachetul este aruncat.

În al doilea rând, trebuie să faceți diferența între un firewall și un firewall de redirecționare. Unul este destinat pachetelor care au unul dintre IP-urile de interfață ca dst / src ip (adică vine de la / merge la dispozitiv!), iar celălalt este destinat pachetelor care tocmai trec prin dispozitiv.

Deci ce se întâmplă? CentOS vede un pachet cu IP sursă B, IP de destinație A și încearcă să-l redirecționeze. Pentru a face acest lucru, se uită la tabelul său de rutare - Există o rută activă, că toate pachetele destinate Destinației A ar trebui să treacă prin routerul Z.

Acum masquerading-ul intră în vigoare - sursa IP B este înlocuită cu Y, iar pachetul este redirecționat către Z - încă cu destinația IP A!

Pot doar să ghicesc ce face paravanul de protecție - ar trebui să postați setul complet de reguli pentru firewall pentru o imagine completă - dar bănuiesc că confundați „rutarea prin Z” cu „Destinația Z”. Cel din urmă ar fi probabil căzut, primul nu.

Vă rugăm să postați setul complet de reguli pentru firewall pentru un răspuns final!

drapel za
Salut Martin, multumesc pentru raspuns!
drapel za
Voi posta mai multe detalii într-un răspuns. Diferența dintre firewall și firewall de redirecționare este probabil ceea ce îmi lipsește, dar nu găsesc nicio documentație despre asta pentru firewalld Linux
Martin avatar
drapel kz
Există o mulțime de front-end-uri pentru firewall-uri Linux, firewalld este doar unul dintre ele. Majoritatea dintre ele folosesc ```iptables``` sub capotă. iptables este furnizat de nucleul linux (pentru că acesta este locul unde pachetele sunt stricate/filtrate) și există de ceva timp și este bine documentat. Aș recomanda să citești pe acest subiect.
Puncte:0
drapel za

Mai multe precizii:

Pentru această problemă, Consider doar faptul că, ascultând pe interfața Centos @Y, pachetele sunt direcționate sau scapă. Nu țin cont de răspunsul lui Z, care de fapt nu funcționează dacă activez/dezactivez masquerade pe CentOS fără a ajusta configurația Z.

În acest context, ce explică faptul că activarea mascarade are un impact asupra pachetelor direcționate care sunt abandonate sau nu de firewalld înainte de a ieși pe interfața @Y? Cât despre ținta „implicit” din firewalld?

Setul meu de reguli pentru firewall este complet gol, am făcut această configurare dintr-un nou CentOS pentru a lucra la această problemă. Nu au fost adăugate reguli iptables sau firewalld.

Iată rezultatul iptables -L -n și iptables -L -t nat -n :

INTRARE în lanț (politica ACCEPTĂ)
target prot opt ​​sursă destinație
ACCEPTĂ toate -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,STABLISHED
ACCEPTĂ toate -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE toate -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES toate -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Lanț FORWARD (politica ACCEPT)
target prot opt ​​sursă destinație
ACCEPTĂ toate -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,STABLISHED
ACCEPTĂ toate -- 0.0.0.0/0 0.0.0.0/0
FORWARD_direct all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES_SOURCE toate -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES toate -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE toate -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES toate -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Ieșire în lanț (politica ACCEPT)
target prot opt ​​sursă destinație
OUTPUT_direct all -- 0.0.0.0/0 0.0.0.0/0

Lanț FORWARD_IN_ZONES (1 referințe)
target prot opt ​​sursă destinație
FWDI_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]
FWDI_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]

Lanț FORWARD_IN_ZONES_SOURCE (1 referințe)
target prot opt ​​sursă destinație

Lanț FORWARD_OUT_ZONES (1 referințe)
target prot opt ​​sursă destinație
FWDO_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]
FWDO_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]

Lanț FORWARD_OUT_ZONES_SOURCE (1 referințe)
target prot opt ​​sursă destinație

Lanț FORWARD_direct (1 referințe)
target prot opt ​​sursă destinație


Lanț FWDI_TEST (2 referințe)
target prot opt ​​sursă destinație
FWDI_TEST_log all -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_deny all -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_allow all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

Lanț FWDI_TEST_allow (1 referințe)
target prot opt ​​sursă destinație

Lanț FWDI_TEST_deny (1 referințe)
target prot opt ​​sursă destinație

Lanț FWDI_TEST_log (1 referințe)
target prot opt ​​sursă destinație

Lanț FWDO_TEST (2 referințe)
target prot opt ​​sursă destinație
FWDO_TEST_log all -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_deny all -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_allow all -- 0.0.0.0/0 0.0.0.0/0

Lanț FWDO_TEST_allow (1 referințe)
target prot opt ​​sursă destinație
ACCEPTĂ toate -- 0.0.0.0/0 0.0.0.0/0 ctstate NOU

Lanț FWDO_TEST_deny (1 referințe)
target prot opt ​​sursă destinație

Lanț FWDO_TEST_log (1 referințe)
target prot opt ​​sursă destinație

Lanț INPUT_ZONES (1 referințe)
target prot opt ​​sursă destinație
IN_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]
IN_TEST all -- 0.0.0.0/0 0.0.0.0/0 [goto]

Lanț INPUT_ZONES_SOURCE (1 referințe)
target prot opt ​​sursă destinație

Lanț INPUT_direct (1 referințe)
target prot opt ​​sursă destinație


Lanț IN_TEST (2 referințe)
target prot opt ​​sursă destinație
IN_TEST_log all -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_deny all -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_allow all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

Lanț IN_TEST_allow (1 referințe)
target prot opt ​​sursă destinație

Lanț IN_TEST_deny (1 referințe)
target prot opt ​​sursă destinație

Lanț IN_TEST_log (1 referințe)
target prot opt ​​sursă destinație

Lanț OUTPUT_direct (1 referințe)
target prot opt ​​sursă destinație



PRERUUTARE în lanț (politica ACCEPTĂ)
target prot opt ​​sursă destinație
PREROUTING_direct all -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES_SOURCE toate -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES toate -- 0.0.0.0/0 0.0.0.0/0

INTRARE în lanț (politica ACCEPTĂ)
target prot opt ​​sursă destinație

Ieșire în lanț (politica ACCEPT)
target prot opt ​​sursă destinație
OUTPUT_direct all -- 0.0.0.0/0 0.0.0.0/0

POSTOUTING în lanț (politica ACCEPT)
target prot opt ​​sursă destinație
POSTROUTING_direct all -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES_SOURCE toate -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES toate -- 0.0.0.0/0 0.0.0.0/0

Lanț OUTPUT_direct (1 referințe)
target prot opt ​​sursă destinație

Lanț POSTROUTING_ZONES (1 referințe)
target prot opt ​​sursă destinație
POST_TEST toate -- 0.0.0.0/0 0.0.0.0/0 [goto]
POST_TEST toate -- 0.0.0.0/0 0.0.0.0/0 [goto]

Lanț POSTROUTING_ZONES_SOURCE (1 referințe)
target prot opt ​​sursă destinație

Lanț POSTROUTING_direct (1 referințe)
target prot opt ​​sursă destinație

Lanț POST_TEST (2 referințe)
target prot opt ​​sursă destinație
POST_TEST_log all -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_deny all -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_allow all -- 0.0.0.0/0 0.0.0.0/0

Lanț POST_TEST_allow (1 referințe)
target prot opt ​​sursă destinație
MASQUERADE toate -- 0.0.0.0/0 0.0.0.0/0

Lanț POST_TEST_deny (1 referințe)
target prot opt ​​sursă destinație

Lanț POST_TEST_log (1 referințe)
target prot opt ​​sursă destinație

Lanț PREROUTING_ZONES (1 referințe)
target prot opt ​​sursă destinație
PRE_TEST toate -- 0.0.0.0/0 0.0.0.0/0 [goto]
PRE_TEST toate -- 0.0.0.0/0 0.0.0.0/0 [goto]

Lanț PREROUTING_ZONES_SOURCE (1 referințe)
target prot opt ​​sursă destinație

Lanț PREROUTING_direct (1 referințe)
target prot opt ​​sursă destinație

Lanț PRE_TEST (2 referințe)
target prot opt ​​sursă destinație
PRE_TEST_log all -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_deny all -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_allow all -- 0.0.0.0/0 0.0.0.0/0

Lanț PRE_TEST_allow (1 referințe)
target prot opt ​​sursă destinație

Lanț PRE_TEST_deny (1 referințe)
target prot opt ​​sursă destinație

Lanț PRE_TEST_log (1 referințe)
target prot opt ​​sursă destinație

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.