Îro ez dixwazim parve bikim ka meriv çawa serverek pejirandina du-faktorî saz dike da ku tora pargîdanî, malper, karûbar, ssh biparêze. Pêşkêşkar dê kombînasyona jêrîn bimeşîne: LinOTP + FreeRadius.
Çima em hewce ne?
Ev çareseriyek bi tevahî belaş, hêsan e, di nav tora xwe de, ji pêşkêşkerên sêyemîn serbixwe.
Ev karûbar pir hêsan e, pir dîtbar e, berevajî hilberên din ên çavkaniya vekirî ye, û di heman demê de hejmareke mezin ji fonksiyon û polîtîkayan jî piştgirî dike (Mînakî, têketin + şîfre + (PIN + OTPToken)). Bi navgîniya API-ê, ew bi karûbarên şandina sms-ê (LinOTP Config->Pêşkêşkera Pêşkêşkar->Pêşkêşkera SMS-ê) re dike yek, ji bo serîlêdanên mobîl ên wekî Google Authentificator û hêj bêtir kodan çêdike. Ez difikirim ku ew ji karûbarê ku tê de hatî nîqaş kirin hêsantir e
Ev server bi Cisco ASA, servera OpenVPN, Apache2, û bi gelemperî bi hema hema her tiştê ku piştrastkirina bi navgîniya serverek RADIUS re piştgirî dike (Mînakî, ji bo SSH di navenda daneyê de) re bêkêmasî dixebite.
Pêdivî ye:
1) Debian 8 (jessie) - Necessarily! (sazkirina ceribandinê ya li ser debian 9 di dawiya gotarê de tête diyar kirin)
Destpêkirin:
Sazkirina Debian 8.
Depoya LinOTP zêde bikin:
# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.list
Zêdekirina keys:
# gpg --search-keys 913DFF12F86258E5
Carinan di dema sazkirina "paqij" de, piştî xebitandina vê fermanê, Debian nîşan dide:
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
Ev sazkirina gnupg ya destpêkê ye. Başe. Tenê fermanê dîsa bimeşînin.
Ji bo pirsa Debian:
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) Выход>
Em bersiv didin: 1
Next:
# gpg --export 913DFF12F86258E5 | apt-key add -
# apt-get update
Mysql saz bikin. Di teoriyê de, hûn dikarin serverek din a sql bikar bînin, lê ji bo sadebûnê ez ê wekî ku ji bo LinOTP tê pêşniyar kirin bikar bînim.
(agahiyên zêde, tevî veavakirina databasa LinOTP, dikare di belgeya fermî de were dîtin ji bo
# apt-get install mysql-server
# apt-get update
(Zêra nabe ku hûn nûvekirinan dîsa kontrol bikin)
LinOTP û modulên din saz bikin:
# apt-get install linotp
Em bersiva pirsên sazkerê didin:
Apache2 bikar bînin: erê
Ji bo rêveberê Linotp şîfreyek çêbikin: "Şîfreya we"
Sertîfîkaya xwe-îmzakirî biafirîne?: erê
MySQL bikar bînin?: erê
Database li ku ye: localhost
Li ser serverê databasek LinOTP (navê bingehîn) biafirînin: LinOTP2
Ji bo databasê bikarhênerek cuda biafirînin: LinOTP2
Me şîfreyek ji bikarhêner re destnîşan kir: "Şîfreya we"
Ma ez niha databasek biafirînim? (tiştek mîna "Ma hûn guman dikin ku hûn dixwazin ..."): erê
Şîfreya root ya MySQL ya ku we dema sazkirina wê afirandiye binivîse: "Password"
Çêbû.
(vebijarkî, hûn ne hewce ne ku wê saz bikin)
# apt-get install linotp-adminclient-cli
(vebijarkî, hûn ne hewce ne ku wê saz bikin)
# apt-get install libpam-linotp
Ji ber vê yekê navbeynkariya weba me Linotp naha li vir heye:
"<b>https</b>: //IP_сервера/manage"
Ez ê hinekî paşê li ser mîhengên di navgîniya malperê de biaxivim.
Niha, ya herî girîng! Em FreeRadius bilind dikin û wê bi Linotp ve girêdidin.
Ji bo xebata bi LinOTP re FreeRadius û modul saz bikin
# apt-get install freeradius linotp-freeradius-perl
veavakirina xerîdar û radiusa Bikarhêner hilanînê.
# mv /etc/freeradius/clients.conf /etc/freeradius/clients.old
# mv /etc/freeradius/users /etc/freeradius/users.old
Pelê xerîdarek vala biafirînin:
# touch /etc/freeradius/clients.conf
Guhertina pelê mîhengê meya nû (veavakirina piştgir dikare wekî mînak were bikar anîn)
# nano /etc/freeradius/clients.conf
client 192.168.188.0/24 {
secret = passwd # пароль для подключения клиентов
}
Piştre, pelê bikarhênerek çêbikin:
# touch /etc/freeradius/users
Em pelê diguherînin, ji radiusê re dibêjin ku em ê perl ji bo pejirandinê bikar bînin.
# nano /etc/freeradius/users
DEFAULT Auth-type := perl
Piştre, pelê biguherînin /etc/freeradius/modules/perl
# nano /etc/freeradius/modules/perl
Pêdivî ye ku em di pîvana modulê de riya bernivîsa perl linotp diyar bikin:
Perl { .......
.........
<source lang="bash">module = /usr/lib/linotp/radius_linotp.pm
... ..
Dûv re, em pelek diafirînin ku tê de em dibêjin (domîn, databas an pel) daneyan ji kîjanê bigirin.
# 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
Ez ê li vir hinekî hûrgulî biçim ji ber ku girîng e:
Danasîna tevahî ya pelê bi şîroveyan:
#IP-ya servera linOTP (navnîşa IP-ya servera meya LinOTP)
URL=https://172.17.14.103/validate/simplecheck
#Herêma me ya ku em ê di navgîniya webê ya LinOTP de biafirînin.)
REALM=piştgir1
#Navê grûpa bikarhêner a ku di pelika tevna LinOTP de hatî çêkirin.
RESCONF=pel_flat
#vebijarkî: heke her tişt baş xuya dike şîrove bike
Debug=Rast
#vebijarkî: vê yekê bikar bînin, heke we sertîfîkayên xwe-îmzakirî hene, wekî din şîrove bikin (SSL heke em sertîfîkaya xwe biafirînin û bixwazin wê verast bikin)
SSL_CHECK=Derew
Piştre, pelê /etc/freeradius/sites-available/linotp biafirînin
# touch /etc/freeradius/sites-available/linotp
# nano /etc/freeradius/sites-available/linotp
Û konfigurasyonê li wê kopî bikin (ne hewce ye ku tiştek biguherînin):
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
}
Piştre em ê girêdanek SIM-ê çêbikin:
# ln -s ../sites-available/linotp /etc/freeradius/sites-enabled
Bi kesane, ez malperên Radiusê yên xwerû dikujim, lê heke hûn hewceyê wan bin, hûn dikarin konfigurasyona wan biguherînin an wan neçalak bikin.
# rm /etc/freeradius/sites-enabled/default
# rm /etc/freeradius/sites-enabled/inner-tunnel
# service freeradius reload
Naha em vegerin ser rûyê webê û bi hûrgulî lê binihêrin:
Li goşeya rastê ya jorîn bikirtînin LinOTP Config -> UserIdResolvers -> Nû
Em tiştê ku em dixwazin hilbijêrin: LDAP (serkeftina AD, samba LDAP), an SQL, an bikarhênerên herêmî yên pergala Flatfile.
Zeviyên pêwîst dagirin.
Piştre em REALMS ava dikin:
Li quncika jorîn a rastê, bikirtînin LinOTP Config -> Realms -> Nû.
û navek bidin REALMSên me, û her weha li ser UserIdResolvers-ên ku berê hatine afirandin bikirtînin.
FreeRadius hewceyê van hemî daneyan di pelê /etc/linotp2/rlm_perl.ini de ye, wekî ku min li jor nivîsand, ji ber vê yekê heke we wê hingê weguhast nekir, nuha bikin.
Pêşkêşkar hemî mîheng kirin.
Addition:
Li Debian 9-ê LinOTP saz kirin:
Installation:
# 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
(bi xwerû, di Debian 9 de mysql (mariaDB) pêşkêşî danîna şîfreyek root nake, bê guman hûn dikarin wê vala bihêlin, lê heke hûn nûçeyan bixwînin, ev pir caran dibe sedema "serkeftina epîk", ji ber vê yekê em ê saz bikin. herçi jî)
# 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
Kodê bişînin (ji hêla JuriM ve hatî şandin, spas ji bo wî!):
server linotp {
guhdarî bike {
ipaddr = *
port = 1812
type=auth
}
guhdarî bike {
ipaddr = *
port = 1813
cure = acct
}
destûr kirin {
pêşdibistanê
nûvekirin {
&control:Auth-Type := Perl
}
}
rastkirin {
Auth-Type Perl {
perl
}
}
hesabkirin {
unix
}
}
Biguherîne /etc/freeradius/3.0/mods-enabled/perl
perl {
navê pelê = /usr/share/linotp/radius_linotp.pm
func_authenticate = verastkirin
func_autorize = destûr
}
Mixabin, di Debian 9 de pirtûkxaneya radius_linotp.pm ji depoyan nehatiye saz kirin, ji ber vê yekê em ê wê ji github bistînin.
# 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
niha em /etc/freeradius/3.0/clients.conf biguherînin
pêşkêşkerên xerîdar {
ipaddr = 192.168.188.0/24
veşartî = şîfreya te
}
Naha em nano /etc/linotp2/rlm_perl.ini rast bikin
Em heman kodê li wir wekî gava ku li ser debian 8 saz dikin (li jor hatî diyar kirin) vedişêrin
ev hemû li gorî ramanê ye. (hîn nehatiye ceribandin)
Ez ê li jêr çend lînkan li ser sazkirina pergalên ku pir caran hewce ne ku bi piştrastkirina du-faktorî werin parastin bihêlim:
Sazkirina erêkirina du-faktorî tê de
ligorî
Di heman demê de, cms-ya gelek malperan piştgirî dide rastkirina du-faktorî (Ji bo WordPress, LinOTP tewra modula xweya taybetî heye ji bo
RASTIYA GIRÎNG! Ji bo ku Google Authenticator bikar bînin qutiya "Google autenteficator" kontrol nekin! Wê hingê koda QR nayê xwendin ... (rastiyek ecêb)
Ji bo nivîsandina vê gotarê, agahdariya ji gotarên jêrîn hatine bikar anîn:
Spas ji bo nivîskaran.
Source: www.habr.com