ESP అనేది IP ప్రోటోకాల్ 50, TCP పోర్ట్ 50 కాదు: ఏమి అనుమతించాలి
ప్రోటోకాల్ సంఖ్యలు మరియు పోర్ట్ సంఖ్యలు వేర్వేరు పేరు స్థలాలు. TCP పోర్ట్ 50 కోసం నియమం ఏమీ అనుమతించదు, మరియు NAT ట్రావర్సల్ ESP ను UDP 4500 కు తరలిస్తుంది.
ఫైర్వాల్ ఫారమ్లు TCP పోర్ట్ అడుగుతాయి, స్పష్టమైన నమోదు 50. ఆ నమోదు ఏమీ అనుమతించదు, ఎందుకంటే ESP అనేది IP ప్రోటోకాల్ సంఖ్య 50 మరియు ప్రోటోకాల్ సంఖ్యలు పోర్ట్లు కావు. రెండు పేరు స్థలాలు చిన్న పూర్ణాంకాలను మాత్రమే పంచుకుంటాయి, మరేమీ కాదు, మరియు IKE ముగిసే వరకు మరియు రక్షిత ట్రాఫిక్ ఎప్పటికీ రానంత వరకు లోపం కనిపించకుండా ఉంటుంది.
చిన్న సంఖ్యలను పంచుకునే రెండు పేరు స్థలాలు
IP హెడర్ తదుపరి ఏమి వస్తుందో పేరు పెట్టే ప్రోటోకాల్ ఫీల్డ్ను కలిగి ఉంటుంది: TCP కి 6, UDP కి 17, ICMP కి 1, ESP కి 50, AH కి 51. TCP లేదా UDP హెడర్ పోర్ట్ సంఖ్యలను కలిగి ఉంటుంది, అవి గమ్యస్థాన హోస్ట్లో ప్రక్రియను ఎంచుకుంటాయి. ప్రోటోకాల్ 50 మరియు TCP పోర్ట్ 50 సంబంధం లేని విలువలు, కానీ సంభాషణ పెట్టె వాటిని పరస్పరం మార్చుకోగలిగినట్లు చూపగలదు.
అందుకే పోర్ట్ ఫార్వార్డింగ్ నియమం స్థానిక ESP ను వ్యక్తపరచలేదు. ఫార్వార్డ్ చేయడానికి ESP గమ్యస్థాన పోర్ట్ లేదు, మరియు పోర్ట్ నియమాలను మాత్రమే అర్థం చేసుకునే పరికరానికి ఆ ప్యాకెట్ కోసం ఎలాంటి పదకోశం లేదు. సరైన నియమం బదులుగా IP ప్రోటోకాల్ను పేరు పెడుతుంది. ఏదైనా పోర్ట్ సంభాషణ ఆ ప్యాకెట్ కోసం తప్పు సాధనం.
గందరగోళానికి రెండవ సగం కూడా ఉంది. ప్యాకెట్ గుప్తీకరించబడినప్పుడు, దాని లోపల ఉన్నదంతా అపారదర్శకంగా ఉంటుంది, అసలు కనెక్షన్ యొక్క TCP హెడర్తో సహా. ఆ ప్యాకెట్లో పోర్ట్లను పరిశీలించే ఫైర్వాల్ బయటి హెడర్ను చూస్తోంది, స్థానిక సందర్భంలో అక్కడ పరిశీలించడానికి పోర్ట్లు లేవు.
స్థానిక ESP, తర్వాత కాప్సూల్ చేయబడిన ప్రత్యామ్నాయం
స్థానిక ESP నేరుగా IP ప్రోటోకాల్గా రవాణా చేయబడుతుంది, ఇది సమానంగా సమర్థవంతమైనది మరియు ఇబ్బందికరమైనది. అదనపు హెడర్ లేనందున సమర్థవంతం, చిరునామాలు మరియు పోర్ట్లను అనువదించే ఏ పరికరం దానిని ట్రాక్ చేయలేనందున ఇబ్బందికరం. NAT ట్రావర్సల్ దీన్ని పరిష్కరించడానికే ఉంది: ESP ప్యాకెట్ను UDP లోపల చుట్టి, అనువాదకుడికి తిరిగి రాయడానికి పోర్ట్లను ఇస్తుంది.
| Form on the wire | How it is identified | What the firewall must permit |
|---|---|---|
| IKE negotiation | UDP with a destination port | UDP 500, and 4500 once traversal is detected |
| Native ESP | IP protocol 50 in the outer header | The protocol itself, with no port to name |
| ESP inside UDP | UDP 4500 carrying an ESP payload | The UDP port pair, which translation devices can track |
రెండు రూపాలు ఒకే డేటా ఛానెల్ యొక్క ప్రత్యామ్నాయ అమరికలు, ఒకదాని పొరలు కావు. స్థానిక ESP ను అనుమతిస్తే కాప్సూల్ చేయబడిన రూపం అనుమతించబడదు, UDP 4500 ను అనుమతిస్తే స్థానిక ట్రాఫిక్ అనుమతించబడదు, కాబట్టి నియమాల సమూహం అమరికకు సరిపోలాలి, యాదృచ్ఛికంగా రెండింటినీ కవర్ చేయకూడదు.
ఇక్కడ గుర్తింపు కూడా ముఖ్యం. చివరి బిందువులు చర్చల సమయంలో రూపాల మధ్య నిర్ణయించుకుంటాయి, మార్పు సాధారణంగా వాటి మధ్య NAT గుర్తించబడినప్పుడు జరుగుతుంది. అందువల్ల సొరంగం ఏర్పడిన తర్వాత మారే మార్గం ట్రాఫిక్ను మీ నియమాలు ఎప్పుడూ కవర్ చేయని పేరు స్థలానికి తరలించవచ్చు.
కనెక్షన్ నిజంగా ఏ రూపాన్ని ఉపయోగిస్తుందో చదవండి
ఫైర్వాల్ నుండి ఊహించడం బదులు చివరి బిందువును అడగండి. Linux లో స్థితి నమోదు సంఘం UDP కాప్సూలేషన్ ఉపయోగిస్తుందా మరియు ఏ పోర్ట్లు పాల్గొంటున్నాయో నివేదిస్తుంది. ప్యాకెట్ క్యాప్చర్ అదే ప్రశ్నకు వైర్ నుండి సమాధానం ఇస్తుంది, రెండూ నియమాల సమూహాన్ని చదివి ఆశించడం కంటే వేగవంతం.
ip xfrm state | grep -A3 encap
tcpdump -ni any 'ip proto 50 or udp port 4500'
మొదటి ఆదేశం NAT ట్రావర్సల్ ఉపయోగంలో ఉన్నప్పుడు కాప్సూలేషన్ రకాన్ని చూపిస్తుంది, లేనప్పుడు ఏమీ చూపదు. రెండవది రెండు రూపాలలో ఏది నిజంగా ఇంటర్ఫేస్ దాటుతోందో చూపిస్తుంది, ఇది కాగితంపై సరైనదిగా కనిపించే కాన్ఫిగరేషన్ గురించిన చర్చలను ముగిస్తుంది.
వ్యతిరేక సాక్ష్యం కూడా అదే దశలో భాగం. సున్నా సరిపోలికలను నివేదించే నియమం ప్యాకెట్ ఎప్పుడూ దానిని చేరుకోలేదని చెబుతుంది, మరియు అది ఫైర్వాల్ కాదు, రూటింగ్ లేదా ఎంపికదారు ప్రశ్న.
తర్వాత నియంత్రణ ఛానెల్ను విడిగా నిర్ధారించండి. IKE కి దాని సొంత పోర్ట్లు మరియు దాని సొంత లాగ్లు ఉన్నాయి, డేటా లేకుండా పూర్తయిన చర్చ ఈ వ్యాసం చెప్పే విభజన.
నియమాన్ని సరైన పేరు స్థలంలో రాయండి
ప్రోటోకాల్ నియమం మరియు పోర్ట్ నియమం వేర్వేరు సూచనలు, కాబట్టి సాధనం మీరు ఉద్దేశించినదాన్ని వ్యక్తపరచాలి. nftables లో ప్రోటోకాల్ సరిపోలిక స్పష్టంగా ఉంటుంది, కాప్సూల్ చేయబడిన ప్రత్యామ్నాయానికి దాని సొంత UDP నియమం లభిస్తుంది. రెండు నియమాలను పక్కపక్కనే ఉంచండి, సమీక్షలో జోడి కనిపించేలా.
nft add rule inet filter input ip protocol esp accept
nft add rule inet filter input udp dport { 500, 4500 } accept
తప్పు నిర్ధారణను భర్తీ చేయడానికి ఏ నియమాన్ని విస్తరించాలనే ప్రలోభాన్ని ఎదిరించండి. ప్రతి ఇంటర్ఫేస్లో ESP ప్రోటోకాల్ కోసం అన్నింటినీ అనుమతించడం, లేదా ఎక్కడి నుండైనా ఎక్కడికైనా UDP అనుమతి, లక్షణాన్ని సరిచేస్తుంది మరియు మీరు సెట్ చేయాలనుకున్న నియంత్రణను తొలగిస్తుంది. రూపం తెలిసిన తర్వాత ఇరుకైన మద్దతు ప్రవాహం దాదాపు ఎప్పుడూ సరిపోతుంది.
చివరగా, సొరంగం పనిచేస్తుంది కానీ అప్లికేషన్ పనిచేయనప్పుడు పొరలను నేరుగా ఉంచండి. గేట్వేకు చేరుకునే ప్యాకెట్లకు ఇంకా ఫార్వార్డింగ్, తిరిగి వెళ్లే మార్గం మరియు వాటిని అంగీకరించే విధానం అవసరం, మరియు వాటిలో ఏదీ ESP నియమం ద్వారా వ్యక్తపరచబడదు. లేని పోర్ట్ నిర్దిష్ట వైఫల్యాన్ని వివరిస్తుంది, ప్రతి IPsec వైఫల్యాన్ని కాదు. నియమ సవరణ మరియు రూటింగ్ తనిఖీని రెండు వేర్వేరు ముగింపులుగా ఉంచండి.
మీరు గమనించిన రూపం, జోడించిన ప్రోటోకాల్ నియమం మరియు తర్వాత చూసిన కౌంటర్ను నమోదు చేయండి. మూడు పంక్తులు, తదుపరి వ్యక్తి మధ్యాహ్నం బదులు ఒక నిమిషంలో పేరు స్థల లోపాన్ని రూటింగ్ లోపం నుండి వేరు చేయగలడు.