ఫైర్‌వాల్ లాగ్‌లో మీరు ఊహించని ఒక లైన్ ఉంది: ఒక ACK ప్యాకెట్, conntrack స్థితి NEW, మీది కాని మూల చిరునామా, గమ్యం పోర్ట్ తెరిచి ఉంది. ఎవరూ అనుమతించని కొత్త లోపలికి వచ్చే కనెక్షన్‌గా దీన్ని చదవాలని ఆశపడతారు. లైన్ నిజానికి చెప్పేది మరింత సన్నగా ఉంటుంది: ఆ ప్యాకెట్ ఈ hook చేరుకున్నప్పుడు ట్రాకర్‌కు సరిపోలే ఏ స్థితి లేదు, మరియు ప్యాకెట్ ACK మోసుకువచ్చింది. ఇవి రెండు వేర్వేరు విషయాల గురించి రెండు వాస్తవాలు, ఏదీ పూర్తి హ్యాండ్‌షేక్ రికార్డు కాదు. నిర్ణయానికి రాకముందు నేను అనుసరించే క్రమం ఇది.

తీర్పు నుండి కాదు, ప్యాకెట్ నుండి ప్రారంభించండి

అర్థం చెప్పే ముందు పరిశీలనలను వేరు చేయండి. TCP ఫ్లాగ్‌లు ఈ ప్యాకెట్‌ను వివరిస్తాయి, ట్రాకర్ స్థితి ఆ hook వద్దకు ఏమి తెలుసు అని వివరిస్తుంది, మరియు మీ క్యాప్చర్ మీరు రికార్డ్ చేసిన విండోను మాత్రమే వివరిస్తుంది.

ఈ మూడింటిని కలపడమే ACK “ప్రొవైడర్ ఒకరిని లోపలికి పంపాడు”గా మారే మార్గం.

hook వద్ద NEW నిజానికి ఏమి అర్థం

iptables conntrack సరిపోలిక NEWని కనెక్షన్ ప్రారంభించే ప్యాకెట్‌గా, లేదా రెండు దిశలలో ఇంకా ట్రాఫిక్ చూడని కనెక్షన్‌కు సంబంధించిన ప్యాకెట్‌గా నమోదు చేస్తుంది. ESTABLISHED అంటే ట్రాకర్ రెండు దిశలలో ప్యాకెట్‌లను చూసింది. ఏ నిర్వచనం కూడా ప్యాకెట్ SYN అని గానీ, అది చరిత్ర లేకుండా వచ్చిందని గానీ చెప్పదు.

ప్రవాహాన్ని మధ్య నుండి గమనించడం ప్రారంభించే ట్రాకర్ తదుపరి ప్యాకెట్‌ను తనకు తెలిసిన దాని ఆధారంగా వర్గీకరిస్తుంది, అది ఏమీ కాకపోవచ్చు. ఇది ట్రాకర్ జ్ఞాపకం గురించిన ప్రకటన, దూరపు హోస్ట్ ఉద్దేశం గురించి కాదు.

వదులు ట్రాకింగ్ చాలా ACK ఆశ్చర్యాలను వివరిస్తుంది

కెర్నల్ నమోదు చేస్తుంది nf_conntrack_tcp_loose, ఇది ట్రాకర్‌కు ప్రారంభం చూడని TCP కనెక్షన్‌లను తీసుకోవడానికి అనుమతిస్తుంది. సెట్టింగ్ దాని డిఫాల్ట్ విలువలో ఉన్నప్పుడు, ప్రవాహం మధ్య నుండి వచ్చిన ACK స్థిరపడిన ప్రవాహంగా ఆమోదించబడవచ్చు. దాన్ని ఆఫ్ చేయండి, అదే ప్యాకెట్ NEW బదులు INVALIDగా వర్గీకరించబడే అవకాశం ఎక్కువ. రెండు ఫలితాలు ట్రాకర్ నియమాలను వివరిస్తాయి, అప్లికేషన్ చరిత్రను కాదు.

కాబట్టి లేబుల్‌పై సిద్ధాంతం నిర్మించే ముందు ఆ సెట్టింగ్‌ను తనిఖీ చేయండి.

విసుగు కలిగించే కారణాలను ఈ క్రమంలో మినహాయించండి

