LinOTP kaksivaiheinen todennuspalvelin

LinOTP kaksivaiheinen todennuspalvelin

Tänään haluan kertoa, kuinka määrität kaksivaiheisen todennuspalvelimen suojaamaan yritysverkkoasi, verkkosivustojasi, palvelujasi, ssh:täsi. Palvelin käyttää seuraavaa yhdistelmää: LinOTP + FreeRadius.

Miksi hän tarvitsee meitä?
Tämä on täysin ilmainen, kätevä ratkaisu omassa verkossaan, riippumaton kolmansien osapuolien tarjoajista.

Tämä palvelu on erittäin kätevä, melko visuaalinen, toisin kuin muut avoimen lähdekoodin tuotteet, ja se tukee myös valtavaa määrää toimintoja ja käytäntöjä (esimerkiksi kirjautumistunnus+salasana+(PIN+OTPToken)). Sovellusliittymän kautta se integroituu tekstiviestien lähetyspalveluihin (LinOTP Config-> Provider Config-> SMS Provider), luo koodeja mobiilisovelluksiin, kuten Google Authentificator ja paljon muuta. Mielestäni se on kätevämpi kuin palvelu, josta keskusteltiin статье.

Tämä palvelin toimii täydellisesti Cisco ASA:n, OpenVPN-palvelimen, Apache2:n ja yleensä lähes kaiken kanssa, joka tukee RADIUS-palvelimen kautta tapahtuvaa todennusta (esimerkiksi SSH:lle palvelinkeskuksessa).

Tarvitaan:

1) Debian 8 (jessie) - Aina! (koeasennus debian 9:ään on kuvattu artikkelin lopussa)

Alku:

Debian 8:n asennus.

Lisää LinOTP-arkisto:

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

Avainten lisääminen:

# gpg --search-keys 913DFF12F86258E5

Joskus "puhtaan" asennuksen aikana tämän komennon suorittamisen jälkeen Debian näyttää:

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

Tämä on gnupg:n alkuperäinen asennus. Se on okei. Suorita komento uudelleen.
Debianin kysymykseen:

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

Vastaamme: 1

Seuraava:

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

# apt-get update

Asenna mysql. Teoriassa voit käyttää toista sql-palvelinta, mutta yksinkertaisuuden vuoksi käytän sitä LinOTP:n suositusten mukaisesti.

(Lisätietoja, mukaan lukien LinOTP-tietokannan uudelleenmäärittely, löytyy virallisesta dokumentaatiosta linkki. Sieltä löydät myös komennon: dpkg-reconfigure linotp muuttaaksesi parametreja, jos olet jo asentanut mysql:n).

# apt-get install mysql-server

# apt-get update

(päivitysten tarkistaminen uudelleen ei haittaisi)
Asenna LinOTP ja lisämoduulit:

# apt-get install linotp

Vastaamme asentajan kysymyksiin:
Käytä Apache2:ta: kyllä
Luo salasana admin Linotp:lle: “Salasanasi”
Luo itse allekirjoitettu varmenne?: kyllä
Käytä MySQL:tä?: kyllä
Missä tietokanta sijaitsee: localhost
Luo LinOTP-tietokanta (perusnimi) palvelimelle: LinOTP2
Luo tietokannalle erillinen käyttäjä: LinOTP2
Asetamme käyttäjälle salasanan: "Salasanasi"
Pitäisikö minun luoda tietokanta nyt? (jotain kuten "Haluatko varmasti..."): kyllä
Anna MySQL-pääsalasana, jonka loit asennuksen yhteydessä: "Sinun salasanasi"
Valmis.

(valinnainen, sinun ei tarvitse asentaa sitä)

# apt-get install linotp-adminclient-cli 

(valinnainen, sinun ei tarvitse asentaa sitä)

# apt-get install libpam-linotp  

Linotp-verkkokäyttöliittymämme on nyt saatavilla osoitteessa:

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

Puhun verkkokäyttöliittymän asetuksista hieman myöhemmin.

No nyt se tärkein! Nostamme FreeRadiuksen ja linkitämme sen Linotpiin.

Asenna FreeRadius ja moduuli LinOTP:n kanssa työskentelemistä varten

# apt-get install freeradius linotp-freeradius-perl

varmuuskopioi asiakas- ja käyttäjien säteen asetukset.

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

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

Luo tyhjä asiakastiedosto:

# touch /etc/freeradius/clients.conf

Uuden konfigurointitiedoston muokkaaminen (varmuuskopioitua asetusta voidaan käyttää esimerkkinä)

# nano /etc/freeradius/clients.conf

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

Luo seuraavaksi käyttäjätiedosto:

# touch /etc/freeradius/users

Muokkaamme tiedostoa ja kerromme radiusille, että käytämme perl-tunnistusta.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

Muokkaa seuraavaksi tiedostoa /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

Meidän on määritettävä polku perl linotp -skriptiin moduuliparametrissa:

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

... ..
Seuraavaksi luomme tiedoston, jossa sanomme, mistä (domain, tietokanta vai tiedosto) tiedot otetaan.

# 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

