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

విరిగింది టన్నెల్ కాదు

రెండు చివరలు ప్రైవేట్ పరిధుల్లో కూర్చున్నాయి, ఇది సాధారణ సందర్భం, తప్పు కాన్ఫిగరేషన్ కాదు. 10.8.0.6 వంటి చిరునామా టన్నెల్ లోపల నిజమైనది మరియు మరెక్కడా లేదు, కాబట్టి LANకి అక్కడ ఏదైనా పంపడానికి కారణం లేదు. రూటింగ్‌ను తాకే ముందు, సేవ టన్నెల్ లోపల ఏమైనా చేరుకోగలదా అని నిర్ధారించుకోండి: క్లయింట్‌లో ss -ltn, వినేవాడు 127.0.0.1, LAN ఇంటర్‌ఫేస్ లేదా టన్నెల్ చిరునామాకు కట్టుబడి ఉన్నారా అని చూపిస్తుంది. loopbackకు మాత్రమే కట్టుబడిన డీమన్ తనను తప్ప ఎవరికీ సమాధానం ఇవ్వదు, ఏ రూట్, DNAT లేదా పోర్ట్ ఫార్వార్డింగ్ దాన్ని మార్చదు.

పోర్ట్ 80 లేదా 443లోని ప్రాక్సీ వేరే దృశ్యమానత కలిగిన వేరే సాధనం. ఇది ప్యాకెట్లను కాదు, అభ్యర్థనలను కదిలిస్తుంది, కాబట్టి ముడి డేటాబేస్ కనెక్షన్‌కు ఇది తప్పు పొర, మరియు దాని వైపు చేయి చాపడమే ఎవరూ ఏదీ కొలవక ముందే ఈ సమస్య మూడు సాధనాల లోతుకు చేరే మార్గం.

మార్గం ఆకారం: చెరువు ఎక్కడ ఉందో LANకి చెప్పండి

LAN గేట్‌వేపై స్థిరమైన రూట్, LAN మరియు టన్నెల్ చెరువు ఒకదానిపై ఒకటి రాకపోతే అత్యంత స్వచ్ఛమైన సమాధానం. చెరువును టన్నెల్‌ను ముగించే యంత్రం వైపు తిప్పండి:

ip route add 10.8.0.0/24 via 192.168.1.12
route add -p 10.8.0.0 mask 255.255.255.0 192.168.1.12   # Windows, persistent

అది ఒక దిశను మాత్రమే సరిచేస్తుంది, అందుకే ఈ మార్పు యొక్క సగం పూర్తయిన సంస్కరణలు పురోగతిగా కనిపిస్తాయి. టన్నెల్ వైపుకు కూడా సరిపోయే సగం కావాలి, లేకపోతే సమాధానం క్లయింట్‌ను దాని స్వంత డిఫాల్ట్ రూట్ ద్వారా విడిచి మార్గంలో చనిపోతుంది:

push "route 192.168.1.0 255.255.255.0"

సర్వర్ వెనుక కాదు, ఒక క్లయింట్ వెనుక ఉన్న సబ్‌నెట్‌కు, సర్వర్‌కు సిస్టమ్ రూట్ మరియు ఆ క్లయింట్ ఫైల్‌లో iroute ఎంట్రీ (client-config-dir కింద) రెండూ కావాలి. iroute లేకుండా, OpenVPN కి ప్రిఫిక్స్ ఉందని తెలుసు, ఏ క్లయింట్ దాన్ని కలిగి ఉందో తెలియదు: ప్యాకెట్లు వస్తాయి, డీమన్‌కు వాటిని సరిపోల్చడానికి ఏమీ ఉండదు.

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

NAT ఆకారం: లోపలికి DNAT, మరియు అందరూ దాటవేసే SNAT లైన్

LAN గేట్‌వేను తాకలేనప్పుడు, లేదా సరిగ్గా ఒక పోర్ట్‌ను ప్రచురించాలనుకున్నప్పుడు, VPN హోస్ట్‌పై అనువాదం LANలో ఎలాంటి రూట్ లేకుండా పని చేస్తుంది. పోర్ట్‌ను ప్రచురించండి, ఫార్వార్డ్ చేయండి, మరియు టన్నెల్‌లోకి వెళ్లే మార్గంలో మూలాన్ని అనువదించండి:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 10.8.0.6:3000
iptables -A FORWARD -i eth0 -o tun0 -p tcp -d 10.8.0.6 --dport 3000 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -d 10.8.0.6 -p tcp --dport 3000 -j SNAT --to-source 10.8.0.1

మూడవ లైన్ మాయమయ్యే లైన్. దాన్ని దాటవేస్తే క్లయింట్ అసలు LAN చిరునామాను మూలంగా చూస్తుంది, తన డిఫాల్ట్ రూట్ ద్వారా సమాధానం ఇస్తుంది, మరియు ఆ సమాధానం LAN వైపు తిరిగి వెళ్లకుండా టన్నెల్‌లోకి వెళ్తుంది. కనెక్షన్ నిలిచిపోతుందా అనేది మీరు ఎప్పుడూ ప్లాన్ చేయని రూటింగ్‌పై ఆధారపడి ఉంటుంది. SNATతో క్లయింట్ సర్వర్ టన్నెల్ చిరునామాను చూస్తుంది, కాబట్టి సమాధానం టన్నెల్ ద్వారా తిరిగి అనువాదాన్ని రద్దు చేయగల ఏకైక హోస్ట్ వరకు వెళ్తుంది.

