OpenVPN యొక్క script-security స్థాయిలు 0 నుండి 3 వరకు, ప్రతి ఒక్కటి ఏమి తెరుస్తుంది
ప్రతి script-security స్థాయి ప్రొఫైల్ ఏమి అమలు చేయగలదో విస్తరిస్తుంది: మొదట నిర్వాహక సహాయకులు, తర్వాత వినియోగదారు స్క్రిప్ట్లు, తర్వాత పరిసరంలో పాస్వర్డ్లు. సూచనలను చదవండి.
డెస్క్టాప్ క్లయింట్లో ప్రొఫైల్ను దిగుమతి చేయండి, మొదటి వైఫల్యం తరచుగా క్లయింట్ పాటించడానికి నిరాకరించే పంక్తి: అది అమలు చేయని స్క్రిప్ట్ హుక్, లేదా చాలా అనుమతించదగినదిగా అది భావించే script-security విలువ. సంఖ్యను పెంచితే సంభాషణ మాయమవుతుంది. కానీ హెచ్చరికను మూసివేయడానికి మాత్రమే దాన్ని ఇవ్వడం వింత, ఎందుకంటే అది ఆ ప్రొఫైల్ మీ యంత్రంలో ఏమి అమలు చేయగలదో కూడా విస్తరిస్తుంది. దిగుమతిని సూచన వరకు అనుసరించండి, నిర్ణయం స్పష్టమవుతుంది.
దిగుమతి సంభాషణ నుండి సూచన వరకు
ప్రొఫైల్ సూచనలతో కూడిన టెక్స్ట్ ఫైల్, ఏ సొరంగం ఏర్పడక ముందే క్లయింట్ వాటిని చదువుతుంది. up, down లేదా tls-verify వంటి సూచన, OpenVPN నిర్దిష్ట క్షణంలో అమలు చేయాల్సిన బాహ్య ప్రోగ్రామ్ను పేర్కొంటుంది. OpenVPN దాన్ని అమలు చేయడానికి సిద్ధంగా ఉందా అనేది script-security అనే ప్రత్యేక సెట్టింగ్, ప్రొఫైల్ సాధారణంగా దాన్ని కూడా సెట్ చేస్తుంది.
కాబట్టి హెచ్చరిక గూఢలిపి లేదా ధృవపత్రాల గురించి కాదు. ఒక కాన్ఫిగరేషన్ ఫైల్ క్లయింట్ను హోస్ట్లో ఏదో అమలు చేయమని అడగడం, మరియు క్లయింట్ తన ప్రస్తుత అనుమతి స్థాయి ఆ అభ్యర్థనను అనుమతిస్తుందా అని తనిఖీ చేయడం గురించి.
ఈ దశలో రెండు వేర్వేరు వైఫల్యాలు ఒకేలా కనిపిస్తాయి. క్లయింట్ ఇవ్వని స్థాయిని అడిగే ప్రొఫైల్ నిరాకరణను ఉత్పత్తి చేస్తుంది. క్లయింట్ ఇచ్చే స్థాయిని అడిగే కానీ స్క్రిప్ట్ లేని ప్రొఫైల్ దానికి బదులుగా అమలు సమయంలో వైఫల్యాన్ని ఉత్పత్తి చేస్తుంది, మద్దతు థ్రెడ్లలో రెండూ కలిపివేయబడతాయి. ఒకటి అనుమతి ప్రశ్న, మరొకటి ప్యాకేజింగ్ ప్రశ్న.
ప్రతి స్థాయి నిజంగా ఏమి తెరుస్తుంది
స్థాయి 0 బాహ్య ప్రోగ్రామ్ కాల్లను పూర్తిగా నిషేధిస్తుంది, ఇది సహాయం లేకుండా తన ఇంటర్ఫేస్ను తానే కాన్ఫిగర్ చేసుకునే క్లయింట్కు సమంజసం, ఆపరేటింగ్ సిస్టమ్ను పిలిచే దానికి అసమంజసం. స్థాయి 1, డిఫాల్ట్, ఇంటర్ఫేస్ మరియు మార్గ కాన్ఫిగరేషన్కు అవసరమైన అంతర్నిర్మిత ఎగ్జిక్యూటబుల్స్ను అనుమతిస్తుంది. ఏ స్థాయీ వినియోగదారు అందించిన ఏదీ అమలు చేయదు.
| Level | What OpenVPN may execute | What it exposes |
|---|---|---|
| 0 | No external programs at all | Interface and route setup must not depend on helpers |
| 1 (default) | Built-in helpers such as ip, ifconfig, route or netsh | Privileged commands the platform already ships |
| 2 | Built-in helpers plus user-defined scripts | Whatever the named script does with the client's privileges |
| 3 | Everything above, plus passwords in environment variables | Credentials visible to child processes and their logs |
స్థాయి 2 ఆసక్తికరమైన సరిహద్దు, ఎందుకంటే ఇది వినియోగదారు నిర్వచించిన స్క్రిప్ట్లను అంగీకరిస్తుంది. ఆ క్షణం నుండి క్లయింట్ అధికారాలు మీరు ఎప్పుడూ చదవకపోయిన కోడ్కు వర్తిస్తాయి, మీరు ఎంచుకోని క్షణాలలో పిలవబడతాయి, కనెక్షన్ వివరాలు ఉన్న పరిసరంలో నడుస్తాయి. స్థాయి 3 మరింత ముందుకు వెళ్లి పరిసర చరాల ద్వారా పాస్వర్డ్లను పంపడానికి అనుమతిస్తుంది, అందుకే మాన్యువల్ దాన్ని సంభావ్యంగా అసురక్షితం అని వివరిస్తుంది.
ఈ సంఖ్యలలో ఏదీ శక్తి సెట్టింగ్ కాదు. స్థాయి 3 ప్రొఫైల్కు స్థాయి 1 కంటే మంచి గుప్తీకరణ లేదు; దానికి పెద్ద అమలు ఉపరితలం మాత్రమే ఉంది, సొరంగం ఒకటే.
ప్రొఫైల్ ఏమి అర్హమో నిర్ణయించండి
స్క్రిప్ట్కు ఏ స్థాయి కావాలో అడగక ముందు అది ఎందుకు ఉందో అడగండి. DNS సెట్టింగ్లను నెట్టే లేదా కనెక్ట్ తర్వాత మార్గాన్ని సరిచేసే హుక్ ఏదో అమలు చేయడానికి చట్టబద్ధమైన కారణం. తాత్కాలిక ఫోల్డర్లో తెలియని బైనరీని పిలిచే హుక్ ఆగడానికి కారణం.
స్క్రిప్ట్ మార్గం స్క్రిప్ట్కు సమానమైన ప్రాముఖ్యత. సాపేక్ష మార్గం క్లయింట్ ఉపయోగించే ఫోల్డర్కు సాపేక్షంగా పరిష్కరించబడుతుంది, వ్రాయగల ఫోల్డర్ ఒకసారి చేసే దిగుమతిని శాశ్వత అమలు స్థానంగా మారుస్తుంది. వినియోగదారు మార్చలేని ఫోల్డర్లోని సంపూర్ణ మార్గాలే ఇష్టపడవలసిన రూపం.
స్క్రిప్ట్లు క్లయింట్ పరిసరాన్ని కూడా వారసత్వంగా పొందుతాయి, అక్కడ ఆధారాలు మరియు కనెక్షన్ మెటాడేటా ఉంటాయి. ఈ వారసత్వమే స్థాయి 3 ను తన పరిసరాన్ని లాగ్ చేసే స్క్రిప్ట్తో కలిపినప్పుడు ప్రమాదకరంగా చేస్తుంది, అందుకే స్క్రిప్ట్లు ప్రారంభించిన క్లయింట్ నుండి డయాగ్నస్టిక్ డంప్ టికెట్లో అతికించే ముందు రెండవ చూపుకు అర్హం. పంచుకునే ముందు పరిసరాన్ని తొలగించండి.
grep -nE 'script-security|^up |^down |tls-verify' client.ovpnఒక విషయాన్ని మార్చండి, తర్వాత విచ్ఛిన్నాన్ని కూడా గమనించండి
ప్రొఫైల్కు నిజంగా స్క్రిప్ట్ అవసరమైతే, స్థాయిని మాత్రమే ఆ ప్రొఫైల్కు మాత్రమే మార్చండి. క్లయింట్ను ముందు భాగంలో వివరమైన అవుట్పుట్తో అమలు చేయండి, సేవా నిర్వాహకుడు వాటిని మింగకుండా స్క్రిప్ట్ స్వంత దోషాలు కనిపిస్తాయి.
openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default
కనెక్షన్ మాత్రమే కాదు, పూర్తి జీవితచక్రాన్ని పరీక్షించండి. విఫలమయ్యే డౌన్ హుక్ మార్గాలను చనిపోయిన సొరంగం వైపు వదిలివేస్తుంది, ఇది కనెక్ట్ అయినట్టు కనిపించే కానీ ఎక్కడికీ చేరని యంత్రాన్ని సృష్టిస్తుంది. మార్పు పూర్తయిందని ప్రకటించే ముందు ఒకసారి మళ్లీ కనెక్ట్ అయి ఒకసారి డిస్కనెక్ట్ అవ్వండి, ప్రతి దాని తర్వాత రూటింగ్ పట్టికను తనిఖీ చేయండి.
అసలు ప్రొఫైల్ కాపీని ఉంచండి. ప్లాట్ఫారమ్ క్లయింట్ అదే స్క్రిప్టింగ్ నమూనాను అమలు చేయకపోతే, దిగుమతి విజయవంతమయ్యే వరకు సూచనలను తొలగించడం సొరంగానికి అవసరమైన DNS లేదా మార్గ ఏకీకరణను తొలగించవచ్చు, ఫలితంగా వచ్చే కనెక్షన్ పరిపూర్ణంగా ప్రామాణీకరించబడుతుంది కానీ ఏదీ పరిష్కరించదు.
నమోదు చేయవలసిన నిర్ణయం సంకుచితం: ఏ స్క్రిప్ట్, ఏ మార్గంలో, ఏ స్థాయిలో అనుమతించబడింది, ఏ ప్రొఫైల్ కోసం. ప్రొఫైల్లో మిగతావన్నీ మారకుండా ఉంటాయి, ఇది సమీక్షకుడు ధృవీకరించగల వాక్యం.