LinOTP kahefaktoriline autentimisserver

LinOTP kahefaktoriline autentimisserver

Täna tahan jagada, kuidas seadistada kahefaktoriline autentimisserver, et kaitsta ettevõtte võrku, saite, teenuseid ja ssh-d. Server käivitab järgmise kombinatsiooni: LinOTP + FreeRadius.

Miks me seda vajame?
See on täiesti tasuta, mugav lahendus oma võrgus, sõltumatu kolmandatest osapooltest.

See teenus on erinevalt teistest avatud lähtekoodiga toodetest väga mugav, üsna visuaalne ning toetab ka tohutul hulgal funktsioone ja eeskirju (näiteks login+parool+(PIN+OTPToken)). API kaudu integreerub see SMS-i saatmisteenustega (LinOTP Config->Provider Config->SMS Provider), genereerib koode mobiilirakendustele nagu Google Authentificator ja palju muud. Ma arvan, et see on mugavam kui teenus, millest räägiti siit.

See server töötab suurepäraselt koos Cisco ASA, OpenVPN serveriga, Apache2-ga ja üldiselt peaaegu kõigega, mis toetab autentimist RADIUS-serveri kaudu (näiteks SSH jaoks andmekeskuses).

Nõutav:

1) Debian 8 (jessie) - Nõutav! (debian 9 prooviinstallimist kirjeldatakse artikli lõpus)

Algus:

Debian 8 installimine.

Lisage LinOTP hoidla:

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

Võtmete lisamine:

# gpg --search-keys 913DFF12F86258E5

Mõnikord kuvab Debian "puhta" installimise ajal pärast selle käsu käivitamist:

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

See on gnupg esialgne seadistus. See on korras. Lihtsalt käivitage käsk uuesti.
Debiani küsimusele:

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) Выход>

Vastame: 1

Järgmine:

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

# apt-get update

Installige mysql. Teoreetiliselt võid kasutada ka teist sql-serverit, kuid lihtsuse mõttes kasutan seda nii, nagu LinOTP puhul soovitatakse.

(lisateavet, sealhulgas LinOTP andmebaasi ümberseadistamist, leiate ametlikust dokumentatsioonist link. Sealt leiate ka käsu: dpkg-reconfigure linotp parameetrite muutmiseks, kui olete juba installinud mysql).

# apt-get install mysql-server

# apt-get update

(värskendusi uuesti kontrollida ei teeks paha)
Installige LinOTP ja lisamoodulid:

# apt-get install linotp

Vastame paigaldaja küsimustele:
Kasutage Apache2: jah
Looge administraatori Linotp jaoks parool: "Teie parool"
Kas luua iseallkirjastatud sertifikaat?: jah
Kas kasutada MySQL-i?: jah
Kus andmebaas asub: localhost
Looge serveris LinOTP andmebaas (baasnimi): LinOTP2
Looge andmebaasi jaoks eraldi kasutaja: LinOTP2
Seadsime kasutajale parooli: "Teie parool"
Kas ma peaksin kohe andmebaasi looma? (midagi nagu "Kas olete kindel, et tahad..."): jah
Sisestage installimisel loodud MySQL-i juurparool: „YourPassword”
Valmis.

(valikuline, te ei pea seda installima)

# apt-get install linotp-adminclient-cli 

(valikuline, te ei pea seda installima)

# apt-get install libpam-linotp  

Ja nii on meie Linotpi veebiliides nüüd saadaval aadressil:

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

Veebiliidese sätetest räägin veidi hiljem.

Nüüd, kõige tähtsam! Tõstame FreeRadiuse üles ja ühendame selle Linotpiga.

Installige FreeRadius ja moodul LinOTP-ga töötamiseks

# apt-get install freeradius linotp-freeradius-perl

varundage kliendi ja kasutajate raadiuse konfiguratsioonid.

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

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

Looge tühi kliendifail:

# touch /etc/freeradius/clients.conf

Meie uue konfiguratsioonifaili redigeerimine (varundatud konfiguratsiooni saab kasutada näitena)

# nano /etc/freeradius/clients.conf

client 192.168.188.0/24 {
secret  = passwd # пароль для подключения клиентов
}

Järgmisena looge kasutajate fail:

# touch /etc/freeradius/users

Redigeerime faili, öeldes raadiusele, et kasutame autentimiseks perli.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

Järgmisena redigeerige faili /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

Peame mooduli parameetris määrama perli linotp-skripti tee:

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

... ..
Järgmiseks loome faili, milles ütleme, millisest (domeenist, andmebaasist või failist) andmed võtta.

# 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

Ma räägin siin veidi üksikasjalikumalt, sest see on oluline:

