LinOTP ባለ ሁለት ደረጃ ማረጋገጫ አገልጋይ

LinOTP ባለ ሁለት ደረጃ ማረጋገጫ አገልጋይ

ዛሬ የኮርፖሬት ኔትወርክን, ጣቢያዎችን, አገልግሎቶችን, sshን ለመጠበቅ ባለ ሁለት ደረጃ የማረጋገጫ አገልጋይ እንዴት ማዋቀር እንደሚቻል ማጋራት እፈልጋለሁ. አገልጋዩ የሚከተለውን ጥምረት ይሰራል፡ LinOTP + FreeRadius።

ለምን ያስፈልገናል?
ይህ በራሱ አውታረመረብ ውስጥ ከሶስተኛ ወገን አቅራቢዎች ነፃ የሆነ ሙሉ ለሙሉ ነፃ ምቹ መፍትሄ ነው።

ይህ አገልግሎት ከሌሎች የክፍት ምንጭ ምርቶች በተለየ መልኩ በጣም ምቹ እና ምስላዊ ነው እንዲሁም እጅግ በጣም ብዙ የሆኑ ተግባራትን እና ፖሊሲዎችን ይደግፋል (ለምሳሌ፦ መግቢያ+የይለፍ ቃል+(ፒን+OTPTOken))። በኤፒአይ በኩል ከኤስኤምኤስ መላኪያ አገልግሎቶች (LinOTP Config->አቅራቢ ኮንፊግ->ኤስኤምኤስ አቅራቢ) ጋር ይዋሃዳል፣ እንደ ጎግል አረጋጋጭ እና ሌሎችም የሞባይል አፕሊኬሽኖች ኮዶችን ያመነጫል። ከተነጋገረው አገልግሎት የበለጠ አመቺ ይመስለኛል ጽሑፍ.

ይህ አገልጋይ ከሲስኮ ASA፣ OpenVPN አገልጋይ፣ Apache2 እና በአጠቃላይ በ RADIUS አገልጋይ (ለምሳሌ በመረጃ ማዕከል ውስጥ ላለው SSH) ማረጋገጥን ከሚደግፉ ሁሉም ነገሮች ጋር በትክክል ይሰራል።

ያስፈልጋል

1) ዴቢያን 8 (ጄሲ) - የግድ! (በዲቢያን 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 ይጠቀሙ: አዎ
ለአስተዳዳሪ ሊኖትፕ የይለፍ ቃል ይፍጠሩ: "የእርስዎ የይለፍ ቃል"
በራስ የተፈረመ የምስክር ወረቀት ያመንጭ?: አዎ
MySQL ተጠቀም?: አዎ
የመረጃ ቋቱ የት ነው የሚገኘው፡ localhost
በአገልጋዩ ላይ የLinOTP ዳታቤዝ (መሰረታዊ ስም) ይፍጠሩ: LinOTP2
ለዳታቤዝ የተለየ ተጠቃሚ ይፍጠሩ፡ LinOTP2
ለተጠቃሚው የይለፍ ቃል አዘጋጅተናል: "የእርስዎ የይለፍ ቃል"
አሁን የውሂብ ጎታ መፍጠር አለብኝ? (እንደ “እርግጠኛ ነህ ትፈልጋለህ…” ያለ)፡ አዎ
ሲጭኑት የፈጠሩትን MySQL root ይለፍ ቃል ያስገቡ፡ “የእርስዎ የይለፍ ቃል”
ተጠናቅቋል.

(አማራጭ ፣ እሱን መጫን የለብዎትም)

# apt-get install linotp-adminclient-cli 

(አማራጭ ፣ እሱን መጫን የለብዎትም)

# apt-get install libpam-linotp  

እና ስለዚህ የእኛ Linotp የድር በይነገጽ አሁን የሚገኘው በ፡

"<b>https</b>: //IP_сервера/manage"

በድር በይነገጽ ውስጥ ስላለው ቅንጅቶች ትንሽ ቆይቼ እናገራለሁ።

አሁን, በጣም አስፈላጊው ነገር! ፍሪራዲየስን እናነሳለን እና ከሊኖትፕ ጋር እናገናኘዋለን።

ከ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 አድራሻ)
URL=https://172.17.14.103/validate/simplecheck
በLinOTP ድር በይነገጽ ውስጥ የምንፈጥረው አካባቢያችን።)
REALM = ክንድ1
#በLinOTP ድር አፈሙዝ ውስጥ የተፈጠረው የተጠቃሚ ቡድን ስም።
RESCONF=ጠፍጣፋ_ፋይል
#አማራጭ፡ ሁሉም ነገር በትክክል የሚሰራ ከመሰለ አስተያየት ይስጡ
ማረም=እውነት
#አማራጭ፡ ይህንን ተጠቀም፣ በራስ የተፈረሙ ሰርተፊኬቶች ካሉ፣ አለበለዚያ አስተያየት ይስጡ (ኤስኤስኤል የራሳችንን ሰርተፍኬት ከፈጠርን እና ማረጋገጥ ከፈለግን)
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 Config -> UserIdResolvers -> አዲስን ጠቅ ያድርጉ
የምንፈልገውን እንመርጣለን፡ LDAP (AD win፣ LDAP samba)፣ ወይም SQL፣ ወይም የFlatfile ስርዓት የአካባቢ ተጠቃሚዎች።

