మీ సంస్థలోని నిర్దిష్ట సర్వర్కు ప్రాప్యత అవసరమయ్యే మీ వినియోగదారులు లేదా భాగస్వాములు కాదా అనే దానితో సంబంధం లేకుండా, కార్పొరేట్ వాతావరణానికి రిమోట్ యాక్సెస్ను అందించాల్సిన అవసరం మరింత తరచుగా ఉద్భవిస్తోంది.
ఈ ప్రయోజనాల కోసం, చాలా కంపెనీలు VPN సాంకేతికతను ఉపయోగిస్తాయి, ఇది సంస్థ యొక్క స్థానిక వనరులకు ప్రాప్యతను అందించడానికి విశ్వసనీయంగా రక్షిత మార్గంగా నిరూపించబడింది.
నా కంపెనీ మినహాయింపు కాదు, మరియు మేము, అనేక ఇతర వంటి, ఈ సాంకేతికతను ఉపయోగిస్తాము. మరియు, అనేక ఇతర వాటిలాగే, మేము సిస్కో ASA 55xxని రిమోట్ యాక్సెస్ గేట్వేగా ఉపయోగిస్తాము.
రిమోట్ వినియోగదారుల సంఖ్య పెరుగుతున్నందున, ఆధారాలను జారీ చేసే విధానాన్ని సరళీకృతం చేయాల్సిన అవసరం ఉంది. కానీ అదే సమయంలో, ఇది భద్రతకు రాజీ పడకుండా చేయాలి.
మన కోసం, సిస్కో SSL VPN ద్వారా వన్-టైమ్ పాస్వర్డ్లను ఉపయోగించి కనెక్ట్ చేయడానికి రెండు-కారకాల ప్రమాణీకరణను ఉపయోగించడంలో మేము ఒక పరిష్కారాన్ని కనుగొన్నాము. మరియు అవసరమైన సాఫ్ట్వేర్ కోసం కనీస సమయం మరియు సున్నా ఖర్చులతో అటువంటి పరిష్కారాన్ని ఎలా నిర్వహించాలో ఈ ప్రచురణ మీకు తెలియజేస్తుంది (మీరు ఇప్పటికే మీ మౌలిక సదుపాయాలలో సిస్కో ASAని కలిగి ఉంటే).
SMS ద్వారా పాస్వర్డ్ను పంపడం లేదా హార్డ్వేర్ మరియు సాఫ్ట్వేర్ (ఉదాహరణకు, మొబైల్ ఫోన్లో) రెండింటినీ ఉపయోగించి పాస్వర్డ్ను పొందడం కోసం అనేక ఎంపికలను అందిస్తున్నప్పుడు, వన్-టైమ్ పాస్వర్డ్లను రూపొందించడానికి బాక్స్డ్ సొల్యూషన్లతో మార్కెట్ నిండి ఉంది. కానీ డబ్బు ఆదా చేయాలనే కోరిక మరియు నా యజమాని కోసం డబ్బు ఆదా చేయాలనే కోరిక, ప్రస్తుత సంక్షోభంలో, వన్-టైమ్ పాస్వర్డ్లను రూపొందించడానికి సేవను అమలు చేయడానికి ఉచిత మార్గాన్ని కనుగొనవలసి వచ్చింది. ఇది ఉచితమైనప్పటికీ, వాణిజ్య పరిష్కారాల కంటే చాలా తక్కువ కాదు (ఇక్కడ మేము రిజర్వేషన్ చేసుకోవాలి, ఈ ఉత్పత్తికి వాణిజ్య వెర్షన్ కూడా ఉందని గమనించాలి, కానీ డబ్బులో మా ఖర్చులు సున్నాగా ఉంటాయని మేము అంగీకరించాము).
కాబట్టి, మాకు అవసరం:
- వెబ్ ద్వారా సర్వర్ను యాక్సెస్ చేయడానికి మల్టీOTP, FreeRADIUS మరియు nginx - అంతర్నిర్మిత సాధనాల సెట్తో కూడిన Linux చిత్రం (http://download.multiotp.net/ - నేను VMware కోసం రెడీమేడ్ ఇమేజ్ని ఉపయోగించాను)
- యాక్టివ్ డైరెక్టరీ సర్వర్
— సిస్కో ASA కూడా (సౌలభ్యం కోసం, నేను ASDMని ఉపయోగిస్తాను)
— TOTP మెకానిజంకు మద్దతిచ్చే ఏదైనా సాఫ్ట్వేర్ టోకెన్ (నేను, ఉదాహరణకు, Google Authenticatorని ఉపయోగిస్తాను, కానీ అదే FreeOTP చేస్తుంది)
చిత్రం ఎలా సాగుతుందనే వివరాలలోకి నేను వెళ్లను. ఫలితంగా, మీరు ఇప్పటికే ఇన్స్టాల్ చేయబడిన మల్టీOTP మరియు FreeRADIUSతో డెబియన్ లైనక్స్ని అందుకుంటారు, కలిసి పనిచేయడానికి కాన్ఫిగర్ చేయబడి, OTP పరిపాలన కోసం వెబ్ ఇంటర్ఫేస్ను అందుకుంటారు.
దశ 1. మేము సిస్టమ్ను ప్రారంభించాము మరియు దానిని మీ నెట్వర్క్ కోసం కాన్ఫిగర్ చేస్తాము
డిఫాల్ట్గా, సిస్టమ్ రూట్ రూట్ ఆధారాలతో వస్తుంది. మొదటి లాగిన్ తర్వాత రూట్ యూజర్ పాస్వర్డ్ను మార్చడం మంచి ఆలోచన అని అందరూ ఊహించారని నేను భావిస్తున్నాను. మీరు నెట్వర్క్ సెట్టింగ్లను కూడా మార్చాలి (డిఫాల్ట్గా ఇది గేట్వే '192.168.1.44'తో '192.168.1.1'). తరువాత మీరు సిస్టమ్ను రీబూట్ చేయవచ్చు.
యాక్టివ్ డైరెక్టరీలో వినియోగదారుని క్రియేట్ చేద్దాం OTP, పాస్వర్డ్తో MySuperPassword.
దశ 2. కనెక్షన్ని సెటప్ చేయండి మరియు యాక్టివ్ డైరెక్టరీ వినియోగదారులను దిగుమతి చేయండి
దీన్ని చేయడానికి, మనకు కన్సోల్కు మరియు నేరుగా ఫైల్కు ప్రాప్యత అవసరం multiotp.php, దీన్ని ఉపయోగించి మేము యాక్టివ్ డైరెక్టరీకి కనెక్షన్ సెట్టింగ్లను కాన్ఫిగర్ చేస్తాము.
డైరెక్టరీకి వెళ్లండి /usr/local/bin/multiotp/ మరియు కింది ఆదేశాలను క్రమంగా అమలు చేయండి:
./multiotp.php -config default-request-prefix-pin=0
వన్-టైమ్ పిన్ (0 లేదా 1) ఎంటర్ చేస్తున్నప్పుడు అదనపు (శాశ్వత) పిన్ అవసరమా అని నిర్ణయిస్తుంది
./multiotp.php -config default-request-ldap-pwd=0
వన్-టైమ్ పిన్ (0 లేదా 1) ఎంటర్ చేస్తున్నప్పుడు డొమైన్ పాస్వర్డ్ అవసరమా కాదా అని నిర్ణయిస్తుంది
./multiotp.php -config ldap-server-type=1
LDAP సర్వర్ రకం సూచించబడింది (0 = సాధారణ LDAP సర్వర్, మా విషయంలో 1 = యాక్టివ్ డైరెక్టరీ)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"
వినియోగదారు పేరును ప్రదర్శించాల్సిన ఆకృతిని నిర్దేశిస్తుంది (ఈ విలువ డొమైన్ లేకుండా పేరును మాత్రమే ప్రదర్శిస్తుంది)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"
అదే విషయం, ఒక సమూహానికి మాత్రమే
./multiotp.php -config ldap-group-attribute="memberOf"
వినియోగదారు సమూహానికి చెందినవాడో కాదో నిర్ణయించడానికి ఒక పద్ధతిని నిర్దేశిస్తుంది
./multiotp.php -config ldap-ssl=1
నేను LDAP సర్వర్కు సురక్షిత కనెక్షన్ని ఉపయోగించాలా (వాస్తవానికి, అవును!)
./multiotp.php -config ldap-port=636
LDAP సర్వర్కు కనెక్ట్ చేయడానికి పోర్ట్
./multiotp.php -config ldap-domain-controllers=adSRV.domain.local
మీ యాక్టివ్ డైరెక్టరీ సర్వర్ చిరునామా
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"
డొమైన్లో వినియోగదారుల కోసం శోధించడం ఎక్కడ ప్రారంభించాలో మేము సూచిస్తాము
./multiotp.php -config ldap-bind-dn="[email protected]"
యాక్టివ్ డైరెక్టరీలో శోధన హక్కులను కలిగి ఉన్న వినియోగదారుని పేర్కొనండి
./multiotp.php -config ldap-server-password="MySuperPassword"
యాక్టివ్ డైరెక్టరీకి కనెక్ట్ చేయడానికి వినియోగదారు పాస్వర్డ్ను పేర్కొనండి
./multiotp.php -config ldap-network-timeout=10
యాక్టివ్ డైరెక్టరీకి కనెక్ట్ చేయడానికి గడువు ముగింపును సెట్ చేస్తోంది
./multiotp.php -config ldap-time-limit=30
మేము వినియోగదారు దిగుమతి ఆపరేషన్ కోసం సమయ పరిమితిని సెట్ చేసాము
./multiotp.php -config ldap-activated=1
యాక్టివ్ డైరెక్టరీ కనెక్షన్ కాన్ఫిగరేషన్ను సక్రియం చేస్తోంది
./multiotp.php -debug -display-log -ldap-users-sync
మేము యాక్టివ్ డైరెక్టరీ నుండి వినియోగదారులను దిగుమతి చేస్తాము
దశ 3. టోకెన్ కోసం QR కోడ్ను రూపొందించండి
ఇక్కడ ప్రతిదీ చాలా సులభం. బ్రౌజర్లో OTP సర్వర్ యొక్క వెబ్ ఇంటర్ఫేస్ను తెరిచి, లాగిన్ చేయండి (అడ్మిన్ కోసం డిఫాల్ట్ పాస్వర్డ్ను మార్చడం మర్చిపోవద్దు!), మరియు "ప్రింట్" బటన్పై క్లిక్ చేయండి:
ఈ చర్య యొక్క ఫలితం రెండు QR కోడ్లను కలిగి ఉన్న పేజీ అవుతుంది. వాటిలో మొదటిదాన్ని మేము నిస్సంకోచంగా విస్మరిస్తాము (ఆకర్షణీయమైన శాసనం ఉన్నప్పటికీ Google Authenticator / Authenticator / 2 Steps Authenticator), మరియు మళ్లీ మేము రెండవ కోడ్ని ఫోన్లోని సాఫ్ట్వేర్ టోకెన్లోకి స్కాన్ చేస్తాము:
(అవును, నేను QR కోడ్ని చదవలేని విధంగా ఉద్దేశపూర్వకంగా పాడు చేసాను).
ఈ చర్యలను పూర్తి చేసిన తర్వాత, ప్రతి ముప్పై సెకన్లకు మీ అప్లికేషన్లో ఆరు-అంకెల పాస్వర్డ్ రూపొందించడం ప్రారంభమవుతుంది.
ఖచ్చితంగా, మీరు దీన్ని అదే ఇంటర్ఫేస్లో తనిఖీ చేయవచ్చు:
మీ ఫోన్లోని అప్లికేషన్ నుండి మీ వినియోగదారు పేరు మరియు వన్-టైమ్ పాస్వర్డ్ను నమోదు చేయడం ద్వారా. మీకు సానుకూల స్పందన వచ్చిందా? కాబట్టి ముందుకు వెళ్దాం.
దశ 4. FreeRADIUS ఆపరేషన్ యొక్క అదనపు కాన్ఫిగరేషన్ మరియు పరీక్ష
నేను పైన చెప్పినట్లుగా, FreeRADIUSతో పనిచేయడానికి multiOTP ఇప్పటికే కాన్ఫిగర్ చేయబడింది, పరీక్షలను అమలు చేయడం మరియు FreeRADIUS కాన్ఫిగరేషన్ ఫైల్కు మా VPN గేట్వే గురించి సమాచారాన్ని జోడించడం మాత్రమే మిగిలి ఉంది.
మేము సర్వర్ కన్సోల్కి, డైరెక్టరీకి తిరిగి వస్తాము /usr/local/bin/multiotp/, నమోదు చేయండి:
./multiotp.php -config debug=1
./multiotp.php -config display-log=1
మరింత వివరణాత్మక లాగింగ్తో సహా.
FreeRADIUS క్లయింట్ల కాన్ఫిగరేషన్ ఫైల్లో (/etc/freeradius/clinets.conf) సంబంధించిన అన్ని లైన్లను వ్యాఖ్యానించండి localhost మరియు రెండు ఎంట్రీలను జోడించండి:
client localhost {
ipaddr = 127.0.0.1
secret = testing321
require_message_authenticator = no
}
- పరీక్ష కోసం
client 192.168.1.254/32 {
shortname = CiscoASA
secret = ConnectToRADIUSSecret
}
- మా VPN గేట్వే కోసం.
FreeRADIUSని పునఃప్రారంభించి, లాగిన్ చేయడానికి ప్రయత్నించండి:
radtest username 100110 localhost 1812 testing321
పేరు <span style="font-family: Mandali; "> యూజర్ పేరు </span> = వినియోగదారు పేరు, 100110 = ఫోన్లోని అప్లికేషన్ ద్వారా మాకు ఇచ్చిన పాస్వర్డ్, localhost = RADIUS సర్వర్ చిరునామా, 1812 - RADIUS సర్వర్ పోర్ట్, testing321 — RADIUS సర్వర్ క్లయింట్ పాస్వర్డ్ (మేము కాన్ఫిగరేషన్లో పేర్కొన్నది).
ఈ కమాండ్ యొక్క ఫలితం ఈ క్రింది విధంగా అవుట్పుట్ అవుతుంది:
Sending Access-Request of id 44 to 127.0.0.1 port 1812
User-Name = "username"
User-Password = "100110"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20
ఇప్పుడు మేము వినియోగదారు విజయవంతంగా ప్రామాణీకరించబడ్డారని నిర్ధారించుకోవాలి. దీన్ని చేయడానికి, మేము multiotp యొక్క లాగ్ను పరిశీలిస్తాము:
tail /var/log/multiotp/multiotp.log
మరియు చివరి ఎంట్రీ ఉంటే:
2016-09-01 08:58:17 notice username User OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token accepted from 127.0.0.1
అప్పుడు ప్రతిదీ బాగా జరిగింది మరియు మేము పూర్తి చేయగలము
దశ 5: సిస్కో ASAని కాన్ఫిగర్ చేయండి
యాక్టివ్ డైరెక్టరీతో కలిపి కాన్ఫిగర్ చేయబడిన SLL VPN ద్వారా యాక్సెస్ కోసం ఇప్పటికే కాన్ఫిగర్ చేయబడిన సమూహం మరియు విధానాలను కలిగి ఉన్నామని అంగీకరిస్తాము మరియు మేము ఈ ప్రొఫైల్కు రెండు-కారకాల ప్రమాణీకరణను జోడించాలి.
1. కొత్త AAA సర్వర్ సమూహాన్ని జోడించండి:
2. మా మల్టీOTP సర్వర్ని సమూహానికి జోడించండి:
3. మేము సవరించాము కనెక్షన్ ప్రొఫైల్, యాక్టివ్ డైరెక్టరీ సర్వర్ సమూహాన్ని ప్రధాన ప్రమాణీకరణ సర్వర్గా సెట్ చేయండి:
4. ట్యాబ్లో అధునాతన -> ప్రమాణీకరణ మేము యాక్టివ్ డైరెక్టరీ సర్వర్ సమూహాన్ని కూడా ఎంచుకుంటాము:
5. ట్యాబ్లో అధునాతన -> సెకండరీ ప్రమాణీకరణ, బహుళOTP సర్వర్ నమోదు చేయబడిన సృష్టించబడిన సర్వర్ సమూహాన్ని ఎంచుకోండి. సెషన్ వినియోగదారు పేరు ప్రాథమిక AAA సర్వర్ సమూహం నుండి సంక్రమించబడిందని గమనించండి:
సెట్టింగులను వర్తింపజేయండి మరియు
దశ 6, చివరిది
SLL VPN కోసం రెండు-కారకాల ప్రమాణీకరణ పనిచేస్తుందో లేదో చూద్దాం:
వోయిలా! Cisco AnyConnect VPN క్లయింట్ ద్వారా కనెక్ట్ చేస్తున్నప్పుడు, మీరు రెండవ, వన్-టైమ్ పాస్వర్డ్ కోసం కూడా అడగబడతారు.
ఈ కథనం ఎవరికైనా సహాయపడుతుందని మరియు దీన్ని ఎలా ఉపయోగించాలో ఆలోచించడానికి ఇది ఎవరికైనా ఆహారం ఇస్తుందని నేను ఆశిస్తున్నాను, ఉచిత OTP సర్వర్, ఇతర పనుల కోసం. మీకు కావాలంటే వ్యాఖ్యలలో భాగస్వామ్యం చేయండి.
మూలం: www.habr.com