Tulemüüri logis on üks rida, mida te ei oodanud: ACK-pakett, conntracki olek NEW, lähteaadress, mis pole teie oma, sihtport avatud. Kiusatus on lugeda seda värskeks sissetulevaks ühenduseks, mille keegi ei autoriseerinud. Mida rida tegelikult ütleb, on kitsam: kui see pakett jõudis selle hookini, ei olnud jälgijal sobivat olekut ja pakett kandis ACK-i. Need on kaks fakti kahe erineva asja kohta ja kumbki neist ei ole täielik kätluse üleskirjutus. Siin on järjekord, mille ma läbi käin, enne kui järelduse teen.

Alustage paketist, mitte otsusest

Eraldage vaatlused enne nende tõlgendamist. TCP-lipud kirjeldavad seda paketti, jälgija olek kirjeldab seda, mida ta selles hookis teadis, ja teie salvestus kirjeldab ainult akent, mille salvestasite.

Nende kolme segamine on see, kuidas ACK-ist saab „pakkuja lasi kellegi sisse“.

Mida NEW hookis tegelikult tähendab

iptablesi conntracki vastendus dokumenteerib NEW-i paketina, mis alustab ühendust, või sellisena, mis on seotud ühendusega, mis pole veel näinud liiklust mõlemas suunas. ESTABLISHED tähendab, et jälgija on näinud pakette mõlemas suunas. Kumbki definitsioon ei ütle, et pakett oli SYN, ega seda, et see saabus ilma ajaloost.

Jälgija, kes hakkab voogu jälgima selle keskelt, klassifitseerib järgmise paketi selle järgi, mida ta teab, ja see võib olla mitte midagi. See on väide jälgija mälu kohta, mitte kaugema hosti kavatsuse kohta.

Lõtv jälgimine seletab enamikku ACK-i üllatusi

Kernel dokumenteerib nf_conntrack_tcp_loose, mis lubab jälgijal haarata TCP-ühendusi, mille algust ta ei näinud. Seade vaikeväärtusel saab voo keskelt tulnud ACK-i võtta vastu kehtestatud voona. Lülitage see välja ja sama pakett liigitatakse tõenäolisemalt INVALID-iks, mitte NEW-iks. Mõlemad tulemused kirjeldavad jälgija reegleid, mitte rakenduse ajalugu.

Kontrollige seda seadet enne, kui hakkate sildi peale teooriat ehitama.

Välistage igavad põhjused selles järjekorras

Enamik NEW-on-ACK sündmusi, mida olen jälitanud, lõppes ühega neist, ja kõiki on odav kontrollida:

  • Conntracki tabel tühjendati või jälgija taaskäivitati.
  • Host taaskäivitati või voog liikus teise namespace’i või seadmesse.
  • Asümmeetriline marsruutimine saatis SYN-i välja teele, mida te ei salvesta.
  • NAT kirjutas tuple’i ümber, seega kirje ei vasta enam sellele, mida lugesite.
  • Salvestus algas hilja ega näinud kunagi algust.

Igaüks neist eemaldab varasemad paketid jälgija vaateväljast, jättes hilisemad puutumata. Taaskäivitust või tabeli tühjendamist on kõige lihtsam uptime’i ja logide põhjal kinnitada. Asümmeetriline marsruutimine ilmub ühesuunalise salvestusena. NAT on salakaval, sest tuple, mille jälgija salvestas, ei ole see tuple, mis logis trükitud on.

Kirjutage üles, millised neist välistasite ja kuidas, enne kui edasi liigute.

Lugege tuple’it, liidest ja hooki

Conntracki kirje võti on aadressid, pordid ja protokoll, seega iga tõlge muudab, milline kirje sobib. Kirjutage üles ka liides ja hook, sest valel liidesel või pärast teist ahelat nähtud pakett ütleb, et tee ei ole see, mis diagrammil. Kui sündmus puudutab VPN-i, otsustage, kas vaatate sisemist paketti või välimist kandjat. Seejärel võrrelge sellega, mida lüüs samale viieosalisele tuple’ile logis.

Kaks ühe voo vaadet, mis ei ole kooskõlas, on informatiivsemad kui kumbki neist üksi.

Millal tasub eskaleerida

Eskaleerige, kui suudate näidata teenust, mis on kättesaadav ja ei peaks olema, koos voo, seda lubanud poliitika ja tõenditega mõlemast otsast. Ärge teatage pakkuja defektist ühe olekusildi või ühe osalise salvestuse põhjal, sest see teade suletakse selgitusega, mille just lugesite. Kui teenus on tõesti avatud, on selle piiri omanik õige inimene seda parandama, ja delegeeritud pordimappimine või soovimatu kuulaja on tõenäolisem põhjus kui viga.

Seejärel sulgege nähtavuslünk, mis lasi ühel paketil näida terve sessioonina.

Seotud artiklid