నేను అనుసరించిన NEW-on-ACK సంఘటనల్లో చాలా వరకు వీటిలో ఒకదానితో ముగిశాయి, అన్నీ తనిఖీ చేయడం చవక:

  • conntrack పట్టిక ఖాళీ చేయబడింది, లేదా ట్రాకర్ పునఃప్రారంభించబడింది.
  • హోస్ట్ రీబూట్ అయింది, లేదా ప్రవాహం మరో namespace లేదా పరికరానికి మారింది.
  • అసమాన రూటింగ్ SYNను మీరు క్యాప్చర్ చేయని మార్గం ద్వారా పంపింది.
  • NAT tupleను తిరిగి రాసింది, కాబట్టి ఎంట్రీ ఇకపై మీరు చదివిన దానితో సరిపోలదు.
  • క్యాప్చర్ ఆలస్యంగా ప్రారంభమైంది మరియు ప్రారంభాన్ని ఎప్పుడూ చూడలేదు.

వీటిలో ప్రతి ఒక్కటి మునుపటి ప్యాకెట్‌లను ట్రాకర్ దృష్టి నుండి తొలగించి, తరువాతి వాటిని చెక్కుచెదరకుండా ఉంచుతుంది. రీబూట్ లేదా పట్టిక ఖాళీ చేయడం uptime మరియు లాగ్‌ల నుండి నిర్ధారించడం సులభం. అసమాన రూటింగ్ ఏకదిశ క్యాప్చర్‌గా కనిపిస్తుంది. NAT మోసగాడు, ఎందుకంటే ట్రాకర్ నిల్వ చేసిన tuple లాగ్‌లో ముద్రించిన tuple కాదు.

కొనసాగే ముందు వీటిలో ఏవి మినహాయించారు, ఎలా అని రాయండి.

tuple, ఇంటర్‌ఫేస్ మరియు hook చదవండి

conntrack ఎంట్రీ చిరునామాలు, పోర్ట్‌లు మరియు ప్రోటోకాల్‌తో కీలకం చేయబడుతుంది, కాబట్టి ఏ అనువాదమైనా ఏ ఎంట్రీ సరిపోలుతుందో మారుస్తుంది. ఇంటర్‌ఫేస్ మరియు hook కూడా నమోదు చేయండి, ఎందుకంటే తప్పు ఇంటర్‌ఫేస్‌పై లేదా మరో గొలుసు తర్వాత కనిపించిన ప్యాకెట్ మార్గం చిత్రంలో ఉన్నట్టు కాదని చెబుతుంది. సంఘటన VPNకు సంబంధించినదైతే, మీరు లోపలి ప్యాకెట్‌ను చూస్తున్నారా లేదా బయటి వాహకాన్ని చూస్తున్నారా అని నిర్ణయించండి. తర్వాత అదే ఐదు-భాగాల tuple కోసం గేట్‌వే నమోదు చేసిన దానితో పోల్చండి.

ఒకే ప్రవాహంపై రెండు వైరుధ్య దృశ్యాలు ఏ ఒక్కదాని కంటే ఎక్కువ సమాచారం ఇస్తాయి.

ఎప్పుడు ఎస్కలేట్ చేయడం విలువైనది

చేరుకోగలిగినా ఉండకూడని సేవను, ప్రవాహం, దాన్ని అనుమతించిన విధానం మరియు రెండు చివరల సాక్ష్యాలతో చూపగలిగినప్పుడు ఎస్కలేట్ చేయండి. ఒకే స్థితి లేబుల్ లేదా ఒకే పాక్షిక క్యాప్చర్ ఆధారంగా ప్రొవైడర్ లోపాన్ని నివేదించవద్దు, ఎందుకంటే ఆ నివేదిక మీరు ఇప్పుడే చదివిన వివరణతో మూసివేయబడుతుంది. సేవ నిజంగా బహిర్గతమైతే, ఆ సరిహద్దు యజమానియే దాన్ని సరిచేయాల్సిన సరైన వ్యక్తి, మరియు బగ్ కంటే అప్పగించిన పోర్ట్ మ్యాపింగ్ లేదా అనుద్దేశితం కాని వినేవాడు ఎక్కువ సంభావ్య కారణం.

తర్వాత ఒక ప్యాకెట్‌ను పూర్తి సెషన్‌లా కనిపించనిచ్చిన దృశ్యత్వ అంతరాన్ని మూసివేయండి.

సంబంధిత వ్యాసాలు