chroot-ను వదిలేయాలా లేదా iproute2-ను జైలులో కాపీ చేయాలా?
అసంపూర్ణ జైలు బూట్ సమయంలో కాదు, ప్రారంభమైన తర్వాత విఫలమవుతుంది. కఠినీకరణను సడలించడం లేదా బైనరీ ఫైల్లు, లైబ్రరీలను కొత్త రూట్లోకి కాపీ చేయడం మధ్య ఎంచుకోండి.
సేవ ప్రారంభమవుతుంది, క్లయింట్ కనెక్ట్ అవుతుంది, మరియు సర్వర్ వైపు ఎప్పుడూ మార్గం కనిపించదు. లేదా డీమన్ ప్రారంభానికి నిరాకరించి, నిర్వహించలేని ఆదేశాన్ని పేర్కొంటుంది. రెండు ఫలితాలు ఒకే మూడు పంక్తులను అనుసరిస్తాయి, అవి సాధారణంగా కఠినీకరణ మార్గదర్శిని నుండి కలిసి కాపీ చేయబడతాయి: అప్రివిలేజ్డ్ ఖాతాకు మారడం, సమూహాన్ని వదలడం మరియు ఫైల్ సిస్టమ్ రూట్ను మార్చడం. మూడింటిలో ఒకటి మాత్రమే ఫైల్లను దాచుతుంది, వాటిలో ఒకటి మాత్రమే రూటింగ్ పట్టికను మార్చే హక్కును తొలగిస్తుంది. వాటిని వేరు చేయడమే మీకు నిజంగా ఏ పంక్తి కావాలో తెలుసుకోవడానికి మార్గం.
జైలు ఏమి తొలగిస్తుంది, డీమన్కు ఇంకా కావాల్సినది
రూట్ మార్పు ప్రారంభమైన తర్వాత జరుగుతుంది, కాబట్టి డీమన్ ఇప్పటికే తెరిచినవన్నీ ఉంచుకొని తర్వాత తెరిచేవన్నీ కోల్పోతుంది. ఆ బిందువు తర్వాత కనెక్షన్ నడిపే ఏ సహాయకుడైనా కొత్త రూట్ లోపల ఉండాలి, అది లోడ్ చేసే భాగస్వామ్య లైబ్రరీలతో పాటు. కాన్ఫిగరేషన్ ఫైల్ మరియు ధృవపత్రంతో నిర్మించిన జైలులో రెండూ ఉండవు.
అప్రివిలేజ్డ్ ఖాతాకు మారడం వేరే పరిమితి. rootను వదులుకున్న ప్రక్రియ బైనరీ సరిగ్గా అక్కడే ఉన్నా మార్గాలను మార్చలేకపోవచ్చు లేదా ఇంటర్ఫేస్ను పైకి తేలేకపోవచ్చు, కాబట్టి రెండు వైఫల్యాలను విడిగా నిర్ధారించాలి.
ఏ మరమ్మతు కావాలో మూడు షరతులు నిర్ణయిస్తాయి
మొదటి షరతు మీ బిల్డ్ మార్గాలను ఎలా ఇన్స్టాల్ చేస్తుంది అనేది. కొత్త OpenVPN వెర్షన్లు ఇంటర్ఫేస్ మరియు రూటింగ్ పట్టికను ప్రక్రియ లోపల కాన్ఫిగర్ చేస్తాయి, పాత ప్యాకేజీలు మరియు స్వంత సెటప్లు బాహ్య సాధనాలపై లేదా up మరియు down స్క్రిప్ట్లపై ఆధారపడతాయి. లాగ్ ఆదేశాన్ని పేర్కొంటే బాహ్య సాధనం జోక్యం ఉంది మరియు జైలు దాన్ని దాచుతోంది. లాగ్ బదులుగా అనుమతి లోపాన్ని చూపిస్తే సమస్య ఖాతాలో ఉంది.
రెండవది నిర్వహణ. కాపీ చేసిన బైనరీలు ఉన్న జైలును అవి అందించే ప్యాకేజీ అప్గ్రేడ్ అయిన ప్రతిసారీ తాజా చేయాలి, లేకపోతే మొదటి అప్గ్రేడ్ వెనుక విరిగిన టన్నెల్ను వదిలివేస్తుంది. మూడవది, ఒక నిర్దిష్ట నియంత్రణకు నిజంగా chroot అవసరమా అనేది; అవసరం నిజానికి అధికారాల విభజన గురించి అయితే, ఖాతా మార్పు ఒక్కటే సరిపోతుంది.
| Signal in the log | Other side of the boundary | Repair direction |
|---|---|---|
| Command not found after startup | Binary and its libraries absent inside the new root | Populate the jail, or drop the chroot line |
| Operation not permitted | Account lost the privilege to edit routes | Keep the account privileged, or pre-create routes elsewhere |
| No such device | Jail lacks the tun device node | Create the node inside, or open it before the root change |
పని చేసే జైలులో ఏమి ఉండాలి
ఆదేశాలు నడిపే జైలుకు బైనరీ, అది లింక్ అయ్యే ప్రతి లైబ్రరీ, మరియు డీమన్ ఆలస్యంగా తెరిచే ఏ పరికర నోడ్ అయినా కావాలి. భాగాలను కాపీ చేసి VPN లేకుండా పరీక్షించండి:
ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up
మొదటి ఆదేశం ఆధారాలను జాబితా చేస్తుంది, అదే ప్రజలు దాటవేసేది. లైబ్రరీ కనుగొనలేని కాపీ చేసిన బైనరీ లేని బైనరీ కంటే వేరే సందేశంతో విఫలమవుతుంది, రెండూ క్లయింట్ వైపు నుండి చదివినప్పుడు OpenVPN లోపంలా కనిపిస్తాయి. జైలు లోపల ఆదేశాన్ని చేతితో నడపడం సేవను పునఃప్రారంభించకుండా లోపాన్ని పునరుత్పత్తి చేస్తుంది.
కాన్ఫిగరేషన్, ధృవపత్రాలు మరియు ఏదైనా CRL కూడా జైలులోకి కాపీ చేయండి, ఎందుకంటే డీమన్ ప్రారంభమైన తర్వాత మళ్లీ చదవాలని ఆశించే ఫైల్ రూట్ మారిన తర్వాత కనిపించదు. ఏమి కాపీ చేశారో రాసుకోండి, ఎందుకంటే నెట్వర్క్ ప్యాకేజీ తదుపరి అప్గ్రేడ్ అసలైనవాటిని భర్తీ చేసి జైలును పాత కాపీపై వదిలేస్తుంది.
బదులుగా కఠినీకరణను తగ్గించండి
ఏదో మార్గదర్శిని అలా చెప్పిందని మాత్రమే జైలు ఉన్నట్లయితే, ఖాతా పరిమితులను ఉంచి ఆ ఒక్క పంక్తిని తీసేయడం సమర్థనీయమైన ఫలితం. డీమన్ తన ఫైల్ సిస్టమ్ దృశ్యాన్ని ఉంచుకొని సమస్యను కోల్పోతుంది, అధికారాల తగ్గుదల దీర్ఘకాలిక ప్రక్రియ నుండి rootను ఇప్పటికీ తొలగిస్తుంది.
ఏమి మిగిలింది, ఎందుకు అని రాయండి. నోట్ లేకుండా నిశ్శబ్దంగా నియంత్రణను కోల్పోయిన కాన్ఫిగరేషన్ కఠినీకరణ ఇలాగే జారిపోతుంది, తదుపరి ఆడిట్ పంక్తి ఎందుకు అదృశ్యమైంది అని అడుగుతుంది.
ఎంచుకునే ముందు మూడు పంక్తులను విభజించండి
కాన్ఫిగరేషన్ను కాపీ చేయండి, మూడు ఆదేశాలను నిలిపివేయండి మరియు క్లయింట్ కనెక్ట్ అవుతుందని, ఆశించిన మార్గాలు కనిపిస్తాయని నిర్ధారించండి. తర్వాత ఖాతా పంక్తులను మాత్రమే మళ్లీ ప్రారంభించండి, ఆపై chroot ఒక్కటే. టన్నెల్ విరిగే దశ సరిహద్దును చూపిస్తుంది, మరియు ఎప్పుడూ కారణం కాని జైలును తిరిగి నిర్మించడాన్ని తప్పించుకుంటారు.
అది మళ్లీ రూట్ చేసినప్పుడు, ఎక్కువ వివరంతో ఒక క్లయింట్ సెషన్ను నడపండి మరియు ఆదేశాన్ని లేదా విఫలమైన అనుమతిని పేర్కొనే పంక్తిని చదవండి. ఆ పంక్తి క్లయింట్ చివరిలో నివేదించే టైమ్అవుట్ కంటే ఎక్కువ విలువైనది.