LinOTP bi faktoreko autentifikazio zerbitzaria

LinOTP bi faktoreko autentifikazio zerbitzaria

Gaur bi faktoreko autentifikazio zerbitzari bat nola konfiguratu partekatu nahi dut sare korporatiboa, guneak, zerbitzuak, ssh babesteko. Zerbitzariak konbinazio hau exekutatuko du: LinOTP + FreeRadius.

Zergatik behar dugu?
Hau guztiz doako irtenbide erosoa da, bere sarearen barruan, hirugarren hornitzaileengandik independentea.

Zerbitzu hau oso erosoa da, nahiko bisuala, kode irekiko beste produktu batzuek ez bezala, eta funtzio eta politika ugari ere onartzen ditu (Adibidez, saioa hasteko+pasahitza+(PIN+OTPToken)). APIaren bidez, sms bidaltzeko zerbitzuekin integratzen da (LinOTP Config->Provider Config->SMS Provider), mugikorretarako aplikazioetarako kodeak sortzen ditu, hala nola Google Authentificator eta askoz gehiago. Nik uste dut erosoagoa dela eztabaidatutako zerbitzua baino Artikulu.

Zerbitzari honek primeran funtzionatzen du Cisco ASA, OpenVPN zerbitzariarekin, Apache2rekin eta, oro har, RADIUS zerbitzari baten bidez autentifikazioa onartzen duen ia guztiarekin (Adibidez, datu-zentroan SSHrako).

Beharrezkoa da:

1) Debian 8 (jessie) - Beharrezko! (Debian 9-en probako instalazioa artikuluaren amaieran deskribatzen da)

Hasiera:

Debian 8 instalatzen.

Gehitu LinOTP biltegia:

# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.list

Gakoak gehitzea:

# gpg --search-keys 913DFF12F86258E5

Batzuetan, instalazio "garbi" batean, komando hau exekutatu ondoren, Debian-ek bistaratzen du:

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

Hau da gnupg hasierako konfigurazioa. Ondo da. Exekutatu komandoa berriro.
Debian-en galderara:

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) Π’Ρ‹Ρ…ΠΎΠ΄>

Erantzuten dugu: 1

Hurrengoa:

# gpg --export 913DFF12F86258E5 | apt-key add -

# apt-get update

Instalatu mysql. Teorian, beste sql zerbitzari bat erabil dezakezu, baina sinpletasunerako LinOTPrako gomendatutako moduan erabiliko dut.

(informazio gehigarria, LinOTP datu-basea birkonfiguratzea barne, dokumentazio ofizialean aurki daiteke link. Bertan komandoa ere aurki dezakezu: dpkg-reconfigure linotp parametroak aldatzeko mysql instalatuta baduzu).

# apt-get install mysql-server

# apt-get update

(Ez litzateke kaltetuko eguneraketak berriro egiaztatzea)
Instalatu LinOTP eta modulu osagarriak:

# apt-get install linotp

Instalatzailearen galderei erantzuten diegu:
Erabili Apache2: bai
Sortu pasahitza administratzailearentzat Linotp: "Zure pasahitza"
Norberak sinatutako ziurtagiria sortu?: bai
Erabili MySQL?: bai
Non dago datu-basea: localhost
Sortu LinOTP datu-base bat (oinarrizko izena) zerbitzarian: LinOTP2
Sortu datu-baserako beste erabiltzaile bat: LinOTP2
Erabiltzaileari pasahitz bat ezarri diogu: "Zure pasahitza"
Sortu behar al dut datu-base bat orain? (Β«Ziur nahi duzula...Β» bezalako zerbait): bai
Sartu instalatzean sortu zenuen MySQL erroko pasahitza: "YourPassword"
Done.

(aukerakoa, ez duzu instalatu beharrik)

# apt-get install linotp-adminclient-cli 

(aukerakoa, ez duzu instalatu beharrik)

# apt-get install libpam-linotp  

Beraz, gure Linotp web interfazea eskuragarri dago hemen:

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

Web interfazeko ezarpenei buruz hitz egingo dut pixka bat geroago.

Orain, garrantzitsuena! FreeRadius planteatzen dugu eta Linotp-ekin lotzen dugu.

Instalatu FreeRadius eta LinOTP-rekin lan egiteko modulua

# apt-get install freeradius linotp-freeradius-perl

babeskopia bezeroaren eta Erabiltzaileen erradioaren konfigurazioa.

# mv /etc/freeradius/clients.conf  /etc/freeradius/clients.old

# mv /etc/freeradius/users  /etc/freeradius/users.old

Sortu bezero fitxategi huts bat:

# touch /etc/freeradius/clients.conf

Gure konfigurazio-fitxategi berria editatzen (babeskopia egindako konfigurazioa adibide gisa erabil daiteke)

# nano /etc/freeradius/clients.conf

client 192.168.188.0/24 {
secret  = passwd # ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²
}

Ondoren, sortu erabiltzaile fitxategi bat:

# touch /etc/freeradius/users

Fitxategia editatzen dugu, erradioari esanez perl erabiliko dugula autentifikaziorako.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

Ondoren, editatu /etc/freeradius/modules/perl fitxategia

# nano /etc/freeradius/modules/perl

Moduluaren parametroan perl linotp script-erako bidea zehaztu behar dugu:

