USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా
В మా మునుపటి కథనాలలో ఒకటి కంపెనీల కార్పొరేట్ పోర్టల్స్‌లో రెండు-కారకాల ప్రమాణీకరణ యొక్క ప్రాముఖ్యత గురించి మేము మాట్లాడాము. IIS వెబ్ సర్వర్‌లో సురక్షిత ప్రమాణీకరణను ఎలా సెటప్ చేయాలో చివరిసారి మేము ప్రదర్శించాము.

వ్యాఖ్యలలో, Linux - nginx మరియు Apache కోసం అత్యంత సాధారణ వెబ్ సర్వర్‌ల కోసం సూచనలను వ్రాయమని మమ్మల్ని అడిగారు.

మీరు అడిగారు - మేము వ్రాసాము.

మీరు ప్రారంభించడానికి ఏమి కావాలి?

  • ఏదైనా ఆధునిక Linux పంపిణీ. నేను MX Linux 18.2_x64లో టెస్ట్ సెటప్ చేసాను. ఇది వాస్తవానికి సర్వర్ పంపిణీ కాదు, కానీ డెబియన్‌కు ఎలాంటి తేడాలు ఉండే అవకాశం లేదు. ఇతర పంపిణీల కోసం, కాన్ఫిగర్ లైబ్రరీలకు మార్గాలు కొద్దిగా మారవచ్చు.
  • టోకెన్. మేము మోడల్‌ను ఉపయోగించడం కొనసాగిస్తాము రుటోకెన్ EDS PKI, ఇది కార్పొరేట్ ఉపయోగం కోసం వేగ లక్షణాల పరంగా అనువైనది.
  • Linuxలో టోకెన్‌తో పని చేయడానికి, మీరు క్రింది ప్యాకేజీలను ఇన్‌స్టాల్ చేయాలి:
    libccid libpcsclite1 pcscd pcsc-టూల్స్ opensc

USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

సర్టిఫికెట్లు జారీ చేస్తోంది

