LinOTP ٻن عنصر جي تصديق سرور

LinOTP ٻن عنصر جي تصديق سرور

اڄ مان شيئر ڪرڻ چاهيان ٿو ته هڪ ڪارپوريٽ نيٽ ورڪ، سائيٽن، خدمتن، ssh کي بچائڻ لاءِ ٻه عنصر جي تصديق واري سرور ڪيئن قائم ڪجي. سرور ھيٺين ميلاپ کي هلائيندو: LinOTP + FreeRadius.

اسان کي ان جي ضرورت ڇو آهي؟
هي هڪ مڪمل طور تي مفت، آسان حل آهي، پنهنجي نيٽ ورڪ ۾، ٽئين پارٽي فراهم ڪندڙن کان آزاد.

هي خدمت تمام آسان آهي، بلڪل بصري، ٻين اوپن سورس پراڊڪٽس جي برعڪس، ۽ پڻ ڪيترن ئي ڪمن ۽ پاليسين کي سپورٽ ڪري ٿي (مثال طور، لاگ ان+پاسورڊ+(PIN+OTPToken)). API جي ذريعي، اهو ايس ايم ايس موڪلڻ جي خدمتن سان ضم ٿئي ٿو (LinOTP Config->Provider Config->SMS Provider)، موبائيل ايپليڪيشنن لاءِ ڪوڊ ٺاهي ٿو جهڙوڪ 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 ڊيٽابيس کي ٻيهر ترتيب ڏيڻ، سرڪاري دستاويزن ۾ ڳولهي سگهجي ٿو. لنڪ. اتي توهان پڻ حڪم ڳولي سگهو ٿا: 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.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 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

۽ ان ۾ 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 فائل ۾، جيئن مون مٿي لکيو آهي، پوءِ جيڪڏهن توهان ان ۾ ترميم نه ڪئي آهي، ته هاڻي ڪريو.

سرور سڀ ترتيب ڏنل آهي.

اضافي

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
قسم = تصديق
}
ٻڌ {
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 = اختيار ڏيڻ
}

بدقسمتي سان، ڊيبين 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 تي انسٽال ڪيو (مٿي بيان ڪيو ويو)

اهو سڀ ڪجهه خيال جي مطابق آهي. (اڃا تائين آزمائشي ناهي)

مان ھيٺ ڏنل ڪجھ لنڪس سسٽم کي ترتيب ڏيڻ تي ڇڏيندس جيڪي اڪثر ڪري ٻن عنصر جي تصديق سان محفوظ ٿيڻ جي ضرورت آھي.
۾ ٻه عنصر جي تصديق قائم ڪرڻ Apache2

Cisco ASA سان سيٽ اپ ڪريو(هڪ مختلف ٽوڪن نسل سرور اتي استعمال ڪيو ويو آهي، پر ASA جي سيٽنگون ساڳيون آهن).

VPN ٻن عنصر جي تصديق سان

adjustment ssh ۾ ٻه عنصر جي تصديق (LinOTP پڻ اتي استعمال ڪيو ويندو آهي) - ليکڪ جي مهرباني. اتي توھان پڻ ڳولي سگھوٿا دلچسپ شيون سيٽ ڪرڻ بابت LiOTP پاليسين.

انهي سان گڏ، ڪيترن ئي سائيٽن جا سي ايم ايس ٻن عنصر جي تصديق جي حمايت ڪن ٿا (ورڈپریس لاء، LinOTP پڻ ان لاءِ پنهنجو خاص ماڊل آهي. GitHub)، مثال طور، جيڪڏهن توهان ڪمپني جي ملازمن لاءِ پنهنجي ڪارپوريٽ ويب سائيٽ تي هڪ محفوظ سيڪشن ٺاهڻ چاهيو ٿا.
اهم حقيقت! Google Authenticator استعمال ڪرڻ لاءِ “Google autentificator” باڪس نه چيڪ ڪريو! QR ڪوڊ پڙهڻ جي قابل نه آهي ... (عجيب حقيقت)

هي مضمون لکڻ لاءِ، هيٺين مضمونن مان معلومات استعمال ڪئي وئي:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

ليکڪن جي مهرباني.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو