LinOTP دو فیکٹر تصدیقی سرور

LinOTP دو فیکٹر تصدیقی سرور

آج میں یہ بتانا چاہتا ہوں کہ کارپوریٹ نیٹ ورک، سائٹس، سروسز، ایس ایس ایچ کی حفاظت کے لیے دو فیکٹر تصدیقی سرور کیسے ترتیب دیا جائے۔ سرور درج ذیل مجموعہ کو چلائے گا: LinOTP + FreeRadius۔

ہمیں اس کی ضرورت کیوں ہے؟
یہ ایک مکمل طور پر مفت، آسان حل ہے، اس کے اپنے نیٹ ورک کے اندر، تیسرے فریق فراہم کنندگان سے آزاد۔

یہ سروس بہت آسان ہے، کافی بصری ہے، دیگر اوپن سورس پروڈکٹس کے برعکس، اور بہت زیادہ فنکشنز اور پالیسیوں کو بھی سپورٹ کرتی ہے (مثال کے طور پر لاگ ان+پاس ورڈ+(PIN+OTPToken))۔ API کے ذریعے، یہ ایس ایم ایس بھیجنے کی خدمات (LinOTP Config->Provider Config->SMS Provider) کے ساتھ مربوط ہوتا ہے، موبائل ایپلیکیشنز جیسے کہ Google Authentificator اور بہت کچھ کے لیے کوڈ تیار کرتا ہے۔ میرے خیال میں یہ اس خدمت سے زیادہ آسان ہے جس میں بات کی گئی ہے۔ آرٹیکل.

یہ سرور Cisco ASA، OpenVPN سرور، Apache2، اور عام طور پر تقریباً ہر اس چیز کے ساتھ کام کرتا ہے جو RADIUS سرور کے ذریعے تصدیق کی حمایت کرتا ہے (مثال کے طور پر، ڈیٹا سینٹر میں SSH کے لیے)۔

اس کی ضرورت ہے:

1) Debian 8 (jessie) - ضرور! (ڈیبین 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 ڈیٹا بیس کو دوبارہ ترتیب دینا، کے لیے سرکاری دستاویزات میں پایا جا سکتا ہے لنک. وہاں آپ کو کمانڈ بھی مل سکتی ہے: dpkg-reconfigure linotp پیرامیٹرز کو تبدیل کرنے کے لیے اگر آپ نے پہلے ہی mysql انسٹال کر رکھا ہے)۔

# apt-get install mysql-server

# apt-get update

(دوبارہ اپ ڈیٹس چیک کرنے سے تکلیف نہیں ہوگی)
LinOTP اور اضافی ماڈیولز انسٹال کریں:

# apt-get install linotp

ہم انسٹالر کے سوالات کا جواب دیتے ہیں:
Apache2 استعمال کریں: ہاں
ایڈمن Linotp کے لیے ایک پاس ورڈ بنائیں: "آپ کا پاس ورڈ"
خود دستخط شدہ سرٹیفکیٹ تیار کریں؟: ہاں
MySQL استعمال کریں؟: ہاں
ڈیٹا بیس کہاں واقع ہے: لوکل ہوسٹ
سرور پر ایک 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=rearm1
# صارف گروپ کا نام جو 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

ذاتی طور پر، میں ڈیفالٹ Radius سائٹس کو ختم کرتا ہوں، لیکن اگر آپ کو ان کی ضرورت ہو، تو آپ یا تو ان کی تشکیل میں ترمیم کر سکتے ہیں یا انہیں غیر فعال کر سکتے ہیں۔

# 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 فائل میں درکار ہے، جیسا کہ میں نے اوپر لکھا ہے، لہذا اگر آپ نے اس میں ترمیم نہیں کی ہے، تو ابھی کریں۔

سرور تمام ترتیب شدہ ہے۔

اضافہ:

ڈیبین 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

کوڈ چسپاں کریں (جوری ایم کے ذریعہ بھیجا گیا ہے، اس کے لئے اس کا شکریہ!):

سرور linotp {
سنو {
ipaddr = *
پورٹ = 1812
type=auth
}
سنو {
ipaddr = *
پورٹ = 1813
قسم = ایکٹ
}
مجاز {
پری عمل
اپ ڈیٹ {
&control:Auth-Type := پرل
}
}
تصدیق کریں {
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

ہم وہاں وہی کوڈ پیسٹ کرتے ہیں جیسا کہ ڈیبین 8 پر انسٹال کرتے وقت (اوپر بیان کیا گیا ہے)

یہ سب خیال کے مطابق ہے. (ابھی تک ٹیسٹ نہیں ہوا)

میں ذیل میں کچھ لنکس کو سیٹ اپ کرنے کے بارے میں چھوڑوں گا جن کو اکثر دو عنصر کی توثیق کے ساتھ محفوظ کرنے کی ضرورت ہوتی ہے۔
میں دو عنصر کی توثیق ترتیب دینا Apache2

Cisco ASA کے ساتھ سیٹ اپ کریں۔(وہاں ایک مختلف ٹوکن جنریشن سرور استعمال کیا جاتا ہے، لیکن خود ASA کی ترتیبات ایک جیسی ہیں)۔

دو عنصر کی توثیق کے ساتھ VPN

ایڈجسٹمنٹ ssh میں دو عنصر کی توثیق (LinOTP بھی وہاں استعمال ہوتا ہے) - مصنف کا شکریہ۔ وہاں آپ کو LiOTP پالیسیاں ترتیب دینے کے بارے میں دلچسپ چیزیں بھی مل سکتی ہیں۔

اس کے علاوہ، بہت سی سائٹوں کے سی ایم دو عنصر کی توثیق کی حمایت کرتے ہیں (ورڈپریس کے لیے، LinOTP کا اپنا خصوصی ماڈیول بھی ہے گاٹہوب)، مثال کے طور پر، اگر آپ کمپنی کے ملازمین کے لیے اپنی کارپوریٹ ویب سائٹ پر ایک محفوظ سیکشن بنانا چاہتے ہیں۔
اہم حقیقت! Google Authenticator استعمال کرنے کے لیے "Google autenteficator" باکس کو چیک نہ کریں! پھر QR کوڈ پڑھنے کے قابل نہیں ہے ... (عجیب حقیقت)

اس مضمون کو لکھنے کے لیے، درج ذیل مضامین سے معلومات استعمال کی گئیں:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

مصنفین کا شکریہ۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں