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

పురాణం: ప్లగిన్ మాత్రమే మద్దతు ఉన్న మార్గం

ప్లగిన్ అనేది OpenVPN ప్రక్రియలో లోడ్ అయ్యే షేర్డ్ ఆబ్జెక్ట్, కాబట్టి అది ఆ ప్రక్రియ అందించే ఇంటర్ఫేస్కు సరిపోలాలి. బిల్డ్లు మారుతాయి, ప్యాకేజింగ్ మారుతుంది, పాత ఇంటర్ఫేస్ కోసం కంపైల్ చేసిన లైబ్రరీ లోడ్ కావడానికి నిరాకరిస్తుంది. సర్వర్ కాన్ఫిగరేషన్లో ఏదీ ఆ గ్యాప్ను పూరించలేదు, అందుకే "radiusplugin ఇన్స్టాల్ చేయండి" సలహా ప్రారంభం కాని సర్వర్తో ముగుస్తుంది.

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

ఏ విధానం దాని నిర్మాణంతో ఎక్కువ సురక్షితం కాదు. ఒకటి డీమన్ లోపల విదేశీ కోడ్ను నడుపుతుంది; మరొకటి ఆధారాలను చేతిలో పెట్టుకుని మీ కోడ్ను దాని పక్కన నడుపుతుంది. సరైన ప్రశ్న ఏమిటంటే ఈ రెండు ప్రమాదాలలో ఏది మీరు నిజంగా నిర్వహించగలరు.

ప్లగిన్ ఏమి కలిపింది

ప్లగిన్కు RADIUS హోస్ట్, షేర్డ్ సీక్రెట్, పునఃప్రయత్నాల సంఖ్య మరియు సమయ పరిమితితో దాని స్వంత కాన్ఫిగరేషన్ ఫైల్ ఉంది, సర్వర్ కాన్ఫిగరేషన్ ఒక లైన్లో దానిని సూచించింది. ఆధారాల నిర్వహణ సర్వర్ ప్రక్రియ లోపలే ఉండిపోయింది, అంటే నిర్వాహకుడు రక్షించాల్సిన ప్రక్రియ సరిహద్దును పాస్వర్డ్ ఎప్పుడూ దాటలేదు.

ధర కలయిక. ప్రతి OpenVPN అప్గ్రేడ్ సరిపోలని ఇంటర్ఫేస్ ప్రమాదాన్ని కలిగి ఉంది, ప్యాకేజీని తిరిగి నిర్మించే ప్రతి పంపిణీ ఇకపై సరిపోలని లైబ్రరీని ఉత్పత్తి చేసే ప్రమాదాన్ని కలిగి ఉంది. అది జరిగినప్పుడు, వైఫల్యం బిగ్గరగా మరియు తక్షణమే ఉంటుంది, అదే డిజైన్ యొక్క ఏకైక కరుణ.

అలాంటి ప్లగిన్ ఇప్పటికీ మీ బిల్డ్పై లోడ్ అయితే, అది చిన్న కార్యాచరణ ఉపరితలం కావచ్చు. అది ఏ ఇంటర్ఫేస్ కోసం నిర్మించబడిందో నిర్ధారించండి, మీరు పరీక్షించిన బిల్డ్కు దానిని పిన్ చేయండి, మరియు ఏదైనా అప్గ్రేడ్ను సాధారణ ప్యాకేజీ అప్డేట్ కాకుండా పూర్తి లాగిన్ పరీక్ష అవసరమయ్యే మార్పుగా పరిగణించండి.

స్క్రిప్ట్ హుక్ నిజంగా ఏమి నమ్ముతుంది

హుక్ auth-user-pass-verify మరియు డెలివరీ మెకానిజంతో కాన్ఫిగర్ చేయబడుతుంది: పర్యావరణ వేరియబుల్స్ లేదా తాత్కాలిక ఫైల్. పర్యావరణ రూపంలో OpenVPN కు script-security 3 అవసరం, అది స్క్రిప్ట్లకు పాస్వర్డ్ను బహిర్గతం చేయడానికి అనుమతించే డాక్యుమెంట్ చేసిన స్థాయి. ఆ స్థాయి డిఫాల్ట్ యొక్క ఉద్దేశపూర్వక బలహీనత, మరియు దానిని కారణం జోడించిన అనుమతిగా పరిగణించాలి.

స్క్రిప్ట్ తాకిన ప్రతిదీ ఆ విశ్వాసాన్ని వారసత్వంగా పొందుతుంది. అది root యాజమాన్యంలో ఉండాలి, సమూహం లేదా ఇతరులకు రాయగలిగేది కాకూడదు, సంపూర్ణ మార్గంతో సూచించబడాలి, మరియు నమ్మదగని విలువ shell కు చేరే స్థలం ఏదీ ఉండకూడదు. ప్రతి వేరియబుల్ను కోట్స్లో పెట్టండి, ఊహించని అక్షరాలను తిరస్కరించండి, ఇచ్చిన వినియోగదారు పేరు నుండి ఎప్పుడూ ఆదేశాన్ని నిర్మించవద్దు. ప్రతి లాగిన్ ప్రయత్నంలో root గా నడిచే స్క్రిప్ట్ ఆ నాలుగు లక్షణాల కోసం ఒకసారి సమీక్షకు అర్హం.

ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh

