LinOTP రెండు-కారకాల ప్రమాణీకరణ సర్వర్

LinOTP రెండు-కారకాల ప్రమాణీకరణ సర్వర్

కార్పొరేట్ నెట్‌వర్క్, సైట్‌లు, సేవలు, sshని రక్షించడానికి రెండు-కారకాల ప్రమాణీకరణ సర్వర్‌ను ఎలా సెటప్ చేయాలో ఈ రోజు నేను భాగస్వామ్యం చేయాలనుకుంటున్నాను. సర్వర్ కింది కలయికను అమలు చేస్తుంది: LinOTP + FreeRadius.

మనకు అది ఎందుకు అవసరం?
ఇది పూర్తిగా ఉచిత, అనుకూలమైన పరిష్కారం, దాని స్వంత నెట్‌వర్క్‌లో, థర్డ్-పార్టీ ప్రొవైడర్ల నుండి స్వతంత్రంగా ఉంటుంది.

ఈ సేవ చాలా సౌకర్యవంతంగా ఉంటుంది, ఇతర ఓపెన్ సోర్స్ ఉత్పత్తుల వలె కాకుండా చాలా దృశ్యమానంగా ఉంటుంది మరియు భారీ సంఖ్యలో విధులు మరియు విధానాలకు మద్దతు ఇస్తుంది (ఉదాహరణకు, లాగిన్+పాస్‌వర్డ్+(PIN+OTPToken)). API ద్వారా, ఇది sms పంపే సేవలతో అనుసంధానిస్తుంది (LinOTP కాన్ఫిగరేషన్-> ప్రొవైడర్ కాన్ఫిగరేషన్-> SMS ప్రొవైడర్), Google Authentificator వంటి మొబైల్ అప్లికేషన్‌ల కోసం కోడ్‌లను ఉత్పత్తి చేస్తుంది మరియు మరెన్నో. చర్చించిన సేవ కంటే ఇది మరింత సౌకర్యవంతంగా ఉంటుందని నేను భావిస్తున్నాను వ్యాసం.

ఈ సర్వర్ Cisco ASA, OpenVPN సర్వర్, Apache2 మరియు సాధారణంగా RADIUS సర్వర్ ద్వారా ప్రమాణీకరణకు మద్దతిచ్చే దాదాపు అన్నింటితో సంపూర్ణంగా పనిచేస్తుంది (ఉదాహరణకు, డేటా సెంటర్‌లోని SSH కోసం).

ఇది అవసరం:

1) డెబియన్ 8 (జెస్సీ) - తప్పనిసరిగా! (డెబియన్ 9పై ట్రయల్ ఇన్‌స్టాలేషన్ వ్యాసం చివరలో వివరించబడింది)

ప్రారంభించండి:

డెబియన్ 8ని ఇన్‌స్టాల్ చేస్తోంది.

LinOTP రిపోజిటరీని జోడించండి:

# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.list

కీలను కలుపుతోంది:

# gpg --search-keys 913DFF12F86258E5

కొన్నిసార్లు “క్లీన్” ఇన్‌స్టాలేషన్ సమయంలో, ఈ ఆదేశాన్ని అమలు చేసిన తర్వాత, డెబియన్ ప్రదర్శిస్తుంది:

