ዛሬ የኮርፖሬት ኔትወርክን, ጣቢያዎችን, አገልግሎቶችን, 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 ዳታቤዝ እንደገና ማዋቀርን ጨምሮ ተጨማሪ መረጃ ለኦፊሴላዊው ሰነድ ውስጥ ይገኛል።
# 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 ላይ ሲጫኑ ተመሳሳይ ኮድ እዚያ እንለጥፋለን (ከላይ የተገለጸው)
ያ ሁሉ እንደ ሃሳቡ ነው። (ገና አልተሞከረም)
ብዙውን ጊዜ በሁለት-ደረጃ ማረጋገጫ ሊጠበቁ የሚያስፈልጋቸው ስርዓቶችን ስለማዋቀር ከጥቂት አገናኞች በታች እተወዋለሁ።
ውስጥ ባለ ሁለት ደረጃ ማረጋገጫን በማዘጋጀት ላይ
በደንብ ማድረግ
እንዲሁም የበርካታ ድረ-ገጾች ሴሜዎች ባለ ሁለት ደረጃ ማረጋገጫን ይደግፋሉ (ለዎርድፕረስ፣ LinOTP የራሱ ልዩ ሞጁል አለው ለ
አስፈላጊ እውነታ! ጎግል አረጋጋጭ ለመጠቀም የ"Google autenteficator" ሳጥን ላይ ምልክት አታድርግ! የQR ኮድ ከዚያ በኋላ አይነበብም... (እንግዳ እውነታ)
ይህንን ጽሑፍ ለመጻፍ ከሚከተሉት መጣጥፎች የተገኘው መረጃ ጥቅም ላይ ውሏል።
ለደራሲዎች ምስጋና ይግባው.
ምንጭ: hab.com