వినియోగదారు ఫర్మ్‌వేర్ తన సొంత గొలుసు పేర్లను ఉపయోగిస్తుంది మరియు ఆ అనువాదాన్ని మీ కోసం సృష్టించదు. Tomatoలో, లోపలికి వచ్చే నియమం WANPREROUTING లో పడుతుంది, తర్వాత wanin వంటి ఫిల్టర్ గొలుసులో, మరియు పూర్తిగా కనిపించే నియమాల సమితికి ఇప్పటికీ చేతితో రాసిన POSTROUTING లైన్ కావాలి. అది ఫర్మ్‌వేర్ బగ్ కాదు; అది లోపలికి వచ్చే ట్రాఫిక్ కోసం మాత్రమే రాసిన నియమాల సమితి.

సరైనదిగా కనిపించే నియమం ప్యాకెట్‌ను ఎందుకు పడేస్తుంది

ఈ వైఫల్యాలలో చాలావరకు మీరు చూస్తున్న నియమంలో లేవు. ఈ క్రమంలో నాలుగు విషయాలను తనిఖీ చేయండి, మరియు నిలబడని మొదటి దానిలో ఆగండి:

  • గొలుసు క్రమం. iptables -I పైన చేరుస్తుంది మరియు -A చివరలో జోడిస్తుంది, కాబట్టి మునుపటి అనుమతించే లేదా నిరోధించే నియమం మొదట నిర్ణయిస్తుంది.
  • తప్పు గొలుసు. రౌటర్‌కే చిరునామా చేసిన ట్రాఫిక్ INPUT గుండా వెళ్తుంది, మరియు ఫార్వార్డ్ చేసిన ట్రాఫిక్ దాన్ని ఎప్పుడూ తాకదు. ఒక సేవను ప్రచురించడానికి రెండింటిలోనూ నియమాలు కావాల్సి రావచ్చు.
  • దిశ జెండాలు. -i tun0 క్లయింట్ల నుండి వచ్చే ట్రాఫిక్‌తో సరిపోలుతుంది మరియు -o tun0 వారి వైపు వెళ్లే ట్రాఫిక్‌తో. తప్పు జెండాతో REJECT మీరు ఉద్దేశించని దాన్ని నిరోధిస్తుంది.
  • మూల పరిమితి. ఒక క్లయింట్ చిరునామాను అంగీకరించే ఫార్వార్డింగ్ ఆ క్లయింట్ నుండి పని చేస్తుంది మరియు ప్రతి ఇతర మూలాన్ని ఒక్క మాట కూడా చెప్పకుండా పడేస్తుంది.

సున్నా ప్యాకెట్ కౌంటర్ ఉన్న నియమం మార్గంలోనే లేదు, మరియు కౌంటర్లను చదవడం తప్పు-గొలుసు సమస్యను తప్పు-నియమ సమస్య నుండి వేరు చేసే వేగవంతమైన మార్గం.

LANలో ఏదీ మార్చలేనప్పుడు స్థానిక ఫార్వార్డింగ్

SSH స్థానిక ఫార్వార్డింగ్ మొత్తం ప్రశ్నను దాటవేస్తుంది. దానికి LANలో రూట్, క్లయింట్ ఫైర్‌వాల్ సహకారం, మరియు ఎక్కడా ప్రచురించిన పోర్ట్ అవసరం లేదు:

ssh -N -f -L 3000:10.8.0.6:3000 user@vpn-host

అప్పుడు సేవ టన్నెల్ ఉంచిన యంత్రం localhost:3000 పై కనిపిస్తుంది, మరెక్కడా కాదు. అదే పరిమితి: ఒక పనిస్థలం, ఒక పోర్ట్, మరియు ఏదైనా తిరిగి ప్రారంభించకపోతే ఫార్వార్డింగ్ సెషన్‌తో పాటు చనిపోతుంది. స్టేజింగ్ డేటాబేస్‌ను తనిఖీ చేసే నిర్వాహకుడికి ఇది సరైన సాధనం. ఇతరులు చేరుకోవాల్సిన కెమెరా లేదా స్కానర్‌కు ఇది కాదు, ఎందుకంటే ప్రతి వినియోగదారుకు తన సొంత ఫార్వార్డింగ్ కావాలి.

మరో నియమం జోడించే ముందు రెండు దిశలను తనిఖీ చేయండి

అనువాదం జాడలను వదిలిస్తుంది, వాటిని చదవడం ఊహించడం కంటే మేలు. VPN హోస్ట్‌పై, conntrack -L అనువాదం జరిగిందా అని చూపిస్తుంది, iptables -t nat -L -n -v కౌంటర్లు కదిలాయా అని చూపిస్తుంది, మరియు tcpdump -ni any port 3000 ఏ మూల చిరునామా నిజంగా వచ్చిందో చూపిస్తుంది. క్లయింట్‌పై, ss -ltn వినేవాడు టన్నెల్ చేరగలిగే చిరునామాలో ఉన్నారని నిర్ధారిస్తుంది.

తర్వాత మీరు ఉంచుకునే ఆకారాన్ని ఎంచుకోండి. ఒక ప్రచురిత పోర్ట్, మొత్తం చెరువుకు ఒక రూట్, మరియు ఒక నిర్వాహకుడికి ఒక ఫార్వార్డింగ్ — ఇవి మూడు వేర్వేరు నిబద్ధతలు, వాటిని కలపడమే పని చేసే సెటప్‌ను ఆరు నెలల తర్వాత ఎవరూ వివరించలేని దానిగా మార్చే మార్గం. ఏ చిరునామా ఎక్కడి నుండి చేరుకోగలదో రాసి పెట్టుకోండి, ఇది డీబగ్ చేసే తదుపరి వ్యక్తి టన్నెల్ నుండి కాదు, సమాధానం నుండి మొదలు పెడతారు.

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