ఫైల్ డెలివరీ రూపం పర్యావరణ వారసత్వ సమస్యను నివారిస్తుంది మరియు పరిమిత అనుమతుల తాత్కాలిక ఫైల్ ద్వారా స్క్రిప్ట్కు ఆధారాలను ఇస్తుంది. మీ క్లయింట్ దానిని మద్దతు ఇస్తే, అది సాధారణంగా మెరుగైన డిఫాల్ట్, విఫలమైనప్పుడు శుభ్రం చేయడానికి మరో వస్తువును జోడిస్తుంది.

నిష్క్రమణ కోడ్లు మీరు తెరిచిన విధంగా విఫలమవుతారా అని నిర్ణయిస్తాయి

స్క్రిప్ట్ యొక్క నిష్క్రమణ స్థితి తీర్పు: సున్నా అంగీకరిస్తుంది, సున్నా కానిది తిరస్కరిస్తుంది. ఇబ్బంది కలిగించే నమూనా RADIUS ప్రతిస్పందనలో నిర్దిష్ట ఆమోద టోకెన్ ఉన్నప్పుడు మాత్రమే అంగీకరించి మిగతా అన్నింటికీ వైఫల్యాన్ని తిరిగి ఇచ్చే shell స్క్రిప్ట్, ఎందుకంటే అది మూడు వేర్వేరు సంఘటనలను ఒకే సమాధానంలో కలిపేస్తుంది. తప్పు పాస్వర్డ్, చేరుకోలేని సర్వర్ మరియు వికృత ప్రతిస్పందన అన్నీ ఒకే తిరస్కరణగా మారుతాయి.

హుక్ అంగీకారం లేదా తిరస్కరణ మాత్రమే తిరిగి ఇవ్వగలిగినా ఆ కేసులను స్క్రిప్ట్లో వేరు చేయండి. బ్యాకెండ్ ఫలితాన్ని విడిగా లాగ్ చేయండి, సమయ పరిమితులు మరియు రవాణా లోపాలపై హెచ్చరించండి, సేవ ఆగిపోవడం వల్ల లేదా వినియోగదారులు తప్పుగా టైప్ చేయడం వల్ల ప్రామాణీకరణ విఫలమవుతోందా అని పర్యవేక్షణలో స్పష్టం చేయండి.

రెండు అలవాట్లు మిగతావాటిని తెలివిగా ఉంచుతాయి. RADIUS అధికారం అయితే, పాస్వర్డ్ తనిఖీ చేయబడే ఏకైక స్థలం అదే ఉండాలి, ఎందుకంటే నీడ పట్టిక ఒకే ప్రశ్నకు రెండు సమాధానాలను సృష్టిస్తుంది, రెండవది ఎవరూ గమనించని దాడి ఉపరితలం. మరియు హుక్ ప్రతి పునఃప్రయత్నంలో మళ్లీ పిలవబడుతుందని గుర్తుంచుకోండి, కాబట్టి నెమ్మదైన స్క్రిప్ట్ మరియు అసహన క్లయింట్ కలిసి, RADIUS వైపు ఆలస్యం లేదా విధానం జోడించకపోతే పాస్వర్డ్ ఊహకు బూస్టర్గా మారతాయి.

ధృవపత్రం పోయినప్పుడు మీరు ఏమి వదులుకుంటారు

ఈ ఆకారపు అనేక అమలులు క్లయింట్ ధృవపత్ర తనిఖీని పూర్తిగా ఆపివేసి, వినియోగదారు పేరు మరియు పాస్వర్డ్ను క్లయింట్ యొక్క మొత్తం దావాగా ఉంచుతాయి. ఆ సెట్టింగ్తో అదృశ్యమయ్యేది ధృవపత్ర ఆధారిత గుర్తింపు. ఛానెల్ గుప్తీకరించబడి ఉంటుంది, కానీ క్లయింట్ను పేర్కొనే ఏకైక విషయం RADIUS తీర్పు. మునుపు ధృవపత్ర విషయంపై ఆధారపడిన ఏదైనా దిగువ ప్రవాహం ఇప్పుడు వినియోగదారు పేరుపై ఆధారపడాలి.

ప్రామాణీకరించబడని సహచరుడు హ్యాండ్షేక్ను పరిశీలించలేక లేదా ముంచెత్తలేకుండా నియంత్రణ ఛానెల్ రక్షణను ఉంచండి, మరియు ప్రతి వినియోగదారు కాన్ఫిగరేషన్ సాధారణ పేరుపై ఆధారపడినప్పుడు username-as-common-name ఉపయోగించండి. నిర్వహిత గేట్వేలు దీన్ని తరచుగా వేరే విధంగా పరిష్కరిస్తాయి, RADIUS తో EAP-TLS మాట్లాడే గేట్వే వద్ద ధృవపత్ర ప్రామాణీకరణను ముగిస్తాయి, ఆ సందర్భంలో ఈ సర్వర్ సూచనలు ఏవీ వర్తించవు. పొరుగు ఉత్పత్తి నమూనాను కాకుండా మీ సొంత ప్లాట్ఫారమ్ డాక్యుమెంట్ చేసే నమూనాను కాపీ చేయండి. ముఖ్యమైన సూచనలు తగినంతగా భిన్నంగా ఉంటాయి, వాటిని కలిపితే పార్స్ అయ్యి తర్వాత ఎవరినీ ప్రామాణీకరించని కాన్ఫిగరేషన్ ఏర్పడుతుంది.

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