Faili täielik kirjeldus koos kommentaaridega:
#linotp-serveri IP (meie LinOTP-serveri IP-aadress)
URL=https://172.17.14.103/validate/simplecheck
#Meie ala, mille loome LinOTP veebiliideses.)
REALM=rear1
#LinOTP veebikorgis loodud kasutajarühma nimi.
RESCONF=korter_fail
#valikuline: kommenteerige, kas kõik näib toimivat hästi
Silumine = Tõene
#valikuline: kasutage seda, kui teil on iseallkirjastatud sertifikaadid, vastasel juhul kommenteerige (SSL, kui loome oma sertifikaadi ja tahame seda kontrollida)
SSL_CHECK=Vale

Järgmisena looge fail /etc/freeradius/sites-available/linotp

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

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

Ja kopeerige konfiguratsioon sinna (pole vaja midagi redigeerida):

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
}

Järgmisena loome SIM-i lingi:

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

Isiklikult tapan vaikeraadiusega saidid, kuid kui teil on neid vaja, saate nende konfiguratsiooni muuta või need keelata.

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

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

# service freeradius reload

Nüüd pöördume tagasi veebinäo juurde ja vaatame seda veidi üksikasjalikumalt:
Paremas ülanurgas klõpsake LinOTP Config -> UserIdResolvers -> New
Valime, mida tahame: LDAP (AD win, LDAP samba) või SQL või Flatfile süsteemi kohalikud kasutajad.

Täitke nõutud väljad.

Järgmisena loome REALMS:
Klõpsake paremas ülanurgas valikul LinOTP Config -> Realms -> New.
ja andke meie REALMSidele nimi ning klõpsake ka varem loodud UserIdResolveritel.

FreeRadius vajab kõiki neid andmeid failis /etc/linotp2/rlm_perl.ini, nagu ma eespool kirjutasin, nii et kui te seda siis ei muutnud, tehke seda kohe.

Server on kõik konfigureeritud.

täiendus:

LinOTP seadistamine Debian 9-s:

Установка:

# 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

(vaikimisi Debian 9-s ei paku mysql (mariaDB) juurparooli määramist, muidugi võite selle tühjaks jätta, kuid uudiste lugemisel põhjustab see sageli "epic ebaõnnestub", nii et paneme selle igatahes)

# 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

Kleepige kood (saatja JuriM, aitäh talle selle eest!):

server linotp {
kuula {
ipaddr = *
port = 1812
tüüp=auth
}
kuula {
ipaddr = *
port = 1813
tüüp = akt
}
luba {
eeltöötlus
värskenda {
&control:Auth-Type := Perl
}
}
autentida {
Auth-tüüpi Perl {
perl
}
}
raamatupidamine {
unix
}
}

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

perl {
failinimi = /usr/share/linotp/radius_linotp.pm
func_authenticate = autentida
func_authorize = autoriseerida
}

Kahjuks pole Debian 9-s teeki radius_linotp.pm hoidlatest installitud, seega võtame selle githubist.

# 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

redigeerime nüüd faili /etc/freeradius/3.0/clients.conf

kliendi serverid {
ipaddr = 192.168.188.0/24
saladus = teie parool
}

Nüüd parandame nano /etc/linotp2/rlm_perl.ini

Kleebime sinna sama koodi, mis installimisel debian 8-le (kirjeldatud ülal)

see kõik vastavalt ideele. (pole veel testitud)

Jätan allpool mõned lingid süsteemide seadistamiseks, mida kõige sagedamini tuleb kaitsta kahefaktorilise autentimisega:
Kahefaktorilise autentimise seadistamine Apache2

Seadistamine Cisco ASA-ga(seal kasutatakse teistsugust märgi genereerimise serverit, aga ASA enda seaded on samad).

Kahefaktorilise autentimisega VPN

reguleerimine kahefaktoriline autentimine ssh-s (Seal on kasutusel ka LinOTP) - tänud autorile. Sealt leiate huvitavaid asju ka LiOTP poliitikate seadistamise kohta.

Samuti toetavad paljude saitide cm-d kahefaktorilist autentimist (WordPressi jaoks on LinOTP-l isegi oma spetsiaalne moodul github), näiteks kui soovite teha oma ettevõtte veebisaidile kaitstud jaotise ettevõtte töötajate jaoks.
TÄHTIS FAKT! ÄRGE märkige Google Authenticatori kasutamiseks kasti Google autenteficator! QR-kood pole siis loetav... (kummaline fakt)

Selle artikli kirjutamiseks kasutati teavet järgmistest artiklitest:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

Tänud autoritele.

Allikas: www.habr.com

Lisa kommentaar