ఈ పోస్ట్లో, హార్డ్వేర్ సెక్యూరిటీ కీలను ఆఫ్లైన్లో ఉపయోగించి SSH హోస్ట్లకు అత్యవసర యాక్సెస్ కోసం మేము ఒక విధానాన్ని అభివృద్ధి చేస్తాము. ఇది కేవలం ఒక విధానం మాత్రమే మరియు మీరు మీ అవసరాలకు అనుగుణంగా దీనిని స్వీకరించవచ్చు. మేము మా హోస్ట్ల కోసం SSH ప్రమాణపత్ర అధికారాన్ని హార్డ్వేర్ సెక్యూరిటీ కీలో నిల్వ చేస్తాము. సింగిల్ సైన్-ఆన్ SSHతో సహా దాదాపు ఏదైనా OpenSSHలో ఈ పథకం పని చేస్తుంది.
ఇదంతా దేనికి? బాగా, ఇది చివరి రిసార్ట్ ఎంపిక. ఇది కొన్ని కారణాల వల్ల మరేమీ పని చేయనప్పుడు మీ సర్వర్కు ప్రాప్యతను పొందడానికి మిమ్మల్ని అనుమతించే బ్యాక్డోర్.
అత్యవసర యాక్సెస్ కోసం పబ్లిక్/ప్రైవేట్ కీలకు బదులుగా ధృవపత్రాలను ఎందుకు ఉపయోగించాలి?
- పబ్లిక్ కీల వలె కాకుండా, సర్టిఫికెట్లు చాలా తక్కువ జీవితకాలం కలిగి ఉంటాయి. మీరు 1 నిమిషం లేదా 5 సెకన్ల వరకు చెల్లుబాటు అయ్యే ప్రమాణపత్రాన్ని రూపొందించవచ్చు. ఈ వ్యవధి తర్వాత, కొత్త కనెక్షన్ల కోసం సర్టిఫికెట్ నిరుపయోగంగా మారుతుంది. అత్యవసర యాక్సెస్ కోసం ఇది అనువైనది.
- మీరు మీ హోస్ట్లలో ఏదైనా ఖాతా కోసం సర్టిఫికేట్ను సృష్టించవచ్చు మరియు అవసరమైతే, అటువంటి "వన్-టైమ్" సర్టిఫికేట్లను సహోద్యోగులకు పంపవచ్చు.
మీకు ఏమి కావాలి
- రెసిడెంట్ కీలకు మద్దతు ఇచ్చే హార్డ్వేర్ సెక్యూరిటీ కీలు.
రెసిడెంట్ కీలు పూర్తిగా సెక్యూరిటీ కీలో నిల్వ చేయబడిన క్రిప్టోగ్రాఫిక్ కీలు. కొన్నిసార్లు అవి ఆల్ఫాన్యూమరిక్ పిన్ ద్వారా రక్షించబడతాయి. రెసిడెంట్ కీ యొక్క పబ్లిక్ భాగాన్ని సెక్యూరిటీ కీ నుండి ఐచ్ఛికంగా ప్రైవేట్ కీ హ్యాండిల్తో పాటు ఎగుమతి చేయవచ్చు. ఉదాహరణకు, Yubikey 5 సిరీస్ USB కీలు రెసిడెంట్ కీలకు మద్దతు ఇస్తాయి. అవి హోస్ట్కి అత్యవసర యాక్సెస్ కోసం మాత్రమే ఉద్దేశించబడినవి కావడం మంచిది. ఈ పోస్ట్ కోసం నేను ఒక కీని మాత్రమే ఉపయోగిస్తాను, కానీ మీరు బ్యాకప్ కోసం అదనంగా ఒక కీని కలిగి ఉండాలి. - ఆ కీలను నిల్వ చేయడానికి సురక్షితమైన స్థలం.
- ఓపెన్ఎస్ఎస్హెచ్ వెర్షన్ 8.2 లేదా అంతకంటే ఎక్కువ మీ స్థానిక కంప్యూటర్లో మరియు మీరు అత్యవసర యాక్సెస్ను కలిగి ఉండాలనుకుంటున్న సర్వర్లలో. ఉబుంటు 20.04 OpenSSH 8.2తో పంపబడుతుంది.
- (ఐచ్ఛికం, కానీ సిఫార్సు చేయబడింది) సర్టిఫికేట్లను తనిఖీ చేయడానికి CLI సాధనం.
శిక్షణ
ముందుగా, మీరు హార్డ్వేర్ సెక్యూరిటీ కీలో ఉండే ధృవీకరణ అధికారాన్ని సృష్టించాలి. కీని చొప్పించి, అమలు చేయండి:
$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]
వ్యాఖ్యగా (-C) నేను సూచించాను [ఇమెయిల్ రక్షించబడింది]కాబట్టి మీరు ఈ సర్టిఫికేట్ అధికారం ఏ భద్రతా కీకి చెందినదో మర్చిపోవద్దు.
యుబికీకి కీని జోడించడంతో పాటు, రెండు ఫైల్లు స్థానికంగా ఉత్పత్తి చేయబడతాయి:
- sk-user-ca, సెక్యూరిటీ కీలో నిల్వ చేయబడిన ప్రైవేట్ కీని సూచించే కీ హ్యాండిల్,
- sk-user-ca.pub, ఇది మీ సర్టిఫికేట్ అధికారం కోసం పబ్లిక్ కీ అవుతుంది.
కానీ చింతించకండి, Yubikey తిరిగి పొందలేని మరొక ప్రైవేట్ కీని నిల్వ చేస్తుంది. అందువలన, ఇక్కడ ప్రతిదీ నమ్మదగినది.
హోస్ట్లలో, రూట్గా, మీ SSHD కాన్ఫిగరేషన్కు (/etc/ssh/sshd_config) కింది వాటిని జోడించండి (మీరు ఇప్పటికే కలిగి ఉండకపోతే):
TrustedUserCAKeys /etc/ssh/ca.pub
ఆపై హోస్ట్లో, పబ్లిక్ కీ (sk-user-ca.pub)ని /etc/ssh/ca.pubకి జోడించండి
డెమోన్ని పునఃప్రారంభించండి:
# /etc/init.d/ssh restart
ఇప్పుడు మనం హోస్ట్ని యాక్సెస్ చేయడానికి ప్రయత్నించవచ్చు. అయితే ముందుగా సర్టిఫికెట్ కావాలి. సర్టిఫికేట్తో అనుబంధించబడే కీ జతని సృష్టించండి:
$ ssh-keygen -t ecdsa -f emergency
సర్టిఫికెట్లు మరియు SSH జతలు
కొన్నిసార్లు పబ్లిక్/ప్రైవేట్ కీ జతకి ప్రత్యామ్నాయంగా సర్టిఫికెట్ని ఉపయోగించడం ఉత్సాహం కలిగిస్తుంది. కానీ వినియోగదారుని ప్రమాణీకరించడానికి ఒక సర్టిఫికేట్ మాత్రమే సరిపోదు. ప్రతి సర్టిఫికేట్ దానితో అనుబంధించబడిన ప్రైవేట్ కీని కూడా కలిగి ఉంటుంది. అందుకే మనం సర్టిఫికేట్ను జారీ చేసే ముందు ఈ "అత్యవసర" కీ జతని రూపొందించాలి. ముఖ్యమైన విషయం ఏమిటంటే, మేము సంతకం చేసిన సర్టిఫికేట్ను సర్వర్కు చూపుతాము, ఇది మనకు ప్రైవేట్ కీని కలిగి ఉన్న కీ జతని సూచిస్తుంది.కాబట్టి పబ్లిక్ కీ మార్పిడి ఇప్పటికీ సజీవంగా ఉంది. ఇది సర్టిఫికేట్లతో కూడా పనిచేస్తుంది. సర్టిఫికేట్లు సర్వర్ పబ్లిక్ కీలను నిల్వ చేయవలసిన అవసరాన్ని తొలగిస్తాయి.
తరువాత, సర్టిఫికేట్ను సృష్టించండి. నాకు 10 నిమిషాల వ్యవధిలో ఉబుంటు యూజర్ ఆథరైజేషన్ కావాలి. మీరు దీన్ని మీ మార్గంలో చేయవచ్చు.
$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency
మీ వేలిముద్రను ఉపయోగించి సర్టిఫికేట్పై సంతకం చేయమని మిమ్మల్ని అడుగుతారు. మీరు కామాలతో వేరు చేయబడిన అదనపు వినియోగదారు పేర్లను జోడించవచ్చు, ఉదాహరణకు -n ubuntu,carl,ec2-user
అంతే, ఇప్పుడు మీకు సర్టిఫికేట్ ఉంది! తదుపరి మీరు సరైన అనుమతులను పేర్కొనాలి:
$ chmod 600 emergency-cert.pub
దీని తర్వాత, మీరు మీ సర్టిఫికేట్ యొక్క కంటెంట్లను చూడవచ్చు:
$ step ssh inspect emergency-cert.pub
నాది ఇలా కనిపిస్తుంది:
emergency-cert.pub
Type: [email protected] user certificate
Public key: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
Signing CA: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
Key ID: "test-key"
Serial: 0
Valid: from 2020-06-24T16:53:03 to 2020-06-24T17:03:03
Principals:
ubuntu
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
ఇక్కడ పబ్లిక్ కీ అనేది మేము సృష్టించిన అత్యవసర కీ మరియు sk-user-ca అనేది ధృవీకరణ అధికారంతో అనుబంధించబడింది.
చివరగా మేము SSH ఆదేశాన్ని అమలు చేయడానికి సిద్ధంగా ఉన్నాము:
$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$
- మీరు ఇప్పుడు మీ సర్టిఫికేట్ అధికారాన్ని విశ్వసించే హోస్ట్లో ఏ యూజర్ కోసం అయినా సర్టిఫికేట్లను సృష్టించవచ్చు.
- మీరు ఎమర్జెన్సీని తీసివేయవచ్చు. మీరు sk-user-caని సేవ్ చేయవచ్చు, కానీ ఇది సెక్యూరిటీ కీలో కూడా ఉన్నందున మీరు అవసరం లేదు. మీరు మీ హోస్ట్ల నుండి అసలు PEM పబ్లిక్ కీని కూడా తీసివేయాలనుకోవచ్చు (ఉదాహరణకు ఉబుంటు వినియోగదారు కోసం ~/.ssh/authorized_keysలో) మీరు అత్యవసర యాక్సెస్ కోసం దాన్ని ఉపయోగించినట్లయితే.
అత్యవసర యాక్సెస్: యాక్షన్ ప్లాన్
భద్రతా కీని అతికించి, ఆదేశాన్ని అమలు చేయండి:
$ ssh-add -K
ఇది SSH ఏజెంట్కి సర్టిఫికేట్ అథారిటీ యొక్క పబ్లిక్ కీ మరియు కీ డిస్క్రిప్టర్ను జోడిస్తుంది.
ఇప్పుడు సర్టిఫికేట్ చేయడానికి పబ్లిక్ కీని ఎగుమతి చేయండి:
$ ssh-add -L | tail -1 > sk-user-ca.pub
గడువు తేదీతో ప్రమాణపత్రాన్ని సృష్టించండి, ఉదాహరణకు, ఒక గంట కంటే ఎక్కువ సమయం ఉండదు:
$ ssh-keygen -t ecdsa -f emergency
$ ssh-keygen -Us sk-user-ca.pub -I test-key -n [username] -V -5m:+60m emergency
$ chmod 600 emergency-cert.pub
ఇప్పుడు మళ్ళీ SSH:
$ ssh -i emergency username@host
మీ .ssh/config ఫైల్ కనెక్ట్ చేస్తున్నప్పుడు కొన్ని సమస్యలను కలిగిస్తుంటే, మీరు దాన్ని దాటవేయడానికి -F none ఎంపికతో sshని అమలు చేయవచ్చు. మీరు సహోద్యోగికి సర్టిఫికేట్ పంపవలసి వస్తే, సులభమైన మరియు అత్యంత సురక్షితమైన ఎంపిక
ఈ విధానంలో నేను ఇష్టపడేది హార్డ్వేర్ మద్దతు. మీరు మీ భద్రతా కీలను సురక్షితంగా ఉంచవచ్చు మరియు అవి ఎక్కడికీ వెళ్లవు.
ప్రకటనల హక్కులపై
ఎపిక్ సర్వర్లు అది -
మూలం: www.habr.com