አስፈላጊዎቹን መስኮች ይሙሉ.

በመቀጠል REALMS እንፈጥራለን፡-
በላይኛው ቀኝ ጥግ ላይ LinOTP Config -> Realms -> አዲስን ጠቅ ያድርጉ።
እና ለ REALMS ስም ስጡ፣ እና እንዲሁም ቀደም ሲል የተፈጠሩትን UserIdResolvers ላይ ጠቅ ያድርጉ።

FreeRadius ይህን ሁሉ ውሂብ በ /etc/linotp2/rlm_perl.ini ፋይል ውስጥ ያስፈልገዋል፣ስለላይ እንደፃፍኩት፣ስለዚህ ያኔ ካላስተካከሉ፣አሁን ያድርጉት።

አገልጋዩ ሁሉም ተዋቅሯል።

ማከል

LinOTP በዴቢያን 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

(በነባሪ ፣ በዴቢያን 9 mysql (mariaDB) የስር ይለፍ ቃል ለማዘጋጀት አይሰጥም ፣ በእርግጥ ባዶ መተው ይችላሉ ፣ ግን ዜናውን ካነበቡ ፣ ይህ ብዙውን ጊዜ ወደ “epic fails” ይመራል ፣ ስለዚህ እኛ እናስቀምጠዋለን። ለማንኛውም)

# 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

ኮዱን ለጥፍ (በጁሪኤም የተላከ፣ ለእሱ አመሰግናለሁ!)

አገልጋይ ሊኖትፕ {
አዳምጥ {
አይፓድድር = *
ወደብ = 1812
ዓይነት=ማሳተፍ
}
አዳምጥ {
አይፓድድር = *
ወደብ = 1813
አይነት = acct
}
ፈቀዳ
ቅድመ ሂደት
አዘምን {
&ቁጥጥር:Auth-Type:= Perl
}
}
ማረጋገጥ {
አዉት-ዓይነት ፐርል {
ፔርል
}
}
የሂሳብ አያያዝ {
ዩኒክስ
}
}

አርትዕ /etc/freeradius/3.0/mods-enabled/perl

ፐርል {
የፋይል ስም = /usr/share/linotp/radius_linotp.pm
func_authenticate = አረጋጋጭ
func_authorize = ፍቃድ መስጠት
}

እንደ አለመታደል ሆኖ በዴቢያን 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 እናርመው

በዲቢያን 8 ላይ ሲጫኑ ተመሳሳይ ኮድ እዚያ እንለጥፋለን (ከላይ የተገለጸው)

ያ ሁሉ እንደ ሃሳቡ ነው። (ገና አልተሞከረም)

ብዙውን ጊዜ በሁለት-ደረጃ ማረጋገጫ ሊጠበቁ የሚያስፈልጋቸው ስርዓቶችን ስለማዋቀር ከጥቂት አገናኞች በታች እተወዋለሁ።
ውስጥ ባለ ሁለት ደረጃ ማረጋገጫን በማዘጋጀት ላይ Apache2

በሲስኮ ASA ያዋቅሩ(የተለየ የቶከን ትውልድ አገልጋይ እዚያ ጥቅም ላይ ይውላል, ነገር ግን የ ASA ቅንጅቶች ራሱ ተመሳሳይ ናቸው).

ቪፒኤን ባለ ሁለት ደረጃ ማረጋገጫ

በደንብ ማድረግ በ ssh ውስጥ ባለ ሁለት ደረጃ ማረጋገጫ (LinOTP እዚያም ጥቅም ላይ ይውላል) - ለጸሐፊው ምስጋና ይግባው. እዚያም የLiOTP ፖሊሲዎችን ስለማዘጋጀት አስደሳች ነገሮችን ማግኘት ይችላሉ።

እንዲሁም የበርካታ ድረ-ገጾች ሴሜዎች ባለ ሁለት ደረጃ ማረጋገጫን ይደግፋሉ (ለዎርድፕረስ፣ LinOTP የራሱ ልዩ ሞጁል አለው ለ የፊልሙ), ለምሳሌ, በድርጅትዎ ድር ጣቢያ ላይ ለኩባንያው ሰራተኞች ጥበቃ የሚደረግለት ክፍል ማድረግ ከፈለጉ.
አስፈላጊ እውነታ! ጎግል አረጋጋጭ ለመጠቀም የ"Google autenteficator" ሳጥን ላይ ምልክት አታድርግ! የQR ኮድ ከዚያ በኋላ አይነበብም... (እንግዳ እውነታ)

ይህንን ጽሑፍ ለመጻፍ ከሚከተሉት መጣጥፎች የተገኘው መረጃ ጥቅም ላይ ውሏል።
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

ለደራሲዎች ምስጋና ይግባው.

ምንጭ: hab.com

አስተያየት ያክሉ