Perl { .......
.........
<source lang="bash">module = /usr/lib/linotp/radius_linotp.pm

... ..
Ondoren, fitxategi bat sortuko dugu eta bertan esango dugu zein (domeinua, datu-basea edo fitxategia) hartu datuak.

# 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

Hemen xehetasun pixka bat gehiago sartuko dut, garrantzitsua delako:

Fitxategiaren deskribapen osoa iruzkinekin:
linOTP zerbitzariaren #IP (gure LinOTP zerbitzariaren IP helbidea)
URL=https://172.17.14.103/validate/simplecheck
#LinOTP web interfazean sortuko dugun gure eremua.)
REALM=berriro armatu1
#LinOTP web-muzoan sortzen den erabiltzaile-taldearen izena.
RESCONF=fitxategi_laua
#aukerakoa: iruzkin ezazu dena ondo funtzionatzen duela dirudi
Araztu=Egia
#aukerakoa: erabili hau, autosinatutako ziurtagiriak badituzu, bestela iruzkin ezazu (SSL gure ziurtagiria sortzen badugu eta egiaztatu nahi badugu)
SSL_CHECK=Gezurra

Ondoren, sortu /etc/freeradius/sites-available/linotp fitxategia

# touch /etc/freeradius/sites-available/linotp

# nano /etc/freeradius/sites-available/linotp

Eta kopiatu konfigurazioa bertan (ez da ezer editatu behar):

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
}

Hurrengo SIM esteka bat sortuko dugu:

# ln -s ../sites-available/linotp /etc/freeradius/sites-enabled

Pertsonalki, Radius gune lehenetsiak hiltzen ditut, baina behar badituzu, haien konfigurazioa edita dezakezu edo desgaitu.

# rm /etc/freeradius/sites-enabled/default

# rm /etc/freeradius/sites-enabled/inner-tunnel

# service freeradius reload

Orain itzul gaitezen web-aurpegira eta ikus gaitezen xehetasun apur bat gehiagorekin:
Goiko eskuineko izkinan egin klik LinOTP Config -> UserIdResolvers -> Berria
Guk nahi duguna aukeratzen dugu: LDAP (AD win, LDAP samba), edo SQL, edo Flatfile sistemaren erabiltzaile lokalak.

Bete beharrezko eremuak.

Ondoren, REALMS sortuko dugu:
Goiko eskuineko izkinan, egin klik LinOTP Config -> Realms -> Berria.
eta eman izena gure REALMSei, eta egin klik ere aurretik sortutako UserIdResolvers gainean.

FreeRadius-ek datu hauek guztiak /etc/linotp2/rlm_perl.ini fitxategian behar ditu, goian idatzi dudan bezala, beraz, orduan editatu ez bazenuen, egin orain.

Zerbitzaria dena konfiguratuta dago.

osatzeko:

LinOTP konfiguratzea Debian 9-n:

Giroa:

# 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

(lehenespenez, Debian 9-n mysql-ek (mariaDB) ez du eskaintzen root pasahitza ezartzea, noski hutsik utz dezakezu, baina albistea irakurtzen baduzu, horrek askotan "epic hutsegitea" dakar, beraz, ezarriko dugu hala ere)

# 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

Itsatsi kodea (JuriM-ek bidalia, eskerrik asko horregatik!):

zerbitzari linotp {
entzun {
ipaddr = *
portua = 1812
mota=autentifikazioa
}
entzun {
ipaddr = *
portua = 1813
mota = akt
}
baimendu {
aurreprozesua
eguneratu {
&control:Auth-Type := Perl
}
}
autentifikatu {
Autentifikazio mota Perl {
perl
}
}
kontabilitatea {
unix
}
}

Editatu /etc/freeradius/3.0/mods-enabled/perl

perl {
fitxategi-izena = /usr/share/linotp/radius_linotp.pm
func_authenticate = autentifikatu
func_authorize = baimendu
}

Zoritxarrez, Debian 9-n radius_linotp.pm liburutegia ez dago biltegietatik instalatuta, beraz github-etik hartuko dugu.

# 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

orain edita dezagun /etc/freeradius/3.0/clients.conf

bezero zerbitzariak {
ipaddr = 192.168.188.0/24
sekretua = zure pasahitza
}

Orain zuzen dezagun nano /etc/linotp2/rlm_perl.ini

Kode bera itsatsi dugu debian 8-n instalatzean (goian deskribatua)

hori guztia ideiaren arabera. (Oraindik probatu gabe)

Gehienetan bi faktoreko autentifikazioarekin babestu behar diren sistemak konfiguratzeko esteka batzuk utziko ditut jarraian:
Bi faktoreko autentifikazioa konfiguratzea Apache2

Konfiguratu Cisco ASArekin(token sortzeko zerbitzari ezberdin bat erabiltzen da bertan, baina ASAren beraren ezarpenak berdinak dira).

VPN bi faktoreko autentifikazioarekin

doikuntza bi faktoreko autentifikazioa ssh-n (LinOTP ere erabiltzen da bertan) - eskerrak egileari. Bertan LiOTP politikak ezartzeari buruzko gauza interesgarriak ere aurki ditzakezu.

Gainera, gune askotako cms-ek bi faktoreko autentifikazioa onartzen dute (WordPress-entzat, LinOTP-k bere modulu berezia ere badu. GitHub), adibidez, zure webgune korporatiboan babestutako atal bat egin nahi baduzu enpresako langileentzat.
DATU GARRANTZITSUA! EZ markatu "Google autentificator" laukia Google Authenticator erabiltzeko! QR kodea ez da irakurtzen orduan... (gertaera bitxia)

Artikulu hau idazteko, artikulu hauetako informazioa erabili da:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

Eskerrik asko egileei.

Iturria: www.habr.com

Gehitu iruzkin berria