Raspberry Pi-లో VPN గేట్వే: ఒక నెట్వర్క్ కార్డ్ లేదా ప్రత్యేక క్లయింట్ పోర్ట్
ఒక Pi పోర్ట్ ఎంచుకున్న క్లయింట్లకు సేవ చేయగలదు, లేదా రెండవ పోర్ట్ పరికరాలను లోపల బంధించగలదు. వేరుచేయడం, ఫాల్బ్యాక్ విధానం మరియు DNS ఎవరిది అనే దాని ఆధారంగా అమరికను ఎంచుకోండి.
మీ దగ్గర ఒక Pi, పనిచేసే బయటకు వెళ్లే VPN ప్రొఫైల్, మరియు దాని ద్వారా ఇంటర్నెట్ చేరుకోవాల్సిన రెండు పరికరాలు ఉన్నాయి. మొత్తం నిర్మాణాన్ని నిర్ణయించే ప్రశ్న ఏ మార్గదర్శిని అనుసరించాలా అని కాదు, ఎంత వేరుచేయడం కావాలా అని. ఒక పోర్ట్ Pi ను ఆ పరికరాల పక్కన రౌటర్ LAN లో కూర్చోనిచ్చి అదనపు గేట్వేగా పనిచేయనిస్తుంది; రెండవ పోర్ట్ వాటిని Pi ఒకే బయటకు వెళ్లే మార్గంగా ఉన్న విభాగంలో ఉంచనిస్తుంది. ఆ ఎంపిక తర్వాత ప్రతిదీ — DHCP, ఫైర్వాల్ పరిధి, DNS, అంతరాయం సందర్భం — దాని నుండే వస్తుంది.
రెండు అమరికలు నిజంగా ఏమి భిన్నంగా ఉన్నాయి
రెండు నిర్మాణాలు రూటింగ్ చేస్తాయి. తేడా ఏమిటంటే వైరుపై ఇంకా ఎవరు నిలబడి ఉన్నారు మరియు మీ విధానం తప్పుగా ఉన్నప్పుడు ఏమి జరుగుతుంది.
| Layout A: Pi on the ISP LAN | Layout B: dedicated client port | |
|---|---|---|
| Cabling | One Ethernet port, existing switch port | Two interfaces: uplink plus a separate LAN port |
| Can a client bypass the Pi? | Yes, by using the ISP router as its gateway | No, unless the device has another radio or link |
| Who hands out addresses | The ISP router, with a per-client setting or a DHCP option | The Pi, on its own LAN interface only |
| Blast radius of a mistake | Any LAN host, if a rule is too broad | The attached segment |
| Good fit for | One laptop, a console, a temporary test client | Appliances, always-on boxes, untrusted devices |
నిజమైన అక్షం వేరుచేయడం. అమరిక A సలహా రూపం: DHCP ఇచ్చిన గేట్వేను పట్టించుకోకుండా రౌటర్ ఎంచుకునే పరికరం ఎన్క్రిప్షన్ లేకుండానే పనిచేస్తుంది. అమరిక B టోపాలజీతో బలవంతం చేయబడుతుంది, ఎందుకంటే ఎంచుకోవడానికి మరో తదుపరి అడుగు లేదు.
అమరిక A: ఉన్న LAN లో అదనపు గేట్వేగా Pi
ISP రౌటర్ 192.168.50.1, Pi 192.168.50.2, మరియు ఎంచుకున్న క్లయింట్లు Pi వైపు చూస్తాయని అనుకుందాం. ముఖ్యమైనది ఏమిటంటే రెండు వేర్వేరు ప్యాకెట్ ప్రవాహాలు ఒకే కేబుల్ను పంచుకుంటాయి. క్లయింట్ లోపలి ప్యాకెట్ Pi చేరి సొరంగం ద్వారా బయటకు వెళ్లాలి; Pi సొంత ఎన్క్రిప్టెడ్ ప్యాకెట్ VPN భాగస్వామి వైపు అదే కేబుల్ నుండి రౌటర్ వైపు బయటకు వెళ్లాలి. అవి ఒకే ఇంటర్ఫేస్పై వ్యతిరేక దిశల్లో ప్రయాణిస్తాయి, వేరే చికిత్స అవసరం.
Pi కి దాని చిరునామాను ఇన్స్టాల్ చేసిన నెట్వర్క్ మేనేజర్ ద్వారా ఇవ్వండి, పరికరం కోసం దానితో పోరాడే పాత ఇంటర్ఫేస్ ఫైల్ వంటకం ద్వారా కాదు. తర్వాత క్లయింట్లను సెట్ చేయండి: ఒక పరికరంలో స్థిర గేట్వే, లేదా 192.168.50.2 ను రౌటర్గా ఇచ్చే DHCP రిజర్వేషన్. రెండు పరికరాల కోసం రౌటర్ మొత్తం DHCP పరిధిని మార్చకండి, మరియు క్లయింట్ ఆ ఎంపికను గౌరవిస్తుందని ఊహించకండి — నిర్ధారించండి.
బలహీనత నిర్మాణాత్మకం, సరిదిద్దలేనిది. ఆ విభాగంలోని ఏ క్లయింట్ అయినా 192.168.50.1 వైపు చూపి స్పష్టంగా బయటకు వెళ్లవచ్చు, రెండవ ఇంటర్ఫేస్ లేదా సెల్యులర్ రేడియో ఉన్న పరికరం మీ అమలు మార్గాన్ని పూర్తిగా వదిలేస్తుంది. ఆ వాక్యం సంబంధిత పరికరానికి ఆమోదయోగ్యం కాకపోతే, సమాధానం ఇప్పటికే మీ దగ్గర ఉంది: అమరిక B వాడండి.
అమరిక B: ప్రత్యేక పోర్ట్ పరికరాలను లోపల బంధిస్తుంది
ఇక్కడ Pi పైలింక్లో గేట్వే 192.168.50.1 తో 192.168.50.2 ను ఉంచుకుని, కనెక్ట్ అయిన పరికరాల కోసం రెండవ ఇంటర్ఫేస్లో 10.20.0.1/24 తీసుకుంటుంది. ఇప్పుడు Pi రెండు నెట్వర్క్లు ఉన్న రౌటర్, కనెక్ట్ అయిన విభాగానికి సరిగ్గా ఒకే నిష్క్రమణ ఉంది.
కట్టుబడే ముందు పరిధిని మిగతా అన్నింటితో తనిఖీ చేయండి: సొరంగం సొంత సబ్నెట్, ఇతర సైట్-టు-సైట్ ప్రిఫిక్స్లు, మరియు VPN ద్వారా చేరగలిగే ప్రతిదీ. దూరపు LAN తో ఢీకొనే 10.20.0.0/24 ఒక సాయంత్రం నిర్ధారణ తీసుకునే సగం-పనిచేసే ఫలితాన్ని ఇస్తుంది. రెండవ పోర్ట్ USB అడాప్టర్ అయితే, అది మద్దతు పొందుతుందని నిర్ధారించి, రీబూట్ తర్వాత పునర్వ్యవస్థీకరణ మీ LAN చిరునామాను కదిలించకుండా దాని పేరును నెట్వర్క్ మేనేజర్లో పిన్ చేయండి.
DHCP శ్రోతను ఆ ఇంటర్ఫేస్లో మాత్రమే నడపండి. పైలింక్లో సమాధానం ఇచ్చే సర్వర్ ISP రౌటర్తో పోటీపడుతుంది మరియు మీ విభాగపు చిరునామాలను ఇంటి మిగతా భాగానికి ఇస్తుంది. దాన్ని LAN ఇంటర్ఫేస్కు కట్టి, ప్రకటించిన పరిధికి పరిమితం చేసి, Pi సొంత చిరునామాను పూల్ వెలుపల ఉంచండి.
ఫార్వర్డింగ్, అనువాదం మరియు వైఫల్యంలో మూసివేత నియమం
నాలుగు విషయాలను తరచుగా ఒకటిగా వివరిస్తారు, కానీ ఒకటి కాదు. ఫార్వర్డింగ్ ఆన్ చేయడం (net.ipv4.ip_forward=1) కెర్నల్కు ఇంటర్ఫేస్ల మధ్య ప్యాకెట్లను కదిలించవచ్చని మాత్రమే చెబుతుంది; అది దానంతట అదే ఏమీ అనుమతించదు, ఏ మార్గాన్ని హామీ ఇవ్వదు. నిష్క్రమణను ఎంచుకోవడం రూటింగ్ నిర్ణయం. ప్యాకెట్ను అనుమతించడం forward చైన్లో విధాన నిర్ణయం. దాని మూలాన్ని తిరిగి రాయడం postrouting నిర్ణయం. మొదటిది మాత్రమే చేసే నిర్మాణం క్లయింట్ ట్రాఫిక్ను సంతోషంగా పైలింక్ ద్వారా బయటకు పంపే Pi ను ఇస్తుంది.
అనుమతిని మీరు ఉద్దేశించిన మూలాలకు మరియు ట్రాఫిక్ వాడాల్సిన ఇంటర్ఫేస్కు పరిమితం చేయండి, తిరిగి వచ్చే మార్గాన్ని మరియు Pi కి అవసరమైన గమ్యాలను చేర్చండి. తర్వాత ప్రదాత మీ LAN ప్రిఫిక్స్ను మీ వైపు తిరిగి రూట్ చేయకపోతే సొరంగం నిష్క్రమణలో అనువాదం చేయండి. nftables మాన్యువల్ ఫార్వర్డింగ్, స్థానిక అవుట్పుట్ మరియు మూల-అనువాదాన్ని వేర్వేరు కార్యకలాపాలుగా పరిగణిస్తుంది, ఇది ఇక్కడ సరైన ఆలోచనా నమూనా.
సాధారణ వైఫల్యం భౌతిక ఇంటర్ఫేస్పై విస్తృత masquerade నియమం. అప్పుడు ట్రాఫిక్ ISP మార్గం ద్వారా ఇంటర్నెట్ చేరుతుంది, కానీ క్లయింట్ వైపు నుండి అది పనిచేస్తున్న VPN లాగానే కనిపిస్తుంది. అది ఏమీ నిరూపించదు. అనువాదాన్ని ప్రకటించిన నిష్క్రమణకు కట్టి ఉంచండి, నియమాలను హోస్ట్ ఇప్పటికే వాడే ఫైర్వాల్లోనే ఉంచండి, పంచుకున్న postrouting చైన్ను ఖాళీ చేసే పోటీ నియమ సముదాయాన్ని జోడించడం బదులు.
తర్వాత సొరంగం లేకపోవడాన్ని నిర్వహించండి. విస్తృత డిఫాల్ట్ మార్గాన్ని ఇన్స్టాల్ చేసే క్లయింట్ ప్రొఫైల్ అంటే సొరంగం పడిపోయినప్పుడు సాధారణ డిఫాల్ట్ తిరిగి రావచ్చు మరియు క్లయింట్ ట్రాఫిక్ నిశ్శబ్దంగా పైలింక్కు తిరిగి వెళ్తుంది అని కూడా. ఎక్కడ స్పష్ట పాఠ్యానికి తిరిగి వెళ్లడం ఆమోదయోగ్యం కాదో, అక్కడ forward విధానం క్లయింట్ నుండి పైలింక్కు ట్రాఫిక్ను స్పష్టంగా తిరస్కరించాలి, VPN మార్గం పోయిన స్థితిలో. దాన్ని ఊహగా కాదు, తిరస్కరణ నియమంగా రాయండి. Pi సొంత ఎన్క్రిప్టెడ్ రవాణా VPN భాగస్వామి వైపు ప్రత్యేక local-output ప్రవాహం మరియు అనుమతించబడి ఉండాలి, లేకపోతే సొరంగం ఎప్పటికీ తిరిగి రాలేదు.
DNS మరియు IPv6 కి వాటి సొంత సమాధానం కావాలి
క్లయింట్లు Pi ను పరిష్కర్తగా వాడితే, వారు స్థానిక శ్రోతను చేరుకుంటారు మరియు Pi కొత్త ప్రశ్నను ప్రారంభిస్తుంది. ఆ పై ప్రశ్న క్లయింట్ల కోసం మీరు రాసిన forward నియమాన్ని కాదు, Pi సొంత మార్గాన్ని అనుసరిస్తుంది, కాబట్టి సొరంగం ద్వారా మాత్రమే వెళ్లే క్లయింట్ మార్గం మరియు నేరుగా బయటకు వెళ్లే పరిష్కర్త — ఇది ఎలాంటి లోప సందేశం లేని లీక్. ఉద్దేశపూర్వకంగా నిర్ణయించండి: సొరంగం ద్వారా చేరే పరిష్కర్త, లేదా నేరుగా అంగీకరించే స్థానిక పరిష్కర్త, మరియు Pi సొంత అవుట్పుట్ విధానాన్ని ఆ నిర్ణయానికి సరిపోల్చండి.
IPv6 మళ్లీ ప్రత్యేక సందర్భం. IPv4 కోసం forward నియమం IPv6 గురించి ఏమీ పరిమితం చేయదు, మరియు పైలింక్పై రౌటర్ ప్రకటనలు Pi కి, మరియు దాని ద్వారా కనెక్ట్ అయిన విభాగానికి, మీ విధానాన్ని దాటవేసే రెండవ డిఫాల్ట్ను ఇవ్వగలవు. ఒకటి అదే సూత్రంలో IPv6 కి దాని సొంత రక్షిత మార్గాన్ని ఇవ్వండి, లేదా క్లయింట్ విభాగంలో దాన్ని స్పష్టంగా పరిమితం చేసి అలా చెప్పండి.
నమ్మే ముందు సరిహద్దును పరీక్షించండి
నాలుగు ప్రత్యేక తనిఖీల తర్వాతే నిర్మాణాన్ని అంగీకరించండి, ఎందుకంటే ఆకర్షించే ఒకే పరీక్ష — ఒక క్లయింట్లో బ్రౌజర్ తెరవడం — అనేక విరిగిన స్థితుల్లో ఉత్తీర్ణమవుతుంది.
ఒక నిజమైన క్లయింట్ సొరంగం ద్వారా ఇంటర్నెట్ చేరుతుందని నిర్ధారించండి, తర్వాత అదే క్లయింట్ సొరంగం కింద ఉన్నప్పుడు ఇంటర్నెట్ చేరలేదని నిర్ధారించండి. DNS పరిష్కారం పనిచేస్తుందని మరియు ప్రశ్న మీరు ఉద్దేశించిన చోటి నుండి బయటకు వెళ్తుందని నిర్ధారించండి. సొరంగం పునఃప్రారంభం తర్వాత కూడా Pi సొంత రవాణా పనిచేస్తుందని, మరియు పునరుద్ధరణకు యంత్ర రీబూట్ అవసరం లేదని నిర్ధారించండి. చివరగా, మీరు ఎంచుకోని పరికరాన్ని తనిఖీ చేయండి: అమరిక A లో అది సాధారణంగా పనిచేస్తూ ఉండాలి, అమరిక B లో అది ఆ విభాగంలో ఉండకూడదు.
- రెండు పోర్ట్లు మరియు తిరస్కరణ నియమం అమలును ఇస్తాయి; ఒక పోర్ట్ మరియు DHCP ఎంపిక సలహా ఇస్తాయి.
- తప్పు ఇంటర్ఫేస్పై అనువాదం విజయంలా కనిపిస్తుంది, అది కాదు.
- Pi సొంత ట్రాఫిక్, DNS మరియు IPv6 ప్రతిదానికీ నిర్ణయం కావాలి, ఊహ కాదు.