Käyn tässä hieman yksityiskohtaisemmin, koska se on tärkeää:

Tiedoston täydellinen kuvaus kommentteineen:
#linOTP-palvelimen IP-osoite (LinOTP-palvelimemme IP-osoite)
URL=https://172.17.14.103/validate/simplecheck
#alueemme, jonka luomme LinOTP-verkkokäyttöliittymään.)
REALM=takavarsi1
#Käyttäjäryhmän nimi, joka luodaan LinOTP-verkkosivuun.
RESCONF=litteä_tiedosto
#valinnainen: kommentoi, jos kaikki näyttää toimivan hyvin
Debug=True
#valinnainen: käytä tätä, jos sinulla on itse allekirjoitettuja varmenteita, muuten kommentoi (SSL, jos luomme oman varmenteen ja haluamme varmistaa sen)
SSL_CHECK=Epätosi

Luo seuraavaksi tiedosto /etc/freeradius/sites-available/linotp

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

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

Ja kopioi konfiguraatio siihen (ei tarvitse muokata mitään):

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
}

Seuraavaksi luomme SIM-linkin:

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

Henkilökohtaisesti tapan Radius-oletussivustot, mutta jos tarvitset niitä, voit joko muokata niiden asetuksia tai poistaa ne käytöstä.

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

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

# service freeradius reload

Palataan nyt verkkoon ja katsotaan sitä hieman tarkemmin:
Napsauta oikeassa yläkulmassa LinOTP Config -> UserIdResolvers -> New
Valitsemme mitä haluamme: LDAP (AD win, LDAP samba) tai SQL tai Flatfile-järjestelmän paikalliset käyttäjät.

Täytä pakolliset kentät.

Seuraavaksi luomme REALMS:
Napsauta oikeassa yläkulmassa LinOTP Config -> Realms -> New.
ja anna nimi REALMSillemme ja klikkaa myös aiemmin luotuja UserIdResolvers.

FreeRadius tarvitsee kaikki nämä tiedot /etc/linotp2/rlm_perl.ini-tiedostossa, kuten kirjoitin edellä, joten jos et muokannut sitä silloin, tee se nyt.

Palvelin on kaikki määritetty.

täydentämään

LinOTP:n määrittäminen Debian 9:ssä:

Установка:

# 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

(oletusarvoisesti Debian 9:ssä mysql (mariaDB) ei tarjoa pääkäyttäjän salasanaa, voit tietysti jättää sen tyhjäksi, mutta jos luet uutisia, tämä johtaa usein "eeppiseen epäonnistumiseen", joten asetamme sen joka tapauksessa)

# 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

Liitä koodi (lähettäjä JuriM, kiitos hänelle siitä!):

palvelin linotp {
kuunnella {
ipaddr = *
portti = 1812
type=auth
}
kuunnella {
ipaddr = *
portti = 1813
tyyppi = teko
}
valtuuttaa {
esikäsittely
päivitä {
&control:Auth-Type := Perl
}
}
todentaa {
Todennustyypin Perl {
perl
}
}
kirjanpito {
unix
}
}

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

perl {
tiedostonimi = /usr/share/linotp/radius_linotp.pm
func_authenticate = todennus
func_authorize = valtuuta
}

Valitettavasti Debian 9:ssä radius_linotp.pm-kirjastoa ei ole asennettu arkistoista, joten otamme sen githubista.

# 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

Muokkaa nyt tiedostoa /etc/freeradius/3.0/clients.conf

asiakaspalvelimet {
ipaddr = 192.168.188.0/24
salainen = salasanasi
}

Korjataan nyt nano /etc/linotp2/rlm_perl.ini

Liitämme sinne saman koodin kuin asennettaessa debian 8:aan (kuvattu yllä)

kaikki on idean mukaan. (ei vielä testattu)

Jätän alle muutaman linkin sellaisten järjestelmien määrittämiseen, jotka on useimmiten suojattava kaksivaiheisella todennuksella:
Kaksivaiheisen todennuksen asettaminen sisään Apache2

Asennus Cisco ASA:lla(Siellä käytetään eri tunnuksen luontipalvelinta, mutta itse ASA:n asetukset ovat samat).

VPN, jossa on kaksivaiheinen todennus

säätö kaksivaiheinen todennus ssh:ssa (Siellä käytetään myös LinOTP:tä) - kiitos kirjoittajalle. Sieltä löydät myös mielenkiintoisia asioita LiOTP-käytäntöjen määrittämisestä.

Lisäksi monien sivustojen cms tukee kaksivaiheista todennusta (WordPressille LinOTP:llä on jopa oma erityinen moduuli GitHub), esimerkiksi jos haluat tehdä suojatun osion yrityksesi verkkosivustolle yrityksen työntekijöille.
TÄRKEÄ FAKTA! ÄLÄ valitse "Google autenteficator" -ruutua käyttääksesi Google Authenticatoria! QR-koodi ei ole sitten luettavissa... (outo fakta)

Tämän artikkelin kirjoittamiseen käytettiin tietoja seuraavista artikkeleista:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

Kiitos tekijöille.

Lähde: will.com

Lisää kommentti