نن زه غواړم شریک کړم چې څنګه د کارپوریټ شبکې، سایټونو، خدماتو، ssh ساتلو لپاره د دوه فاکتور تصدیق کولو سرور تنظیم کړم. سرور به لاندې ترکیب پرمخ وړي: LinOTP + FreeRadius.
ولې موږ ورته اړتیا لرو؟
دا په بشپړ ډول وړیا ، اسانه حل دی ، په خپله شبکه کې ، د دریمې ډلې چمتو کونکو څخه خپلواک.
دا خدمت خورا اسانه دی ، د نورو خلاصې سرچینې محصولاتو برعکس ، خورا بصری دی ، او د ډیری دندو او پالیسیو ملاتړ هم کوي (د مثال په توګه ، ننوت + پاسورډ + (PIN + OTPToken)). د API له لارې، دا د ایس ایم ایس لیږلو خدماتو سره مدغم کیږي (LinOTP Config->Provider Config->SMS Provider)، د ګرځنده غوښتنلیکونو لپاره کوډونه رامینځته کوي لکه د ګوګل تصدیق کونکي او نور ډیر څه. زما په اند دا د هغه خدمت په پرتله خورا اسانه دی چې په کې بحث شوی
دا سرور د سیسکو 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 ډیټابیس بیا تنظیم کول، په رسمي اسنادو کې موندل کیدی شي
# apt-get install mysql-server
# apt-get update
(دا به زیان ونه رسوي چې بیا تازه معلومات وګورئ)
LinOTP او اضافي ماډلونه نصب کړئ:
# apt-get install linotp
موږ د نصب کونکي پوښتنو ته ځواب ورکوو:
Apache2 وکاروئ: هو
د اډمین لینټپ لپاره پټنوم جوړ کړئ: "ستاسو پټنوم"
د ځان لاسلیک شوی سند تولید کړئ؟: هو
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
موږ فایل ترمیم کوو، ریډیس ته ووایو چې موږ به د تصدیق لپاره پرل وکاروو.
# nano /etc/freeradius/users
DEFAULT Auth-type := perl
بیا، فایل سم کړئ /etc/freeradius/modules/perl
# nano /etc/freeradius/modules/perl
موږ اړتیا لرو د ماډل پیرامیټر کې د پرل لینټپ سکریپټ ته لاره مشخص کړو:
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
}
بیا به موږ د سیم لینک جوړ کړو:
# 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 -> New کلیک وکړئ
موږ هغه څه غوره کوو چې موږ یې غواړو: LDAP (AD win، LDAP samba)، یا SQL، یا د فلیټ فایل سیسټم محلي کاروونکي.
اړین ځایونه ډک کړئ.
بیا موږ REALMS رامینځته کوو:
په پورتنۍ ښیې کونج کې ، د LinOTP کنفیګ -> اصلیت -> نوی کلیک وکړئ.
او زموږ 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
(په ډیفالټ کې ، په ډیبیان 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
ډول = acct
}
اجازه ورکول {
مخکې بهیر
تازه کول {
&کنټرول:د سند ډول:= پرل
}
}
مستند کول {
د مستند ډول پرل {
پریل
}
}
محاسبه {
یونیسیس
}
}
ایډیټ /etc/freeradius/3.0/mods-enabled/perl
پرل {
د فایل نوم = /usr/share/linotp/radius_linotp.pm
func_authenticate = تصدیق کول
func_authorize = اجازه ورکول
}
له بده مرغه، په Debian 9 کې د radius_linotp.pm کتابتون د ذخیره کولو څخه ندی نصب شوی، نو موږ به یې د ګیتوب څخه واخلو.
# 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
پټ = ستاسو پټنوم
}
اوس راځئ چې نانو /etc/linotp2/rlm_perl.ini سم کړو
موږ ورته کوډ هلته پیسټ کوو لکه څنګه چې په ډیبیان 8 کې نصب کول (پورته تشریح شوي)
دا ټول د نظر سره سم دي. (تر اوسه نه دی ازمویل شوی)
زه به لاندې د سیسټمونو تنظیم کولو لپاره یو څو لینکونه پریږدم چې ډیری وختونه د دوه فاکتور تصدیق سره خوندي کولو ته اړتیا لري:
په کې د دوه فاکتور تصدیق تنظیم کول
تعدیلات
همچنان ، د ډیری سایټونو cm د دوه فاکتور تصدیق ملاتړ کوي (د WordPress لپاره ، LinOTP حتی د دې لپاره خپل ځانګړي ماډل لري
مهم حقیقت! د ګوګل تصدیق کونکي کارولو لپاره د "ګوګل تصدیق کونکي" بکس مه چیک کړئ! بیا د QR کوډ د لوستلو وړ نه دی ... (عجیب حقیقت)
د دې مقالې لیکلو لپاره، د لاندې مقالو معلومات کارول شوي:
د لیکوالانو څخه مننه.
سرچینه: www.habr.com