LinOTP ද්වි සාධක සත්‍යාපන සේවාදායකය

LinOTP ද්වි සාධක සත්‍යාපන සේවාදායකය

ආයතනික ජාලයක්, අඩවි, සේවා, ssh ආරක්ෂා කිරීම සඳහා ද්වි-සාධක සත්‍යාපන සේවාදායකයක් සකසන්නේ කෙසේද යන්න අද මට බෙදා ගැනීමට අවශ්‍යයි. සේවාදායකය පහත සංයෝජනය ක්‍රියාත්මක කරයි: LinOTP + FreeRadius.

අපට එය අවශ්ය වන්නේ ඇයි?
මෙය සම්පූර්ණයෙන්ම නොමිලේ, පහසු විසඳුමකි, එහිම ජාලය තුළ, තෙවන පාර්ශවීය සැපයුම්කරුවන්ගෙන් ස්වාධීන වේ.

මෙම සේවාව අනෙකුත් විවෘත කේත නිෂ්පාදන මෙන් නොව ඉතා පහසු, තරමක් දෘෂ්‍යමාන වන අතර, අතිවිශාල කාර්යයන් සහ ප්‍රතිපත්ති සංඛ්‍යාවකට සහය දක්වයි (උදාහරණයක් ලෙස, පිවිසුම්+මුරපදය+(PIN+OTPToken)). API හරහා, එය sms යැවීමේ සේවා (LinOTP Config->Provider Config->SMS සපයන්නා) සමඟ ඒකාබද්ධ වේ, Google Authentificator වැනි ජංගම යෙදුම් සඳහා කේත උත්පාදනය කරයි සහ තවත් බොහෝ දේ. මම හිතන්නේ එය සාකච්ඡා කර ඇති සේවාවට වඩා පහසු ය ලිපියයි.

මෙම සේවාදායකය Cisco ASA, OpenVPN සේවාදායකය, Apache2 සහ සාමාන්‍යයෙන් RADIUS සේවාදායකයක් හරහා සත්‍යාපනයට සහය දක්වන සෑම දෙයක්ම පාහේ සමඟ හොඳින් ක්‍රියා කරයි (උදාහරණයක් ලෙස, දත්ත මධ්‍යස්ථානයේ SSH සඳහා).

එය අවශ්‍යයි:

1) ඩේබියන් 8 (ජෙසී) - අනිවාර්යයෙන්! (ඩේබියන් 9 හි අත්හදා බැලීමේ ස්ථාපනය ලිපියේ අවසානයේ විස්තර කෙරේ)

ආරම්භය:

Debian 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 මූල මුරපදය ඇතුළත් කරන්න: "ඔබේ මුරපදය"
අමාරුයි.

(විකල්ප, ඔබ එය ස්ථාපනය කිරීමට අවශ්ය නැත)

# 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 web muzzle තුළ නිර්මාණය කර ඇති පරිශීලක කණ්ඩායමේ නම.
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 Config -> UserIdResolvers -> New ක්ලික් කරන්න
අපි අපට අවශ්‍ය දේ තෝරා ගනිමු: LDAP (AD win, LDAP samba), හෝ SQL, හෝ Flatfile පද්ධතියේ දේශීය පරිශීලකයින්.

අවශ්ය ක්ෂේත්ර පුරවන්න.

ඊළඟට අපි REALMS නිර්මාණය කරමු:
ඉහළ දකුණු කෙළවරේ, LinOTP Config -> Realms -> New ක්ලික් කරන්න.
සහ අපගේ REALMS වෙත නමක් ලබා දෙන්න, තවද කලින් නිර්මාණය කරන ලද UserIdResolvers මත ක්ලික් කරන්න.

FreeRadius හට මෙම සියලු දත්ත /etc/linotp2/rlm_perl.ini ගොනුව තුළ අවශ්‍ය වේ, මා ඉහත ලියා ඇති පරිදි, ඔබ එය එවකට සංස්කරණය නොකළේ නම්, දැන් එය කරන්න.

සේවාදායකය සියල්ල වින්‍යාස කර ඇත.

එකතු කිරීම:

Debian 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
type=auth
}
සවන් දෙන්න {
ipaddr = *
වරාය = 1813
වර්ගය = පනත
}
අවසරලත් {
පූර්ව ක්රියාවලිය
යාවත්කාලීන {
&control:Auth-Type := Perl
}
}
සත්‍යාපනය {
Auth-type Perl {
perl
}
}
ගිණුම්කරණය {
යුනික්ස්
}
}

සංස්කරණය /etc/freeradius/3.0/mods-enabled/perl

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
රහස = ඔබගේ මුරපදය
}

දැන් අපි nano /etc/linotp2/rlm_perl.ini නිවැරදි කරමු

අපි debian 8 හි ස්ථාපනය කරන විට එම කේතයම එහි අලවන්න (ඉහත විස්තර කර ඇත)

අදහස අනුව එච්චරයි. (තාම පරීක්ෂා කර නැත)

බොහෝ විට ද්වි-සාධක සත්‍යාපනය සමඟ ආරක්‍ෂා කළ යුතු පද්ධති සැකසීම පිළිබඳ සබැඳි කිහිපයක් මම පහත තබමි:
තුළ ද්වි-සාධක සත්‍යාපනය සැකසීම Apache2

Cisco ASA සමඟින් පිහිටුවීම(වෙනස් ටෝකන් උත්පාදන සේවාදායකයක් එහි භාවිතා වේ, නමුත් ASA හි සැකසුම් සමාන වේ).

ද්වි-සාධක සත්‍යාපනය සහිත VPN

ගැලපුම් ssh හි ද්වි සාධක සත්‍යාපනය (LinOTP ද එහි භාවිතා වේ) - කතුවරයාට ස්තූතියි. එහිදී ඔබට LiOTP ප්‍රතිපත්ති පිහිටුවීම පිළිබඳ රසවත් දේවල් ද සොයා ගත හැක.

එසේම, බොහෝ වෙබ් අඩවි වල cms ද්වි-සාධක සත්‍යාපනය සඳහා සහය දක්වයි (වර්ඩ්ප්‍රෙස් සඳහා, LinOTP සඳහා තමන්ගේම විශේෂ මොඩියුලයක් පවා ඇත. github), උදාහරණයක් ලෙස, ඔබට සමාගම් සේවකයින් සඳහා ඔබේ ආයතනික වෙබ් අඩවියේ ආරක්ෂිත අංශයක් සෑදීමට අවශ්‍ය නම්.
වැදගත් කරුණක්! Google Authenticator භාවිතා කිරීමට "Google autenteficator" කොටුව සලකුණු නොකරන්න! QR කේතය එවිට කියවිය නොහැක... (අමුතු කරුණ)

මෙම ලිපිය ලිවීම සඳහා, පහත සඳහන් ලිපිවල තොරතුරු භාවිතා කරන ලදී:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

කතුවරුන්ට ස්තූතියි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න