మునుపటి కథనాలలో, మైక్రోసాఫ్ట్ CA ఉపయోగించి సర్వర్ మరియు క్లయింట్ సర్టిఫికెట్‌లు జారీ చేయబడతాయనే వాస్తవంపై మేము ఆధారపడతాము. కానీ మేము Linuxలో అన్నింటినీ సెటప్ చేస్తున్నాము కాబట్టి, ఈ సర్టిఫికేట్‌లను జారీ చేయడానికి ప్రత్యామ్నాయ మార్గం గురించి కూడా మేము మీకు తెలియజేస్తాము - Linux నుండి వదలకుండా.
మేము XCAని CAగా ఉపయోగిస్తాము (https://hohnstaedt.de/xca/), ఇది ఏదైనా ఆధునిక Linux పంపిణీలో అందుబాటులో ఉంటుంది. మేము XCAలో చేసే అన్ని చర్యలు OpenSSL మరియు pkcs11-టూల్ యుటిలిటీలను ఉపయోగించి కమాండ్ లైన్ మోడ్‌లో చేయవచ్చు, అయితే ఎక్కువ సరళత మరియు స్పష్టత కోసం, మేము వాటిని ఈ కథనంలో ప్రదర్శించము.

ప్రారంభ విధానం

  1. ఇన్‌స్టాల్ చేయండి:
    $ apt-get install xca
  2. మరియు మేము అమలు చేస్తాము:
    $ xca
  3. మేము CA - /root/CA.xdb కోసం మా డేటాబేస్ను సృష్టిస్తాము
    అడ్మినిస్ట్రేటర్ మాత్రమే యాక్సెస్ ఉన్న ఫోల్డర్‌లో సర్టిఫికేట్ అథారిటీ డేటాబేస్ను నిల్వ చేయాలని మేము సిఫార్సు చేస్తున్నాము. అన్ని ఇతర ప్రమాణపత్రాలపై సంతకం చేయడానికి ఉపయోగించే రూట్ సర్టిఫికేట్‌ల ప్రైవేట్ కీలను రక్షించడానికి ఇది చాలా ముఖ్యం.

కీలు మరియు రూట్ CA ప్రమాణపత్రాన్ని సృష్టించండి

పబ్లిక్ కీ ఇన్‌ఫ్రాస్ట్రక్చర్ (PKI) క్రమానుగత వ్యవస్థపై ఆధారపడి ఉంటుంది. ఈ వ్యవస్థలో ప్రధాన విషయం రూట్ సర్టిఫికేషన్ అథారిటీ లేదా రూట్ CA. దాని సర్టిఫికేట్ మొదట సృష్టించబడాలి.

  1. మేము CA కోసం RSA-2048 ప్రైవేట్ కీని సృష్టిస్తాము. దీన్ని చేయడానికి, ట్యాబ్లో ప్రైవేట్ కీలుకొత్త కీ మరియు తగిన రకాన్ని ఎంచుకోండి.
  2. కొత్త కీ జత కోసం ఒక పేరును సెట్ చేయండి. నేను దానిని CA కీ అని పిలిచాను.
  3. మేము సృష్టించిన కీ జతని ఉపయోగించి CA సర్టిఫికేట్‌ను జారీ చేస్తాము. దీన్ని చేయడానికి, ట్యాబ్‌కు వెళ్లండి సర్టిఫికెట్లు క్లిక్ చేయండి కొత్త సర్టిఫికేట్.
  4. తప్పకుండా ఎంచుకోవాలి SHA-256, ఎందుకంటే SHA-1ని ఉపయోగించడం ఇకపై సురక్షితంగా పరిగణించబడదు.
  5. టెంప్లేట్‌గా ఎంచుకోవాలని నిర్ధారించుకోండి [డిఫాల్ట్] CA. క్లిక్ చేయడం మర్చిపోవద్దు అన్నీ వర్తించు, లేకుంటే టెంప్లేట్ వర్తించదు.
  6. ట్యాబ్‌లో <span style="font-family: Mandali; ">సబ్జెక్ట్ (విషయము)</span> మా కీ జతని ఎంచుకోండి. అక్కడ మీరు సర్టిఫికేట్ యొక్క అన్ని ప్రధాన ఫీల్డ్‌లను పూరించవచ్చు.

USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

కీలు మరియు https సర్వర్ ప్రమాణపత్రాన్ని సృష్టిస్తోంది

  1. అదే విధంగా, మేము సర్వర్ కోసం RSA-2048 ప్రైవేట్ కీని సృష్టిస్తాము, నేను దానిని సర్వర్ కీ అని పిలుస్తాను.
  2. ప్రమాణపత్రాన్ని సృష్టిస్తున్నప్పుడు, సర్వర్ సర్టిఫికేట్ తప్పనిసరిగా CA ప్రమాణపత్రంతో సంతకం చేయబడాలని మేము ఎంచుకుంటాము.
  3. ఎంచుకోవడం మర్చిపోవద్దు SHA-256.
  4. మేము టెంప్లేట్‌గా ఎంచుకుంటాము [డిఫాల్ట్] HTTPS_server. నొక్కండి అన్నీ వర్తించు.
  5. ఆపై ట్యాబ్‌లో <span style="font-family: Mandali; ">సబ్జెక్ట్ (విషయము)</span> మా కీని ఎంచుకుని, అవసరమైన ఫీల్డ్‌లను పూరించండి.

USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

వినియోగదారు కోసం కీలు మరియు ప్రమాణపత్రాన్ని సృష్టించండి

  1. వినియోగదారు ప్రైవేట్ కీ మా టోకెన్‌లో నిల్వ చేయబడుతుంది. దానితో పని చేయడానికి, మీరు మా వెబ్‌సైట్ నుండి PKCS#11 లైబ్రరీని ఇన్‌స్టాల్ చేయాలి. జనాదరణ పొందిన పంపిణీల కోసం, మేము ఇక్కడ ఉన్న రెడీమేడ్ ప్యాకేజీలను పంపిణీ చేస్తాము - https://www.rutoken.ru/support/download/pkcs/. మేము arm64, armv7el, armv7hf, e2k, mipso32el కోసం అసెంబ్లీలను కూడా కలిగి ఉన్నాము, వీటిని మా SDK నుండి డౌన్‌లోడ్ చేసుకోవచ్చు - https://www.rutoken.ru/developers/sdk/. Linux కోసం అసెంబ్లీలతో పాటు, macOS, freebsd మరియు android కోసం అసెంబ్లీలు కూడా ఉన్నాయి.
  2. XCAకి కొత్త PKCS#11 ప్రొవైడర్‌ని జోడిస్తోంది. దీన్ని చేయడానికి, మెనుకి వెళ్లండి ఎంపికలు ట్యాబ్‌కు PKCS#11 ప్రొవైడర్.
  3. మేము నొక్కండి చేర్చు మరియు PKCS#11 లైబ్రరీకి మార్గాన్ని ఎంచుకోండి. నా విషయంలో ఇది usrliblibrtpkcs11ecp.so.
  4. మాకు ఫార్మాట్ చేయబడిన Rutoken EDS PKI టోకెన్ అవసరం. rtAdmin యుటిలిటీని డౌన్‌లోడ్ చేయండి - https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
  5. మేము నిర్వహిస్తాము
    $ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-код пользователя>
  6. మేము Rutoken EDS PKI కోసం RSA-2048 కీని కీ రకంగా ఎంచుకుంటాము. నేను ఈ కీని క్లయింట్ కీ అని పిలిచాను.

    USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

  7. పిన్ కోడ్‌ని నమోదు చేయండి. మరియు కీ జత యొక్క హార్డ్‌వేర్ ఉత్పత్తి పూర్తయ్యే వరకు మేము వేచి ఉన్నాము

    USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

  8. మేము సర్వర్ సర్టిఫికేట్‌తో సారూప్యతతో వినియోగదారు కోసం ప్రమాణపత్రాన్ని సృష్టిస్తాము. ఈసారి మేము ఒక టెంప్లేట్‌ని ఎంచుకుంటాము [డిఫాల్ట్] HTTPS_client మరియు క్లిక్ చేయడం మర్చిపోవద్దు అన్నీ వర్తించు.
  9. ట్యాబ్‌లో <span style="font-family: Mandali; ">సబ్జెక్ట్ (విషయము)</span> వినియోగదారు గురించి సమాచారాన్ని నమోదు చేయండి. టోకెన్ కోసం సర్టిఫికేట్‌ను సేవ్ చేయాలనే అభ్యర్థనకు మేము సానుకూలంగా సమాధానం ఇస్తాము.

ఫలితంగా, ట్యాబ్లో యోగ్యతాపత్రాలకు XCAలో మీరు ఇలాంటివి పొందాలి.

USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా
సర్వర్‌లను సెటప్ చేయడం ప్రారంభించడానికి ఈ కనీస కీలు మరియు సర్టిఫికెట్‌లు సరిపోతాయి.

కాన్ఫిగర్ చేయడానికి, మేము CA సర్టిఫికేట్, సర్వర్ సర్టిఫికేట్ మరియు సర్వర్ ప్రైవేట్ కీని ఎగుమతి చేయాలి.

దీన్ని చేయడానికి, XCAలోని సంబంధిత ట్యాబ్‌లో కావలసిన ఎంట్రీని ఎంచుకుని, క్లిక్ చేయండి ఎగుమతి.

వికీపీడియా

nginx సర్వర్‌ని ఎలా ఇన్‌స్టాల్ చేయాలి మరియు అమలు చేయాలి అని నేను వ్రాయను - ఇంటర్నెట్‌లో ఈ అంశంపై తగినంత కథనాలు ఉన్నాయి, అధికారిక డాక్యుమెంటేషన్ గురించి ప్రత్యేకంగా చెప్పనక్కర్లేదు. టోకెన్‌ని ఉపయోగించి HTTPS మరియు రెండు-కారకాల ప్రమాణీకరణను సెటప్ చేయడానికి నేరుగా వెళ్దాం.

nginx.confలో సర్వర్ విభాగానికి కింది పంక్తులను జోడించండి:

server {
	listen 443 ssl;
	ssl_verify_depth 1;
	ssl_certificate /etc/nginx/Server.crt;
	ssl_certificate_key /etc/nginx/ServerKey.pem;
	ssl_client_certificate /etc/nginx/CA.crt;
	ssl_verify_client on;
}

nginxలో sslని కాన్ఫిగర్ చేయడానికి సంబంధించిన అన్ని పారామితుల యొక్క వివరణాత్మక వివరణ ఇక్కడ చూడవచ్చు - https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate

నేను అడిగిన వాటిని క్లుప్తంగా వివరిస్తాను:

  • ssl_verify_client - సర్టిఫికేట్ కోసం ట్రస్ట్ చైన్ ధృవీకరించబడాలని నిర్దేశిస్తుంది.
  • ssl_verify_depth - చైన్‌లోని విశ్వసనీయ రూట్ సర్టిఫికేట్ కోసం శోధన లోతును నిర్వచిస్తుంది. మా క్లయింట్ సర్టిఫికేట్ రూట్ సర్టిఫికేట్‌పై తక్షణమే సంతకం చేయబడినందున, లోతు 1కి సెట్ చేయబడింది. వినియోగదారు ప్రమాణపత్రం ఇంటర్మీడియట్ CAలో సంతకం చేయబడితే, ఈ పరామితిలో 2 తప్పనిసరిగా పేర్కొనబడాలి మరియు మొదలైనవి.
  • ssl_client_certificate - విశ్వసనీయ రూట్ సర్టిఫికేట్‌కు మార్గాన్ని నిర్దేశిస్తుంది, ఇది వినియోగదారు సర్టిఫికేట్‌పై నమ్మకాన్ని తనిఖీ చేస్తున్నప్పుడు ఉపయోగించబడుతుంది.
  • ssl_certificate/ssl_certificate_key - సర్వర్ సర్టిఫికేట్/ప్రైవేట్ కీకి మార్గాన్ని సూచించండి.

కాన్ఫిగరేషన్‌లో అక్షరదోషాలు లేవని మరియు అన్ని ఫైల్‌లు సరైన స్థలంలో ఉన్నాయని తనిఖీ చేయడానికి nginx -tని అమలు చేయడం మర్చిపోవద్దు.

మరియు అంతే! మీరు గమనిస్తే, సెటప్ చాలా సులభం.

ఇది Firefoxలో పని చేస్తుందో లేదో తనిఖీ చేస్తోంది

మేము ప్రతిదీ పూర్తిగా Linuxలో చేస్తాము కాబట్టి, మా వినియోగదారులు Linuxలో కూడా పని చేస్తారని మేము అనుకుంటాము (వారికి Windows ఉంటే, అప్పుడు మునుపటి కథనంలో బ్రౌజర్‌లను సెటప్ చేయడానికి సూచనలను చూడండి.

  1. Firefoxని ప్రారంభిద్దాం.
  2. ముందుగా టోకెన్ లేకుండా లాగిన్ అవ్వడానికి ప్రయత్నిద్దాం. మేము ఈ చిత్రాన్ని పొందుతాము:

    USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

  3. మేము వెళ్తాము గురించి: ప్రాధాన్యతలను # గోప్యతా, మరియు మేము వెళ్తాము భద్రతా పరికరాలు…
  4. మేము నొక్కండి లోడ్కొత్త PKCS#11 పరికర డ్రైవర్‌ను జోడించడానికి మరియు మా librtpkcs11ecp.soకి మార్గాన్ని పేర్కొనండి.
  5. సర్టిఫికేట్ కనిపిస్తుందో లేదో తనిఖీ చేయడానికి, మీరు దీనికి వెళ్లవచ్చు సర్టిఫికేట్ మేనేజర్. మీరు మీ PINని నమోదు చేయమని ప్రాంప్ట్ చేయబడతారు. సరైన ఇన్‌పుట్ తర్వాత, మీరు ట్యాబ్‌లో ఏముందో తనిఖీ చేయవచ్చు మీ సర్టిఫికెట్లు టోకెన్ నుండి మా సర్టిఫికేట్ కనిపించింది.
  6. ఇప్పుడు టోకెన్‌తో వెళ్దాం. సర్వర్ కోసం ఎంపిక చేయబడే ప్రమాణపత్రాన్ని ఎంచుకోమని Firefox మిమ్మల్ని అడుగుతుంది. మా ప్రమాణపత్రాన్ని ఎంచుకోండి.

    USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

  7. లాభం!

    USB టోకెన్‌ని ఉపయోగించి సైట్‌లో రెండు-కారకాల ప్రమాణీకరణ. ఇప్పుడు Linux కోసం కూడా

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

Apache

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

మరియు మేము మా HTTPS మరియు రెండు-కారకాల ప్రమాణీకరణను సెటప్ చేయడం ప్రారంభిస్తాము:

  1. ముందుగా మీరు mod_sslని సక్రియం చేయాలి:
    $ a2enmod ssl
  2. ఆపై సైట్ డిఫాల్ట్ HTTPS సెట్టింగ్‌లను ప్రారంభించండి:
    $ a2ensite default-ssl
  3. ఇప్పుడు మేము కాన్ఫిగరేషన్ ఫైల్‌ను సవరించాము: /etc/apache2/sites-enabled/default-ssl.conf:
        SSLEngine on
        SSLProtocol all -SSLv2
    
        SSLCertificateFile	/etc/apache2/sites-enabled/Server.crt
        SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem
    
        SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt
    
        SSLVerifyClient require
        SSLVerifyDepth  10

    మీరు చూడగలిగినట్లుగా, పారామితుల పేర్లు ఆచరణాత్మకంగా nginx లోని పారామితుల పేర్లతో సమానంగా ఉంటాయి, కాబట్టి నేను వాటిని వివరించను. మళ్ళీ, వివరాలపై ఆసక్తి ఉన్న ఎవరైనా డాక్యుమెంటేషన్‌కు స్వాగతం.
    ఇప్పుడు మేము మా సర్వర్‌ని పునఃప్రారంభించాము:

    $ service apache2 reload
    $ service apache2 restart

  4. మీరు చూడగలిగినట్లుగా, Windows లేదా Linuxలో ఏదైనా వెబ్ సర్వర్‌లో రెండు-కారకాల ప్రమాణీకరణను సెటప్ చేయడానికి గరిష్టంగా ఒక గంట పడుతుంది. మరియు బ్రౌజర్‌లను సెటప్ చేయడానికి సుమారు 5 నిమిషాలు పడుతుంది. రెండు-కారకాల ప్రమాణీకరణతో సెటప్ చేయడం మరియు పని చేయడం కష్టం మరియు అస్పష్టంగా ఉందని చాలా మంది భావిస్తారు. మా కథనం ఈ పురాణాన్ని కనీసం కొంచెం అయినా తొలగిస్తుందని నేను ఆశిస్తున్నాను.

నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. సైన్ ఇన్ చేయండిదయచేసి.

GOST 34.10-2012 ప్రకారం సర్టిఫికేట్‌లతో TLSని సెటప్ చేయడానికి మీకు సూచనలు కావాలా:

  • అవును, TLS-GOST చాలా అవసరం

  • లేదు, GOST అల్గారిథమ్‌లతో ట్యూనింగ్ చేయడం ఆసక్తికరంగా లేదు

44 మంది వినియోగదారులు ఓటు వేశారు. 9 మంది వినియోగదారులు దూరంగా ఉన్నారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి