అదే సర్వర్ IP, రెండు మార్గాలు: OpenVPN యొక్క బాహ్య ప్రవాహాన్ని గుర్తించడం
VPN సర్వర్ను మినహాయించే హోస్ట్ మార్గం దానికి వెళ్లే HTTPSనూ మినహాయిస్తుంది. బదులుగా గుప్తీకరించిన కవరును గుర్తించండి, ఆపై గుర్తు లేని ట్రాఫిక్కు సొరంగాన్ని ఇవ్వండి.
సాధారణ లూప్ రక్షణ ఒక హోస్ట్ మార్గం: VPN సర్వర్ యొక్క పబ్లిక్ చిరునామాకు ట్రాఫిక్ను అప్లింక్ ద్వారా బయటకు పంపండి, తద్వారా గుప్తీకరించిన సెషన్ ఎప్పుడూ తన సొంత సొరంగంలోకి ప్రవేశించదు. ఇది అదే సర్వర్పై ఉన్న వెబ్ సేవను సొరంగం ద్వారా చేరుకోవాలనుకునే క్షణం వరకు పనిచేస్తుంది, ఎందుకంటే మినహాయింపు గమ్యస్థానంపై ఆధారపడి ఉంటుంది మరియు గమ్యస్థానం అదే. బయటపడే మార్గం గమ్యస్థానం ప్రకారం వర్గీకరించడం ఆపి ఏ సాకెట్ ప్యాకెట్ను పంపింది అని వర్గీకరించడం ప్రారంభించడం.
వేరు చేయాలనుకునే రెండు ప్రవాహాలతో ప్రారంభించండి
ఒక ప్రవాహం గుప్తీకరించిన OpenVPN రవాణా స్వయంగా, అది అప్లింక్ ద్వారా బయటకు వెళ్లాలి, లేకపోతే సొరంగం తన సొంత బాహ్య కనెక్షన్ను మోస్తుంది. మరొకటి అదే పబ్లిక్ చిరునామాకు వెళ్లే సాధారణ HTTPS అభ్యర్థన, దానిని సొరంగం లోపల ఉంచాలనుకుంటున్నారు, తద్వారా అది సొరంగ మూలం నుండి సేవను చేరుతుంది. అదే గమ్యం, చాలా సందర్భాలలో అదే పోర్ట్ నంబర్, భిన్నమైన అవసరమైన మార్గం.
ఈ వివరణలో 10.90.0.10 వద్ద ఉన్న క్లయింట్ tun1 ద్వారా ఉంది, సర్వర్ పబ్లిక్ చిరునామా 198.51.100.25, మరియు ప్రధాన పట్టిక తాకబడలేదు; దాని డిఫాల్ట్ మార్గం సాధారణ అప్లింక్ వైపు చూపుతుంది. సర్వర్ వైపు కూడా లోతట్టు మార్గంలో వెబ్ సేవను అంగీకరించాలి మరియు ట్రాఫిక్ను సొరంగ మూలానికి తిరిగి పంపాలి; పబ్లిక్ చిరునామాకు ప్యాకెట్ పంపడం సర్వర్ లిజనర్ లేదా ఫైర్వాల్ విధానాన్ని రద్దు చేయదు.
ఏదైనా మార్చే ముందు హోస్ట్ యొక్క ప్రస్తుత నియమాలను నమోదు చేయండి మరియు మరెవరూ ఉపయోగించని విలువలను ఎంచుకోండి: ఒక గుర్తు, ఒక పట్టిక సంఖ్య మరియు మూడు నియమ ప్రాధాన్యతలు. ఈ కనెక్షన్ గుండా వెళ్లని తిరిగి వెళ్లే మార్గాన్ని ఉంచుకోండి, ఎందుకంటే ఇక్కడి పొరపాటు బ్రౌజర్ ట్యాబ్ను పగలగొట్టడం కాకుండా మీ స్వంత దూర ప్రవేశాన్ని తీసివేస్తుంది.
కవరును మోసే సాకెట్ను గుర్తించండి
క్లయింట్ కాన్ఫిగరేషన్ తన గుప్తీకరించిన బయటకు వెళ్లే ప్యాకెట్లకు గుర్తును పొందుతుంది మరియు తానే మార్గాలను ఇన్స్టాల్ చేయడం ఆపేస్తుంది, తద్వారా ప్రత్యామ్నాయ విధానమే మార్గాలను నిర్ణయించే ఏకైక విషయం అవుతుంది:
mark 42
route-noexec
disable-dco
దశాంశ 42 అనేది హెక్సాడెసిమల్ 0x2a, మరియు హెక్స్ రూపమే రౌటింగ్ నియమాలు సరిపోల్చేది. link-options సూచన mark ను Linux లో గుప్తీకరించిన బయటకు వెళ్లే ప్యాకెట్లకు వర్తించేదిగా వివరిస్తుంది, అంటే మీరు మార్గాన్ని నియంత్రించాల్సిన అదే సాకెట్. డేటా ఛానెల్ ఆఫ్లోడ్ను ఆపివేయడం ఈ ఉదాహరణను వినియోగదారు-స్పేస్ మార్గంలో ఉంచుతుంది, అక్కడ గుర్తు ప్రవర్తన వివరించినదే.
route-noexec OpenVPN యొక్క స్వయంచాలక మార్గ జోడింపు మరియు తొలగింపును అణచివేస్తుంది. అవి ఉన్న చోట ఏమీ ఇన్స్టాల్ చేయదు, కాబట్టి ఈ క్షణం నుండి మార్గాల యజమాని సొరంగానికి అవసరమైన ప్రతి మార్గాన్ని నిర్వహించాలి. మార్పు తర్వాత ఏదైనా ప్రైవేట్ గమ్యం మాయమైతే, అది లేని ప్రత్యామ్నాయ విధానం, గుర్తులో లోపం కాదు.
ఇలా చేస్తున్నప్పుడు 198.51.100.25 కోసం ప్రధాన పట్టికలో హోస్ట్ మార్గాన్ని ఉంచవద్దు. అలాంటి మార్గం డిజైన్ సన్నగిల్లచేయాలనుకునే అదే మినహాయింపును తిరిగి తీసుకువస్తుంది, మరియు క్రింది ఏ విధానాన్ని అడగకముందే అది HTTPS ప్రవాహానికి గెలుస్తుంది.
మిగతావన్నీ సొరంగ పట్టికకు పంపండి
సొరంగ ఇంటర్ఫేస్ ఉనికిలో ఉండి తన చిరునామాను కలిగి ఉన్నప్పుడు, విధానం ఇలా కనిపిస్తుంది:
ip -4 route add default dev tun1 src 10.90.0.10 table 47100
ip -4 rule add priority 20000 lookup main suppress_prefixlength 0
ip -4 rule add priority 20001 not fwmark 0x2a lookup 47100
ip -4 rule add priority 20002 not fwmark 0x2a unreachable
మొదటి నియమం హోస్ట్ యొక్క నిర్దిష్ట మార్గాలను కనిపించేలా ఉంచుతుంది, ఆమోదించిన స్థానిక నెట్వర్క్ సహా, అదే సమయంలో ఈ శోధనకు ప్రధాన పట్టిక యొక్క డిఫాల్ట్ మార్గాన్ని కనిపించనిదిగా చేస్తుంది. ఆ భేదం ముఖ్యం: డిఫాల్ట్ను అణచివేయడం పట్టికను పట్టించుకోకపోవడం వంటిది కాదు, మరియు మీకు ఇంకా అవసరమైన స్థానిక మినహాయింపులు ఇదే కారణంగా మనుగడ సాగిస్తాయి. ఆ మినహాయింపులను ఒక్కొక్కటిగా చదవండి, ఫలితం సార్వత్రిక అత్యవసర స్విచ్ అని భావించకుండా.
గుర్తు లేని ట్రాఫిక్ తర్వాత సొరంగ పట్టికలో పడుతుంది, సొరంగ మూలాన్ని తీసుకుని VPN ద్వారా బయటకు వెళుతుంది. గుర్తించిన ట్రాఫిక్ తదుపరి రెండు నియమాలపై fwmark పరీక్షలో విఫలమై జాబితాలో క్రింద ఉన్న సాధారణ ప్రధాన శోధన వైపు కొనసాగుతుంది, అక్కడ అప్లింక్ డిఫాల్ట్ మార్గం ఇంకా ఉంది. చివరి unreachable నియమమే సొరంగ మార్గం లేనప్పుడు గుర్తు లేని ప్రవాహం నిశ్శబ్దంగా అప్లింక్పై తిరిగి పడకుండా నిరోధిస్తుంది. ఎంపికకర్త ప్రారంభం నుండి ముగింపు వరకు గుర్తు, మరియు గమ్య చిరునామా ఎప్పుడూ నిర్ణయంలోకి రాదు.
ఆ రక్షకుడిని డిస్కనెక్ట్ల మధ్య స్థానంలో ఉంచండి, మరియు దానిని మిగతా విధానంతో పాటు ఇన్స్టాల్ చేయండి, చేతితో కాదు. ఇంటర్ఫేస్తో మాయమయ్యే నియమం విధానం కాదు, యాదృచ్ఛికం. సొరంగం పడిపోయినప్పుడు విధానాన్ని తొలగించడం వైఫల్య విధానాన్ని “నిరోధించబడింది” నుండి “లీక్”కు మారుస్తుంది, మరియు తర్వాత గడువు ముగిసే పాత సొరంగ మార్గం తప్పు ఇంటర్ఫేస్ ద్వారా బయటకు వెళ్లిన ట్రాఫిక్ కంటే వివరించడానికి చాలా సులభమైన సమస్య.
తిరిగి వెళ్లే మార్గం కూడా అదే గుర్తును చూడనివ్వండి
బయటకు వెళ్లే గుర్తులు యంత్రాంగంలో సగం మాత్రమే, మరియు ఇదే చాలా పునరుత్పత్తులు వదిలివేసే భాగం. గుప్తీకరించిన సెషన్కు ప్రతిస్పందనలు అప్లింక్పై వస్తాయి మరియు మూలం వచ్చిన మార్గంలోనే తిరిగి పంపబడుతుందా అని అడిగే తిరిగి-మార్గ ధృవీకరణకు లోబడి ఉంటాయి. సహాయం లేకుండా ఆ శోధన మీ గుర్తు లేని సొరంగ విధానాన్ని వర్తింపజేసి, ప్యాకెట్ తప్పు ఇంటర్ఫేస్పై ఉందని నిర్ణయిస్తుంది.
సవరణ ఫైర్వాల్ యజమాని యొక్కది: బయటకు వెళ్లే కనెక్షన్పై గుర్తును భద్రపరచండి, సరిపోలే లోపలికి వచ్చే ప్యాకెట్లపై దానిని పునరుద్ధరించండి, మరియు సంబంధిత మార్గానికి మూలం-ధృవీకరించిన గుర్తు నిర్వహణను ప్రారంభించండి. OpenVPN సాకెట్ గుర్తును సెట్ చేయడం ఈ మూడింటిలో ఏదీ చేయదు, మరియు క్లయింట్ ఎంపికలను మాత్రమే జాబితా చేసే సూత్రం అసంపూర్ణం. ఆ ఏకీకరణను లిఖితపూర్వకంగా అడగండి, ఎందుకంటే అది డిజైన్లో అతి తక్కువ కనిపించే భాగం మరియు పునర్నిర్మాణంలో అతి సులభంగా పోయే భాగం.
వదులు తిరిగి-మార్గ తనిఖీ కూడా ప్రత్యామ్నాయం కాదు. వదులు మోడ్లో కూడా మూలానికి ఏదో మార్గం ఉండాలి, మరియు మీరు జోడించిన unreachable రక్షకుడు గుర్తు లేని శోధనలకు ఒకదాన్ని ఉద్దేశపూర్వకంగా తొలగిస్తుంది. ఈ డిజైన్పై ఆధారపడే ముందు కనెక్షన్-గుర్తు ఏకీకరణను పూర్తి చేయించి సమీక్ష చేయించండి, మరియు హోస్ట్ ఫిల్టర్లను వేరే ప్రశ్నగా పరిగణించండి: గుర్తు రౌటింగ్ సంకేతం, అనుమతి కాదు. ఏకీకరణ లేకపోతే లక్షణం ఏమిటంటే సెషన్ ఏర్పడి, ప్రతిస్పందనలు రావడం ప్రారంభించగానే నిశ్శబ్దమవడం.
రెండు మార్గ శోధనలతో దీన్ని నిరూపించండి
కెర్నల్ రెండు సందర్భాలకు ఏమి నిర్ణయిస్తుందో పోల్చండి, మరియు నిష్క్రమణ స్థితికి బదులుగా dev మరియు src ఫీల్డ్లను చదవండి:
ip -4 route get 198.51.100.25
ip -4 route get 198.51.100.25 mark 0x2a
మొదటి శోధన సొరంగ మూలంతో tun1కు పరిష్కరించబడాలి, రెండవది అప్లింక్కు. ఇవి కృత్రిమ శోధనలు, కాబట్టి అవి విధానాన్ని నిరూపిస్తాయి, నడుస్తున్న ప్రక్రియను కాదు: నడుస్తున్న క్లయింట్ యొక్క వాస్తవ రవాణా మార్గాన్ని విడిగా ధృవీకరించి, ఆపై ధృవపత్ర ధృవీకరణ ఆన్లో ఉంచి నిజమైన HTTPS అభ్యర్థన చేయండి.
పూర్తయిందని ప్రకటించే ముందు డిజైన్ ఏమి కవర్ చేయదో రాయండి. DNS, IPv6 మరియు నియమాల జీవిత చక్రం ఒక్కొక్కటి స్వంత నిర్ణయం అవసరం, మరియు ఇది IPv4 రౌటింగ్ ఉదాహరణ, పూర్తి గోప్యతా కాన్ఫిగరేషన్ కాదు. దాని విలువ ఎంపికకర్త: కవరుకు అప్లింక్ మినహాయింపు లభిస్తుంది, మరియు అదే చిరునామాలోని సాధారణ సేవ దానిని వారసత్వంగా పొందాల్సిన అవసరం లేదు.