gpg: создан каталог `/root/.gnupg'
gpg: создан новый файл настроек `/root/.gnupg/gpg.conf'
gpg: ВНИМАНИЕ: параметры в `/root/.gnupg/gpg.conf' еще не активны при этом запуске
gpg: создана таблица ключей `/root/.gnupg/secring.gpg'
gpg: создана таблица ключей `/root/.gnupg/pubring.gpg'
gpg: не заданы серверы ключей (используйте --keyserver)
gpg: сбой при поиске на сервере ключей: плохой URI

ఇది ప్రారంభ gnupg సెటప్. ఇట్స్ ఓకే. ఆదేశాన్ని మళ్లీ అమలు చేయండి.
డెబియన్ ప్రశ్నకు:

gpg: поиск "913DFF12F86258E5" на hkp сервере keys.gnupg.net
(1)	LSE LinOTP2 Packaging <[email protected]>
	  2048 bit RSA key F86258E5, создан: 2010-05-10
Keys 1-1 of 1 for "913DFF12F86258E5".  Введите числа, N) Следующий или Q) Выход>

మేము సమాధానం: 1

తదుపరి:

# gpg --export 913DFF12F86258E5 | apt-key add -

# apt-get update

mysqlని ఇన్‌స్టాల్ చేయండి. సిద్ధాంతంలో, మీరు మరొక sql సర్వర్‌ని ఉపయోగించవచ్చు, కానీ సరళత కోసం నేను దీన్ని LinOTP కోసం సిఫార్సు చేసినట్లు ఉపయోగిస్తాను.

(LinOTP డేటాబేస్‌ను రీకాన్ఫిగర్ చేయడంతో సహా అదనపు సమాచారం, దీని కోసం అధికారిక డాక్యుమెంటేషన్‌లో చూడవచ్చు లింక్. అక్కడ మీరు ఆదేశాన్ని కూడా కనుగొనవచ్చు: మీరు ఇప్పటికే mysqlని ఇన్‌స్టాల్ చేసి ఉంటే పారామితులను మార్చడానికి dpkg-reconfigure linotp).

# apt-get install mysql-server

# apt-get update

(నవీకరణలను మళ్లీ తనిఖీ చేయడం బాధించదు)
LinOTP మరియు అదనపు మాడ్యూల్‌లను ఇన్‌స్టాల్ చేయండి:

# apt-get install linotp

మేము ఇన్‌స్టాలర్ ప్రశ్నలకు సమాధానం ఇస్తాము:
Apache2 ఉపయోగించండి: అవును
అడ్మిన్ Linotp కోసం పాస్‌వర్డ్‌ను సృష్టించండి: “మీ పాస్‌వర్డ్”
స్వీయ సంతకం చేసిన ప్రమాణపత్రాన్ని రూపొందించాలా?: అవును
MySQLని ఉపయోగించాలా?: అవును
డేటాబేస్ ఎక్కడ ఉంది: localhost
సర్వర్‌లో LinOTP డేటాబేస్ (బేస్ పేరు) సృష్టించండి: LinOTP2
డేటాబేస్ కోసం ప్రత్యేక వినియోగదారుని సృష్టించండి: LinOTP2
మేము వినియోగదారు కోసం పాస్‌వర్డ్‌ను సెట్ చేసాము: “మీ పాస్‌వర్డ్”
నేను ఇప్పుడు డేటాబేస్ సృష్టించాలా? ("మీకు ఖచ్చితంగా కావాలా..." వంటిది): అవును
దీన్ని ఇన్‌స్టాల్ చేస్తున్నప్పుడు మీరు సృష్టించిన MySQL రూట్ పాస్‌వర్డ్‌ను నమోదు చేయండి: “మీ పాస్‌వర్డ్”
Done.

(ఐచ్ఛికం, మీరు దీన్ని ఇన్‌స్టాల్ చేయనవసరం లేదు)

# apt-get install linotp-adminclient-cli 

(ఐచ్ఛికం, మీరు దీన్ని ఇన్‌స్టాల్ చేయనవసరం లేదు)

# apt-get install libpam-linotp  

కాబట్టి మా Linotp వెబ్ ఇంటర్‌ఫేస్ ఇప్పుడు ఇక్కడ అందుబాటులో ఉంది:

"<b>https</b>: //IP_сервера/manage"

నేను వెబ్ ఇంటర్‌ఫేస్‌లోని సెట్టింగ్‌ల గురించి కొంచెం తర్వాత మాట్లాడతాను.

ఇప్పుడు, అతి ముఖ్యమైన విషయం! మేము FreeRadiusని పెంచుతాము మరియు దానిని Linotpతో లింక్ చేస్తాము.

LinOTPతో పనిచేయడానికి FreeRadius మరియు మాడ్యూల్‌ను ఇన్‌స్టాల్ చేయండి

# apt-get install freeradius linotp-freeradius-perl

క్లయింట్ మరియు వినియోగదారుల వ్యాసార్థం కాన్ఫిగర్‌లను బ్యాకప్ చేయండి.

# mv /etc/freeradius/clients.conf  /etc/freeradius/clients.old

# mv /etc/freeradius/users  /etc/freeradius/users.old

ఖాళీ క్లయింట్ ఫైల్‌ను సృష్టించండి:

# touch /etc/freeradius/clients.conf

మా కొత్త కాన్ఫిగరేషన్ ఫైల్‌ని సవరించడం (బ్యాకప్ చేసిన కాన్ఫిగరేషన్‌ని ఉదాహరణగా ఉపయోగించవచ్చు)

# nano /etc/freeradius/clients.conf

client 192.168.188.0/24 {
secret  = passwd # пароль для подключения клиентов
}

తరువాత, వినియోగదారుల ఫైల్‌ను సృష్టించండి:

# touch /etc/freeradius/users

మేము ప్రామాణీకరణ కోసం perlని ఉపయోగిస్తామని వ్యాసార్థం చెబుతూ ఫైల్‌ని ఎడిట్ చేస్తాము.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

తరువాత, ఫైల్ /etc/freeradius/modules/perlని సవరించండి

# nano /etc/freeradius/modules/perl

మేము మాడ్యూల్ పరామితిలో perl linotp స్క్రిప్ట్‌కి మార్గాన్ని పేర్కొనాలి:

Perl { .......
.........
<source lang="bash">module = /usr/lib/linotp/radius_linotp.pm

... ..
తరువాత, మేము ఒక ఫైల్‌ను సృష్టిస్తాము, దానిలో డేటాను ఏ (డొమైన్, డేటాబేస్ లేదా ఫైల్) తీసుకోవాలో చెప్పాము.

# touch /etc/linotp2/rlm_perl.ini

# nano /etc/linotp2/rlm_perl.ini

URL=https://IP_вашего_LinOTP_сервера(192.168.X.X)/validate/simplecheck
REALM=webusers1c
RESCONF=LocalUser
Debug=True
SSL_CHECK=False

నేను ఇక్కడ కొంచెం వివరంగా వెళ్తాను ఎందుకంటే ఇది ముఖ్యమైనది:

వ్యాఖ్యలతో ఫైల్ పూర్తి వివరణ:
#linOTP సర్వర్ యొక్క IP (మా LinOTP సర్వర్ యొక్క IP చిరునామా)
URL=https://172.17.14.103/validate/simplecheck
#LinOTP వెబ్ ఇంటర్‌ఫేస్‌లో మేము సృష్టించే మా ప్రాంతం.)
REALM=వెనక1
#LinOTP వెబ్ మజిల్‌లో సృష్టించబడిన వినియోగదారు సమూహం పేరు.
RESCONF=flat_file
#ఐచ్ఛికం: అంతా బాగానే ఉన్నట్లు అనిపిస్తే వ్యాఖ్యానించండి
డీబగ్=నిజం
#ఐచ్ఛికం: మీరు స్వీయ సంతకం చేసిన సర్టిఫికేట్‌లను కలిగి ఉంటే దీన్ని ఉపయోగించండి, లేకపోతే వ్యాఖ్యానించండి (మేము మా స్వంత సర్టిఫికేట్‌ను సృష్టించి, దానిని ధృవీకరించాలనుకుంటే SSL)
SSL_CHECK=తప్పు

తరువాత, ఫైల్ /etc/freeradius/sites-available/linotpని సృష్టించండి

# touch /etc/freeradius/sites-available/linotp

# nano /etc/freeradius/sites-available/linotp

మరియు దానిలో కాన్ఫిగరేషన్‌ను కాపీ చేయండి (ఏదీ సవరించాల్సిన అవసరం లేదు):

authorize {
#normalizes maleformed client request before handed on to other modules (see '/etc/freeradius/modules/preprocess')
preprocess
#  If you are using multiple kinds of realms, you probably
#  want to set "ignore_null = yes" for all of them.
#  Otherwise, when the first style of realm doesn't match,
#  the other styles won't be checked.
#allows a list of realm (see '/etc/freeradius/modules/realm')
IPASS
#understands something like USER@REALM and can tell the components apart (see '/etc/freeradius/modules/realm')
suffix
#understands USERREALM and can tell the components apart (see '/etc/freeradius/modules/realm')
ntdomain
#  Read the 'users' file to learn about special configuration which should be applied for
# certain users (see '/etc/freeradius/modules/files')
files
# allows to let authentification to expire (see '/etc/freeradius/modules/expiration')
expiration
# allows to define valid service-times (see '/etc/freeradius/modules/logintime')
logintime
# We got no radius_shortname_map!
pap
}
#here the linotp perl module is called for further processing
authenticate {
perl
}

తర్వాత మేము SIM లింక్‌ని సృష్టిస్తాము:

# ln -s ../sites-available/linotp /etc/freeradius/sites-enabled

వ్యక్తిగతంగా, నేను డిఫాల్ట్ వ్యాసార్థం సైట్‌లను చంపుతాను, కానీ మీకు అవి అవసరమైతే, మీరు వాటి కాన్ఫిగరేషన్‌ని సవరించవచ్చు లేదా వాటిని నిలిపివేయవచ్చు.

# rm /etc/freeradius/sites-enabled/default

# rm /etc/freeradius/sites-enabled/inner-tunnel

# service freeradius reload

ఇప్పుడు వెబ్ ముఖానికి తిరిగి వెళ్లి, దానిని కొంచెం వివరంగా చూద్దాం:
ఎగువ కుడి మూలలో LinOTP కాన్ఫిగరేషన్ -> UserIdResolvers -> కొత్తది క్లిక్ చేయండి
మేము మనకు కావలసినదాన్ని ఎంచుకుంటాము: LDAP (AD విన్, LDAP సాంబా), లేదా SQL లేదా Flatfile సిస్టమ్ యొక్క స్థానిక వినియోగదారులు.

అవసరమైన ఫీల్డ్‌లను పూరించండి.

తర్వాత మనం REALMSని సృష్టిస్తాము:
ఎగువ కుడి మూలలో, LinOTP కాన్ఫిగరేషన్ -> Realms -> New క్లిక్ చేయండి.
మరియు మా REALMSకి పేరు ఇవ్వండి మరియు గతంలో సృష్టించిన UserIdResolversపై కూడా క్లిక్ చేయండి.

FreeRadiusకి ఈ డేటా మొత్తం /etc/linotp2/rlm_perl.ini ఫైల్‌లో అవసరం, నేను పైన వ్రాసినట్లుగా, అప్పుడు మీరు దీన్ని సవరించకపోతే, ఇప్పుడే చేయండి.

సర్వర్ మొత్తం కాన్ఫిగర్ చేయబడింది.

అనుబంధం:

డెబియన్ 9లో LinOTPని సెటప్ చేస్తోంది:

చేస్తోంది:

# echo 'deb http://linotp.org/apt/debian stretch linotp' > /etc/apt/sources.list.d/linotp.list 
# apt-get install dirmngr

# apt-key adv --recv-keys 913DFF12F86258E5
# apt-get update

# apt-get install mysql-server

(డిఫాల్ట్‌గా, Debian 9 mysql (mariaDB)లో రూట్ పాస్‌వర్డ్‌ను సెట్ చేయమని ఆఫర్ చేయదు, అయితే మీరు దానిని ఖాళీగా ఉంచవచ్చు, కానీ మీరు వార్తలను చదివితే, ఇది చాలా తరచుగా "ఎపిక్ ఫెయిల్స్"కి దారి తీస్తుంది, కాబట్టి మేము దానిని సెట్ చేస్తాము. ఏమైనప్పటికీ)

# mysql -u root -p
use mysql;
UPDATE user SET Password = PASSWORD('тут_пароль') WHERE User = 'root';
exit
# apt-get install linotp
# apt-get install linotp-adminclient-cli
# apt-get install python-ldap
# apt install freeradius
# nano /etc/freeradius/3.0/sites-enabled/linotp

కోడ్‌ను అతికించండి (JuriM ద్వారా పంపబడింది, అందుకు అతనికి ధన్యవాదాలు!):

సర్వర్ linotp {
వినండి {
ipaddr = *
పోర్ట్ = 1812
టైప్=ఆత్
}
వినండి {
ipaddr = *
పోర్ట్ = 1813
type = చట్టం
}
అధికారం
ముందస్తు ప్రక్రియ
నవీకరణ {
&control:Auth-Type := పెర్ల్
}
}
ప్రమాణీకరించు {
ప్రామాణీకరణ-రకం పెర్ల్ {
పెర్ల్
}
}
అకౌంటింగ్ {
unix
}
}

సవరించు /etc/freeradius/3.0/mods-enabled/perl

పెర్ల్ {
ఫైల్ పేరు = /usr/share/linotp/radius_linotp.pm
func_authenticate = ప్రమాణీకరించు
func_authorize = అధికారమిచ్చు
}

దురదృష్టవశాత్తూ, Debian 9లో radius_linotp.pm లైబ్రరీ రిపోజిటరీల నుండి ఇన్‌స్టాల్ చేయబడలేదు, కాబట్టి మేము దానిని github నుండి తీసుకుంటాము.

# apt install git
# git clone https://github.com/LinOTP/linotp-auth-freeradius-perl
# cd linotp-auth-freeradius-perl/
# cp radius_linotp.pm /usr/share/linotp/radius_linotp.pm

ఇప్పుడు /etc/freeradius/3.0/clients.conf ఎడిట్ చేద్దాం

క్లయింట్ సర్వర్లు {
ipaddr = 192.168.188.0/24
secret = నీ సంకేతపదము
}

ఇప్పుడు నానో /etc/linotp2/rlm_perl.iniని సరి చేద్దాం

మేము డెబియన్ 8లో ఇన్‌స్టాల్ చేస్తున్నప్పుడు అదే కోడ్‌ను అక్కడ అతికించాము (పైన వివరించబడింది)

ఆలోచన ప్రకారం అంతే. (ఇంకా పరీక్షించబడలేదు)

చాలా తరచుగా రెండు-కారకాల ప్రమాణీకరణతో రక్షించాల్సిన సిస్టమ్‌లను సెటప్ చేయడానికి నేను కొన్ని లింక్‌లను దిగువన ఉంచుతాను:
లో రెండు-కారకాల ప్రమాణీకరణను సెటప్ చేస్తోంది Apache2

Cisco ASAతో సెటప్ చేయండి(అక్కడ వేరే టోకెన్ జనరేషన్ సర్వర్ ఉపయోగించబడుతుంది, కానీ ASA యొక్క సెట్టింగులు ఒకే విధంగా ఉంటాయి).

రెండు-కారకాల ప్రమాణీకరణతో VPN

సర్దుబాటు sshలో రెండు కారకాల ప్రమాణీకరణ (LinOTP కూడా అక్కడ ఉపయోగించబడుతుంది) - రచయితకు ధన్యవాదాలు. అక్కడ మీరు LiOTP విధానాలను సెటప్ చేయడం గురించి ఆసక్తికరమైన విషయాలను కూడా కనుగొనవచ్చు.

అలాగే, అనేక సైట్‌ల యొక్క cms రెండు-కారకాల ప్రమాణీకరణకు మద్దతు ఇస్తుంది (WordPress కోసం, LinOTP దాని స్వంత ప్రత్యేక మాడ్యూల్‌ను కూడా కలిగి ఉంది github), ఉదాహరణకు, మీరు కంపెనీ ఉద్యోగుల కోసం మీ కార్పొరేట్ వెబ్‌సైట్‌లో రక్షిత విభాగాన్ని రూపొందించాలనుకుంటే.
ముఖ్యమైన వాస్తవం! Google Authenticatorని ఉపయోగించడానికి “Google autenteficator” బాక్స్‌ను చెక్ చేయవద్దు! QR కోడ్ అప్పుడు చదవబడదు... (విచిత్రమైన వాస్తవం)

ఈ కథనాన్ని వ్రాయడానికి, కింది కథనాల నుండి సమాచారం ఉపయోగించబడింది:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

రచయితలకు ధన్యవాదాలు.

మూలం: www.habr.com

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