
اڄ مان شيئر ڪرڻ چاهيان ٿو ته هڪ ڪارپوريٽ نيٽ ورڪ، سائيٽن، خدمتن، ssh کي بچائڻ لاءِ ٻه عنصر جي تصديق واري سرور ڪيئن قائم ڪجي. سرور ھيٺين ميلاپ کي هلائيندو: LinOTP + FreeRadius.
اسان کي ان جي ضرورت ڇو آهي؟
هي هڪ مڪمل طور تي مفت، آسان حل آهي، پنهنجي نيٽ ورڪ ۾، ٽئين پارٽي فراهم ڪندڙن کان آزاد.
هي خدمت تمام آسان آهي، بلڪل بصري، ٻين اوپن سورس پراڊڪٽس جي برعڪس، ۽ پڻ ڪيترن ئي ڪمن ۽ پاليسين کي سپورٽ ڪري ٿي (مثال طور، لاگ ان+پاسورڊ+(PIN+OTPToken)). API جي ذريعي، اهو ايس ايم ايس موڪلڻ جي خدمتن سان ضم ٿئي ٿو (LinOTP Config->Provider Config->SMS Provider)، موبائيل ايپليڪيشنن لاءِ ڪوڊ ٺاهي ٿو جهڙوڪ Google Authentificator ۽ گهڻو ڪجهه. منهنجو خيال آهي ته اها خدمت کان وڌيڪ آسان آهي جنهن ۾ بحث ڪيو ويو آهي .
هي سرور سسڪو اي ايس اي سان تمام سٺو ڪم ڪري ٿو، OpenVPN سرور، Apache2، ۽ عام طور تي تقريبن هر شيءِ سان جيڪا RADIUS سرور ذريعي تصديق جي حمايت ڪري ٿي (مثال طور، ڊيٽا سينٽر ۾ SSH لاءِ).
گهربل:
1) Debian 8 (جيسي) — لازمي طور تي! (ٽيسٽ انسٽاليشن تي debian 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ڪڏهن ڪڏهن "صاف" انسٽاليشن دوران، هن حڪم کي هلائڻ کان پوءِ، Debian ڏئي ٿو:
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 سيٽ اپ آهي. ٺيڪ آهي. بس حڪم وري هلايو.
سوال ڪرڻ Debiana:
gpg: поиск "913DFF12F86258E5" на hkp сервере keys.gnupg.net
(1) LSE LinOTP2 Packaging <linotp2@lsexperts.de>
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 ڊيٽابيس کي ٻيهر ترتيب ڏيڻ، سرڪاري دستاويزن ۾ ڳولهي سگهجي ٿو. . اتي توهان پڻ حڪم ڳولي سگهو ٿا: dpkg-reconfigure linotp parameters کي تبديل ڪرڻ لاءِ جيڪڏهن توهان اڳ ۾ ئي انسٽال ڪيو آهي mysql).
# apt-get install mysql-server# apt-get update (ان کي ٻيهر اپڊيٽ چيڪ ڪرڻ جي تڪليف نه ٿيندي)
انسٽال ڪريو LinOTP ۽ اضافي ماڊلز:
# apt-get install linotp اسان انسٽالر جي سوالن جا جواب ڏيون ٿا:
Apache2 استعمال ڪريو: ها
منتظم Linotp لاءِ پاسورڊ ٺاهيو: ”توهان جو پاسورڊ“
خود دستخط ٿيل سرٽيفڪيٽ ٺاهيو؟: ها
MySQL استعمال ڪريو؟: ها
ڊيٽابيس ڪٿي آهي: localhost
سرور تي هڪ LinOTP ڊيٽابيس (بنيادي نالو) ٺاهيو: LinOTP2
ڊيٽابيس لاءِ الڳ يوزر ٺاهيو: LinOTP2
اسان استعمال ڪندڙ لاءِ پاسورڊ سيٽ ڪيو: "توهان جو پاسورڊ"
ڇا مون کي هاڻي ڊيٽابيس ٺاهڻ گهرجي؟ (ڪجهه جهڙو "ڇا توهان پڪ سان چاهيو ٿا ..."): ها
MySQL روٽ پاسورڊ داخل ڪريو جيڪو توھان ٺاھيو آھي ان کي انسٽال ڪرڻ وقت: "YourPassword"
ٿي ويو.
(اختياري، توهان کي ان کي انسٽال ڪرڻ جي ضرورت ناهي)
# 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.confclient 192.168.188.0/24 {
secret = passwd # пароль для подключения клиентов
}اڳيون، هڪ صارف فائل ٺاهيو:
# touch /etc/freeradius/usersاسان فائل کي ايڊٽ ڪيو، ريڊيس کي ٻڌايو ته اسان تصديق لاءِ پرل استعمال ڪنداسين.
# nano /etc/freeradius/usersDEFAULT 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.iniURL=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۽ ان ۾ config ڪاپي ڪريو (ڪنھن شيء کي تبديل ڪرڻ جي ضرورت ناهي):
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 Config -> UserIdResolvers -> New
اسان چونڊون ٿا جيڪو اسان چاهيون ٿا: LDAP (AD win، LDAP samba)، يا SQL، يا فليٽ فائل سسٽم جا مقامي استعمال ڪندڙ.
گھربل فيلڊ ۾ ڀريو.
اڳيون اسان ٺاهيون ٿا REALMS:
مٿي ساڄي ڪنڊ ۾، ڪلڪ ڪريو LinOTP Config -> Realms -> New.
۽ اسان جي REALMS کي نالو ڏيو، ۽ اڳ ۾ ٺهيل UserIdResolvers تي پڻ ڪلڪ ڪريو.
FreeRadius کي هن سموري ڊيٽا جي ضرورت آهي /etc/linotp2/rlm_perl.ini فائل ۾، جيئن مون مٿي لکيو آهي، پوءِ جيڪڏهن توهان ان ۾ ترميم نه ڪئي آهي، ته هاڻي ڪريو.
سرور سڀ ترتيب ڏنل آهي.
اضافي
LinOTP سيٽ اپ ڪرڻ Debian 9:
تنصيب:
# 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 -puse 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
قسم = ايڪٽ
}
اختيار ڪرڻ {
اڳڀرائي
تازه ڪاري {
&ڪنٽرول:Auth-Type:= Perl
}
}
تصديق ڪريو {
Auth-Type Perl {
پرو
}
}
حساب ڪتاب
ايڪسڪس
}
}
ايڊٽ ڪريو /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
اسان اتي ساڳيو ڪوڊ داخل ڪريون ٿا جيئن انسٽال ڪرڻ وقت debian 8 (مٿي بيان ڪيل)
اهو سڀ ڪجهه خيال جي مطابق آهي. (اڃا تائين آزمائشي ناهي)
مان ھيٺ ڏنل ڪجھ لنڪس سسٽم کي ترتيب ڏيڻ تي ڇڏيندس جيڪي اڪثر ڪري ٻن عنصر جي تصديق سان محفوظ ٿيڻ جي ضرورت آھي.
۾ ٻه عنصر جي تصديق قائم ڪرڻ
(هڪ مختلف ٽوڪن نسل سرور اتي استعمال ڪيو ويو آهي، پر ASA جي سيٽنگون ساڳيون آهن).
adjustment (LinOTP پڻ اتي استعمال ڪيو ويندو آهي) - ليکڪ جي مهرباني. اتي توھان پڻ ڳولي سگھوٿا دلچسپ شيون سيٽ ڪرڻ بابت LiOTP پاليسين.
انهي سان گڏ، ڪيترن ئي سائيٽن جا سي ايم ايس ٻن عنصر جي تصديق جي حمايت ڪن ٿا (لاءِ WordPress LinOTP وٽ پڻ پنهنجو خاص ماڊل آهي )، مثال طور، جيڪڏهن توهان ڪمپني جي ملازمن لاءِ پنهنجي ڪارپوريٽ ويب سائيٽ تي هڪ محفوظ سيڪشن ٺاهڻ چاهيو ٿا.
اهم حقيقت! Google Authenticator استعمال ڪرڻ لاءِ “Google autentificator” باڪس نه چيڪ ڪريو! QR ڪوڊ پڙهڻ جي قابل نه آهي ... (عجيب حقيقت)
هي مضمون لکڻ لاءِ، هيٺين مضمونن مان معلومات استعمال ڪئي وئي:
ليکڪن جي مهرباني.
جو ذريعو: www.habr.com
