ప్రతి పంక్తికి ఒక OpenVPN సూచన, మరియు పంక్తి చుట్టడం ఎందుకు అబద్ధం చెబుతుంది
మెత్తగా చుట్టిన స్క్రీన్ ఫైల్లో కొత్త పంక్తి కాదు. పాడైన విభాగాన్ని అపరిచితుడి టెంప్లేట్తో భర్తీ చేయడానికి ముందు నిజమైన పంక్తి విరామాలను తనిఖీ చేయండి.
ముందు ప్రారంభమయ్యే ప్రొఫైల్ ఇప్పుడు ఎంపిక లోపంతో విఫలమవుతుంది, మరియు పార్సర్ ఉదహరించే పంక్తి స్క్రీన్పై పూర్తిగా సమంజసంగా కనిపిస్తుంది. ఇదే ఉడుత: కాన్ఫిగరేషన్ ఫైల్ భౌతిక పంక్తుల జాబితా, ప్రతిదానిలో ఒక ఎంపిక కీవర్డ్ మరియు దాని ఆర్గ్యుమెంట్లు ఉంటాయి, మరియు ఎడిటర్ చుట్టిన పొడవైన పంక్తి బైట్లను చూసే వరకు రెండు పంక్తులలా కనిపిస్తుంది. నెట్వర్క్, సర్టిఫికేట్ లేదా టన్నెల్ ఈ వైఫల్య విభాగంలో పాల్గొనవు. స్క్రీన్పై ఒకేలా కనిపించే రెండు పంక్తులు ఒక బైట్ తేడా ఉండవచ్చు.
క్రింది తనిఖీలను వరుసగా చేయండి మరియు మొదటి వైఫల్యం వద్ద ఆగండి. ప్రతి ఒక్కటి తదుపరి దాని కంటే చవకైనది, మరియు ప్రతి ఒక్కటి వేరే వివరణను తొలగిస్తుంది.
ఒక పంక్తి, ఒక సూచన
పార్సర్ ఒక పంక్తిని చదువుతుంది, మొదటి పదాన్ని ఎంపికగా తీసుకుంటుంది మరియు మిగిలినదాన్ని ఆ ఎంపిక ఆర్గ్యుమెంట్లుగా పరిగణిస్తుంది. కాబట్టి cert server.crt port 1194 వంటి పంక్తి రెండు వరుస సూచనలు కాదు. ఇది మూడు ఆర్గ్యుమెంట్లతో ఒక cert ఎంపిక, మరియు మూడవది ఎంపిక అంగీకరించే ఫైల్ పేరు కాదు. లోపాన్ని తప్పిపోయిన పంక్తి విరామంగా చదవడం సరైనది; దాన్ని తప్పిపోయిన సూచనగా చదవడం సరైనది కాదు.
# malformed: one option, three arguments
cert server.crt port 1194
# intended: two options, one argument each
cert server.crt
port 1194
ఆ రెండు సరిదిద్దిన పంక్తులు ఒక ముక్క, కాన్ఫిగరేషన్ కాదు. సరిహద్దు ఎక్కడ ఉందో చూపడానికి అవి ఉన్నాయి. ప్రొఫైల్లోని ప్రతి సాధారణ సూచన అదే నియమాన్ని పాటిస్తుంది, మరియు రెండింటిని కలిపే పంక్తి ఆర్గ్యుమెంట్ లోపాన్ని లేదా ఎంపిక ఊహించని విలువను ఇస్తుంది.
పంక్తి విరామం నిజమైనదని నిరూపించండి
ఎడిటర్లు ప్రదర్శన కోసం చుడతాయి. కొన్ని పేస్ట్ చేసేటప్పుడు గట్టి విరామాలను కూడా చేరుస్తాయి, కొన్ని చేయవు, కాబట్టి అదే దృశ్య ఫలితం రెండు చాలా భిన్నమైన ఫైళ్ల నుండి రావచ్చు. ఏదైనా మార్చడానికి ముందు పంక్తుల చివరలను చూపించి పంక్తులను లెక్కించండి. కొలవడం ఒక ఆదేశం ఖర్చు; ఊహించడం ఒక సాయంత్రం ఖర్చు.
cat -A /etc/openvpn/server/lab.conf | sed -n '10,20p'
awk 'NR>=10 && NR<=20 {printf "%d:%s\n", NR, $0}' /etc/openvpn/server/lab.conf
మొదటి అవుట్పుట్లో ప్రతి నిజమైన పంక్తి విరామం $ గుర్తుగా కనిపిస్తుంది, కాబట్టి చుట్టిన కానీ విభజించని పంక్తి మీ స్క్రీన్ చుట్టే చోట ఎలాంటి గుర్తును చూపదు. రెండవ ఆదేశం సంఖ్యల పంక్తులను ముద్రిస్తుంది, ఇది పార్సర్ నివేదించే దాన్ని ఫైల్ కలిగి ఉన్న దానితో పోల్చడానికి వేగవంతమైన మార్గం.
అదనపు ఖాళీలు కూడా సూచనను సృష్టించవు. ఇండెంటేషన్ అలంకారం, మరియు ఖాళీతో ప్రారంభమయ్యే పంక్తి అదే ఏకైక ఎంపికగా ఉంటుంది. లోప సందేశం పంక్తి సంఖ్యను చూపితే, అది చెందిన పేరాను కాదు, ఆ పంక్తినే చదవండి.
సూచనల జాబితా కాదు, మార్గాన్ని ఉదహరించండి
ఉద్ధరణ చిహ్నాలు ఖాళీలు ఉన్న ఆర్గ్యుమెంట్ల కోసం, ఎంపికలను సమూహపరచడానికి కాదు. ఖాళీ ఉన్న సర్టిఫికేట్ మార్గానికి దాని స్వంత ఉద్ధరణ చిహ్నాలు కావాలి; ఒక జత ఉద్ధరణ చిహ్నాలను పంచుకునే రెండు సూచనలు ఇప్పటికీ ఒక పాడైన పంక్తి.
cert "/etc/openvpn/pki/lab certs/server.crt"
key "/etc/openvpn/pki/lab certs/server.key"
ఎంపికల పేర్లను లేఅవుట్తో పాటే తనిఖీ చేయండి, ఎందుకంటే కలిపిన పంక్తి ఎప్పుడూ లేని నమ్మదగినలా కనిపించే టోకెన్ను సృష్టించవచ్చు. పోర్ట్ సూచన port; అదే ఆలోచనకు వేరేది వాడే ప్రొఫైల్ పంక్తి పరిమితులను సరిదిద్దిన తర్వాత కూడా విఫలమవుతుంది. పేరు అపరిచితంగా కనిపిస్తే, ఫోరమ్ ఉదాహరణకు బదులు మీరు నడిపే సంస్కరణ ఎంపికల జాబితాతో పోల్చండి.
ఇన్లైన్ బ్లాక్లను బ్లాక్లుగా ఉంచండి
ప్రొఫైల్లు సర్టిఫికేట్లను మరియు కీలను ఇన్లైన్గా ఉంచుకోవచ్చు, ఆ బ్లాక్లు డేటా, కాన్ఫిగరేషన్ కాదు. బ్లాక్ లోపలి PEM పంక్తులు చదును చేయాల్సిన, మళ్లీ ఇండెంట్ చేయాల్సిన లేదా కలపాల్సిన ఎంపికలు కావు, మరియు బ్లాక్ గుర్తులు తమ స్వంత పంక్తులపై ఉండాలి.
ఇన్లైన్ బ్లాక్ను అపారదర్శక ప్రాంతంగా పరిగణించండి: చుట్టూ ఉన్న ఎంపిక పంక్తులను సరిదిద్దండి, దాని కంటెంట్ను బైట్-బై-బైట్ తాకకుండా వదిలేయండి, మరియు దాన్ని ఎప్పుడూ పబ్లిక్ మద్దతు థ్రెడ్లో పేస్ట్ చేయవద్దు. ఫార్మాటింగ్ సాధనం బ్లాక్ను తిరిగి రాసి ఉంటే, చేతితో మరమ్మతు చేయడానికి బదులు మీ PKI నుండి పునరుద్ధరించండి.
టెంప్లేట్ కాదు, అతి చిన్న విభాగాన్ని సరిదిద్దండి
ఆకర్షణీయమైన మరమ్మతు ఏమిటంటే మొత్తం ఫైల్ను „పనిచేసే” ట్యుటోరియల్ కాన్ఫిగరేషన్తో భర్తీ చేయడం. ఇది ఒక పాడైన పంక్తిని ఎవరూ సమీక్షించని విధాన మార్పుల సమితితో మారుస్తుంది: వేరే DH పారామితులు, కంప్రెషన్ సెట్టింగ్లు, సైఫర్ ఎంపికలు, రెట్టింపు శ్రోతలు. అసలు సమస్య చిన్నది మరియు స్థానికమైనది, మరియు భర్తీ ఆ రెండూ కాదు.
ప్రొఫైల్ను రక్షిత వర్కింగ్ ఫైల్లోకి కాపీ చేయండి, ఆ కాపీలో పంక్తి పరిమితులను సరిదిద్దండి, మరియు సేవ యొక్క సాధారణ యజమాని దాన్ని లోడ్ చేయనివ్వండి. తర్వాత ఇన్స్టాన్స్ ప్రారంభించి మొదటి లోపాన్ని, ఉంటే, మొదటి నుండి చదవండి.
openvpn --config /etc/openvpn/server/lab.conf --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
పార్సింగ్ దశ దాటిన తర్వాత తదుపరి వైఫల్యం పదజాలం గురించి కాదు, ఫైల్, సర్టిఫికేట్ లేదా సైఫర్ గురించి ఉంటుంది, మరియు అది నిజమైన పురోగతి. వర్కింగ్ కాపీని మరియు ఏమి కలిపారనే దానిపై ఒక పంక్తి గమనికను ఉంచండి; అదే పేస్ట్ అదే బృందంలోని మరొకరికి మళ్లీ జరుగుతుంది.