OpenVPN ద్వారా పబ్లిక్ ప్రిఫిక్స్: తిరిగి వచ్చే మార్గాన్ని సరిచేయండి
రూట్ చేసిన పబ్లిక్ ప్రిఫిక్స్ OpenVPN TUN లింక్ను దాటగలదు, కానీ ప్రతిస్పందనలు అదే మార్గంలో తిరిగి రావాలి. ప్రిఫిక్స్ను డెలిగేట్ చేయండి మరియు పబ్లిక్ మూల చిరునామాను కాపాడండి.
టన్నెల్ పైకి వస్తుండగా మరియు క్లయింట్ ఆవైపు పింగ్ చేస్తుండగా చూడండి, ఆ తర్వాత VPN వెనుక ఉండాల్సిన పబ్లిక్ చిరునామా మరెక్కడి నుండో ప్రతిస్పందిస్తుంది, లేదా అసలు ప్రతిస్పందించదు. ఈ లక్షణానికి సాధారణంగా సైఫర్ లేదా సర్టిఫికెట్లతో ఎటువంటి సంబంధం ఉండదు. ప్రొవైడర్ రూట్ చేసిన ప్రిఫిక్స్ IP మార్గంగా అందించబడుతుంది, మరియు దాన్ని OpenVPN ద్వారా తీసుకెళ్లడం అంటే ఆ మార్గాన్ని రెండు స్థాయిలలో తిరిగి సృష్టించడం మరియు తిరిగి వచ్చే మార్గంలో మూల చిరునామాను కాపాడటం. WAN ను బ్రిడ్జ్ చేయాల్సిన అవసరం లేదు, మరియు చిరునామాను ఇంటర్ఫేస్కు జోడించడం పై మార్గాన్ని సృష్టించదు.
ప్రిఫిక్స్ మొదట మీ వైపు రూట్ కావాలి
బ్లాక్ ఎలా అందించబడుతుందో ప్రొవైడర్ను అడగండి. మీ సర్వర్ ప్రధాన చిరునామాకు రూట్ చేసిన ప్రిఫిక్స్, ప్రొవైడర్ WAN సెగ్మెంట్పై నేరుగా చేరుకోవాలని ఆశించే చిరునామలకంటే వేరైనది. ఇక్కడి డిజైన్తో మొదటి మోడల్ మాత్రమే పనిచేస్తుంది.
ప్రొవైడర్ 198.51.100.64/28 ను మీ ప్రవేశ సర్వర్కు రూట్ చేస్తే, ఆ పరిధి ప్యాకెట్లు సర్వర్కు చేరి, మీరు వాటిని ఫార్వర్డ్ చేయకపోతే అక్కడే ఆగిపోతాయి. ప్రొవైడర్ బదులుగా పరిధిని మీ అప్లింక్కు బ్రిడ్జ్ చేస్తే, సర్వర్ దానికి ARP ప్రతిస్పందన ఇవ్వాలి, అది మరో సమస్య.
OpenVPN ను తాకే ముందు డెలివరీ మోడల్ను పరీక్షించండి: బయటి నుండి బ్లాక్లోని ఒక చిరునామాకు పింగ్ చేసి ఏ ఇంటర్ఫేస్ దాన్ని స్వీకరిస్తుందో చూడండి. ఏమీ రాకపోతే ఏ టన్నెల్ కాన్ఫిగరేషన్ సహాయపడదు. చిరునామా WAN పై నేరుగా ప్రతిస్పందిస్తే, ప్రొవైడర్ రూట్ చేయడం బదులు బ్రిడ్జ్ చేస్తున్నారు, మరియు క్రింది డిజైన్ వర్తించదు.
రెండు రూటింగ్ స్థాయిలు: కెర్నల్ మార్గం మరియు iroute
OpenVPN కు ప్రిఫిక్స్ రెండు చోట్ల అవసరం. ప్రిఫిక్స్ టన్నెల్ పరికరానికి చెందుతుందని కెర్నల్ తెలుసుకోవాలి, తద్వారా ఫార్వర్డ్ చేసిన ప్యాకెట్లు డిఫాల్ట్ మార్గానికి బదులు OpenVPN లోకి ప్రవేశిస్తాయి. ఏ ప్రామాణీకృత క్లయింట్ ప్రిఫిక్స్ను కలిగి ఉందో OpenVPN కూడా తెలుసుకోవాలి, అది క్లయింట్-నిర్దిష్ట డైరెక్టరీలోని iroute నమోదు.
సర్వర్ వైపు మార్గం ఇలా ఉంటుంది, ప్రిఫిక్స్ మరియు మాస్క్ కేటాయింపుకు సరిపోలాలి:
ip route add 198.51.100.64/28 dev tun0
క్లయింట్-నిర్దిష్ట కాన్ఫిగరేషన్ యాజమాన్యాన్ని కేటాయిస్తుంది. దాన్ని క్లయింట్ సర్టిఫికెట్ సాధారణ పేరుతో పేరు పెట్టిన CCD ఫైల్లో ఉంచండి, మరియు సర్వర్ నిజంగా ఆ డైరెక్టరీని చదువుతుందని నిర్ధారించుకోండి:
iroute 198.51.100.64 255.255.255.240
OpenVPN యొక్క రూట్ చేసిన నెట్వర్క్లపై డాక్యుమెంటేషన్ రెండు స్థాయిలను మరియు అవి ఎందుకు వేరుగా ఉన్నాయో వివరిస్తుంది. iroute లేని కెర్నల్ మార్గం ప్యాకెట్లను యజమాని లేకుండా టన్నెల్కు పంపుతుంది, OpenVPN వాటిని విసిరేస్తుంది. కెర్నల్ మార్గం లేని iroute ప్యాకెట్లను సర్వర్ డిఫాల్ట్ మార్గంలో వదిలేస్తుంది. రెండు తప్పులు క్లయింట్ వైపు నుండి విరిగిన టన్నెల్లా కనిపిస్తాయి.
సేవా చిరునామా ఎక్కడ ఉంటుంది
డెలిగేట్ చేసిన ప్రిఫిక్స్ టన్నెల్ స్వంత చిరునామలతో సమానం కాదు. కావాలంటే లింక్ను ప్రైవేట్ స్పేస్ నుండి నంబర్ చేయండి, మరియు పబ్లిక్ సేవా చిరునామాను సేవ నిజంగా నడిచే చోట ఉంచండి.
సేవను స్థానికంగా ముగించే Linux క్లయింట్లో ఒకే హోస్ట్ చిరునామా సరిపోతుంది:
ip address add 198.51.100.70/32 dev lo
ప్రిఫిక్స్ మరింత VM హోస్ట్ లేదా మరో LAN కు రూట్ అయితే, బదులుగా ఆ దిగువ మార్గాన్ని మరియు దాని తిరిగి వచ్చే మార్గాన్ని కాన్ఫిగర్ చేయండి. బ్లాక్లోని ప్రతి చిరునామాను VPN క్లయింట్కు కేటాయించాల్సిన అవసరం లేదు, అది తర్వాత ఘర్షణలను సృష్టిస్తుంది.
తిరిగి వచ్చే మార్గంలో పబ్లిక్ మూలాన్ని ఉంచండి
డెలిగేట్ చేసిన ప్రిఫిక్స్ నుండి ప్రతిస్పందన టన్నెల్ ద్వారా బయటకు వెళ్లి ప్రొవైడర్ మార్గాన్ని చేరుకోవాలి. దూరపు హోస్ట్ దాన్ని తన ISP ద్వారా పంపితే, మూల చిరునామా నకిలీగా కనిపిస్తుంది, మరియు ప్రొవైడర్ లేదా గమ్యం దాన్ని విసిరేస్తుంది. పరిష్కారం మూలం ఆధారిత నియమం లేదా ప్రత్యేక రూటింగ్ పట్టిక, మరింత విస్తృత NAT కాదు. అది లేకుండా సేవ టన్నెల్ భాగస్వామి నుండి పనిచేసి మిగతా అన్ని చోట్లా విఫలమవుతుంది.
ప్రవేశ సర్వర్లో విస్తృత masquerade నియమం సాధారణ నిందితుడు. అది పబ్లిక్ మూలాన్ని సర్వర్ ప్రధాన చిరునామాకు తిరిగి రాస్తుంది, మరియు క్లయింట్ నిజమైనదాన్ని ఎప్పటికీ చూడదు:
iptables -t nat -S POSTROUTING
NAT ను అవసరమైన ప్రైవేట్ VPN క్లయింట్లకు మాత్రమే పరిమితం చేయండి మరియు డెలిగేట్ చేసిన ప్రిఫిక్స్ను అనువదించకుండా వదిలేయండి. ఆ తర్వాత సర్వర్ ప్రిఫిక్స్ను ఏమైనా ఫార్వర్డ్ చేస్తుందా అని నిర్ధారించుకోండి, ఎందుకంటే డిఫాల్ట్-నిరాకరణ ఫార్వర్డ్ గొలుసు దాన్ని నిశ్శబ్దంగా విసిరేస్తుంది.
నమ్మే ముందు రెండు దిశలను ధృవీకరించండి
ధృవీకరణ ఒకటి కాదు, నాలుగు పరిశీలనలు. ప్రొవైడర్ మార్గం వస్తుంది, కెర్నల్ ప్రిఫిక్స్ను టన్నెల్కు పంపుతుంది, OpenVPN దాన్ని సరైన క్లయింట్కు ఆపాదిస్తుంది, మరియు ప్రతిస్పందన పబ్లిక్ మూలంతో సురక్షితంగా తిరిగి వస్తుందని నిర్ధారించుకోండి. ప్రతి పరిశీలనకు దాని స్వంత ఆదేశం ఉంది, కాబట్టి వైఫల్యం మొత్తం డిజైన్ కాకుండా ఒక పొరను సూచిస్తుంది. ప్రతి కాన్ఫిగరేషన్ మార్పు తర్వాత వాటిని అదే క్రమంలో అమలు చేయండి.
డెలిగేట్ చేసిన చిరునామా ఏ మార్గం తీసుకుంటుందో కెర్నల్ను అడగండి, మరియు అభ్యర్థన నడుస్తున్నప్పుడు టన్నెల్ను గమనించండి:
ip route get 198.51.100.70
sudo tcpdump -ni tun0 host 198.51.100.70
రివర్స్-పాత్ ఫిల్టరింగ్ సరైన మార్గాన్ని రద్దు చేయగలదు. టన్నెల్లో మరియు అప్లింక్లో ప్రభావవంతమైన సెట్టింగ్ను తనిఖీ చేయండి, మరియు కఠిన మోడ్ తాను వచ్చిన ఇంటర్ఫేస్కు మూలం సరిపోలని ట్రాఫిక్ను తిరస్కరిస్తుందని గుర్తుంచుకోండి:
sysctl net.ipv4.conf.tun0.rp_filter net.ipv4.conf.eth0.rp_filter
చివరగా, వైఫల్య సందర్భాన్ని పరీక్షించండి. టన్నెల్ను ఆపి, పబ్లిక్ ప్రిఫిక్స్ సాధారణ అప్లింక్ ద్వారా లీక్ కాకుండా నిర్ధారించుకోండి. VPN పునరుద్ధరణ హోస్ట్ తెరిచే పోర్టులను విస్తరించకుండా సేవను తిరిగి తీసుకురావాలి.