LinOTP tveggja þátta auðkenningarþjónn

LinOTP tveggja þátta auðkenningarþjónn

Í dag vil ég deila því hvernig á að setja upp tveggja þátta auðkenningarþjón til að vernda fyrirtækjanetið þitt, vefsíður, þjónustu, ssh. Miðlarinn mun keyra eftirfarandi samsetningu: LinOTP + FreeRadius.

Af hverju þurfum við það?
Þetta er algjörlega ókeypis, þægileg lausn innan eigin nets, óháð þriðja aðila.

Þessi þjónusta er mjög þægileg, nokkuð sjónræn, ólíkt öðrum opnum vörum, og styður einnig gríðarlegan fjölda aðgerða og stefnu (Til dæmis innskráningu+lykilorð+(PIN+OTPToken)). Í gegnum API, það samþættist sms sendingarþjónustu (LinOTP Config-> Provider Config->SMS Provider), býr til kóða fyrir farsímaforrit eins og Google Authentificator og margt fleira. Ég held að það sé þægilegra en þjónustan sem fjallað er um í grein.

Þessi netþjónn virkar fullkomlega með Cisco ASA, OpenVPN netþjóni, Apache2, og almennt með næstum öllu sem styður auðkenningu í gegnum RADIUS miðlara (Til dæmis fyrir SSH í gagnaverinu).

Nauðsynlegt:

1) Debian 8 (jessie) - Alltaf! (prófauppsetningu á debian 9 er lýst í lok greinarinnar)

Start tíma:

Að setja upp Debian 8.

Bættu við LinOTP geymslunni:

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

Bætir lyklum við:

# gpg --search-keys 913DFF12F86258E5

Stundum meðan á „hreinri“ uppsetningu stendur, eftir að hafa keyrt þessa skipun, sýnir Debian:

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

Þetta er upphaflega gnupg uppsetningin. Það er í lagi. Keyrðu bara skipunina aftur.
Við spurningu 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) Выход>

Við svörum: 1

Next:

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

# apt-get update

Settu upp mysql. Fræðilega séð geturðu notað annan sql netþjón, en til einföldunar mun ég nota hann eins og mælt er með fyrir LinOTP.

(Viðbótarupplýsingar, þar á meðal endurstillingu LinOTP gagnagrunnsins, er að finna í opinberu skjölunum fyrir tengill. Þar geturðu líka fundið skipunina: dpkg-reconfigure linotp til að breyta breytum ef þú hefur þegar sett upp mysql).

# apt-get install mysql-server

# apt-get update

(það myndi ekki skaða að athuga uppfærslurnar aftur)
Settu upp LinOTP og viðbótareiningar:

# apt-get install linotp

Við svörum spurningum uppsetningarmannsins:
Notaðu Apache2: já
Búðu til lykilorð fyrir admin Linotp: "Lykilorð þitt"
Búa til sjálfundirritað vottorð?: já
Notaðu MySQL?: já
Hvar er gagnagrunnurinn staðsettur: localhost
Búðu til LinOTP gagnagrunn (grunnnafn) á þjóninum: LinOTP2
Búðu til sérstakan notanda fyrir gagnagrunninn: LinOTP2
Við setjum lykilorð fyrir notandann: „Lykilorðið þitt“
Ætti ég að búa til gagnagrunn núna? (eitthvað eins og „Ertu viss um að þú viljir...“): já
Sláðu inn MySQL rót lykilorðið sem þú bjóst til þegar þú settir það upp: „YourPassword“
Gert.

(valfrjálst, þú þarft ekki að setja það upp)

# apt-get install linotp-adminclient-cli 

(valfrjálst, þú þarft ekki að setja það upp)

# apt-get install libpam-linotp  

Svo Linotp vefviðmótið okkar er nú fáanlegt á:

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

Ég mun tala um stillingarnar í vefviðmótinu aðeins síðar.

Nú, það mikilvægasta! Við hækkum FreeRadius og tengjum það við Linotp.

Settu upp FreeRadius og einingu til að vinna með LinOTP

# apt-get install freeradius linotp-freeradius-perl

taka öryggisafrit af biðlara og radíusstillingum notenda.

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

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

Búðu til tóma biðlaraskrá:

# touch /etc/freeradius/clients.conf

Að breyta nýju stillingarskránni okkar (hægt er að nota öryggisafritaða stillinguna sem dæmi)

# nano /etc/freeradius/clients.conf

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

Næst skaltu búa til notendaskrá:

# touch /etc/freeradius/users

Við breytum skránni og segjum radíus að við munum nota perl fyrir auðkenningu.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

Næst skaltu breyta skránni /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

Við þurfum að tilgreina slóðina að perl linotp skriftinni í mátbreytu:

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

... ..
Næst búum við til skrá þar sem við segjum frá hvaða (léni, gagnagrunni eða skrá) á að taka gögnin.

# 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

Ég mun fara aðeins nánar út í það hér vegna þess að það er mikilvægt:

Full lýsing á skránni með athugasemdum:
#IP linotp netþjónsins (IP tölu LinOTP netþjónsins okkar)
URL=https://172.17.14.103/validate/simplecheck
#Svæðið okkar sem við munum búa til í LinOTP vefviðmótinu.)
REALM=afturvopn1
#Nafn notendahópsins sem er búinn til í LinOTP veftrýni.
RESCONF=flat_skrá
#valfrjálst: skrifaðu athugasemd ef allt virðist virka vel
Debug=Satt
#valfrjálst: notaðu þetta, ef þú ert með sjálfundirrituð vottorð, annars skrifaðu athugasemdir (SSL ef við búum til okkar eigið vottorð og viljum staðfesta það)
SSL_CHECK=Ósatt

Næst skaltu búa til skrána /etc/freeradius/sites-available/linotp

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

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

Og afritaðu stillingarnar inn í hana (ekki þarf að breyta neinu):

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
}

Næst munum við búa til SIM tengil:

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

Persónulega drep ég sjálfgefnar Radius síður, en ef þú þarft þá geturðu annað hvort breytt stillingum þeirra eða slökkt á þeim.

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

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

# service freeradius reload

Snúum okkur nú aftur að vefandlitinu og skoðum það aðeins nánar:
Í efra hægra horninu smelltu á LinOTP Config -> UserIdResolvers -> New
Við veljum það sem við viljum: LDAP (AD win, LDAP samba), eða SQL, eða staðbundnir notendur Flatfile kerfisins.

Fylltu út nauðsynlega reiti.

Næst búum við til REALMS:
Í efra hægra horninu, smelltu á LinOTP Config -> Realms -> New.
og gefðu REALMS okkar nafn, og smelltu einnig á áður búna UserIdResolvers.

FreeRadius þarf öll þessi gögn í /etc/linotp2/rlm_perl.ini skránni, eins og ég skrifaði um hér að ofan, þannig að ef þú breyttir þeim ekki þá, gerðu það núna.

Miðlarinn er allur stilltur.

Viðbót:

Setja upp LinOTP á Debian 9:

Uppsetning:

# 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

(sjálfgefið, í Debian 9 býður mysql (mariaDB) ekki upp á að setja rót lykilorð, auðvitað geturðu skilið það eftir autt, en ef þú lest fréttirnar leiðir þetta mjög oft til „epic fails“, svo við munum stilla það Allavega)

# 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

Límdu kóðann (sendur af JuriM, þökk sé honum fyrir það!):

þjónn linotp {
hlustaðu {
ipaddr = *
höfn = 1812
type=auth
}
hlustaðu {
ipaddr = *
höfn = 1813
tegund = acct
}
heimila {
forvinnslu
uppfæra {
&control:Auth-Type := Perl
}
}
sannvotta {
Auth-Type Perl {
perl
}
}
bókhald {
Unix
}
}

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

perl {
skráarnafn = /usr/share/linotp/radius_linotp.pm
func_authenticate = sannvotta
func_authorize = heimila
}

Því miður, í Debian 9 er radius_linotp.pm bókasafnið ekki sett upp úr geymslunum, svo við munum taka það frá 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

nú skulum við breyta /etc/freeradius/3.0/clients.conf

biðlaraþjónar {
ipaddr = 192.168.188.0/24
leyndarmál = lykilorðið þitt
}

Nú skulum við leiðrétta nano /etc/linotp2/rlm_perl.ini

Við límum sama kóða þar og við uppsetningu á debian 8 (lýst hér að ofan)

það er allt samkvæmt hugmyndinni. (ekki prófað ennþá)

Ég mun skilja eftir nokkra tengla um að setja upp kerfi sem oftast þarf að vernda með tveggja þátta auðkenningu:
Að setja upp tvíþætta auðkenningu í Apache2

Uppsetning með Cisco ASA(þar er notaður annar token generation server, en stillingar ASA sjálfs eru þær sömu).

VPN með tveggja þátta auðkenningu

aðlögun tveggja þátta auðkenning í ssh (LinOTP er líka notað þar) - þökk sé höfundi. Þar geturðu líka fundið áhugaverða hluti um að setja upp LiOTP stefnur.

Einnig styðja cms margra vefsvæða tveggja þátta auðkenningu (Fyrir WordPress hefur LinOTP jafnvel sína eigin sérstaka einingu fyrir GitHub), til dæmis ef þú vilt búa til verndaðan hluta á fyrirtækjavefsíðunni þinni fyrir starfsmenn fyrirtækisins.
MIKILVÆG STAÐREYND! EKKI hakaðu við „Google Autenteficator“ reitinn til að nota Google Authenticator! Þá er QR kóðinn ekki læsilegur... (skrýtin staðreynd)

Til að skrifa þessa grein voru upplýsingar úr eftirfarandi greinum notaðar:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

Þökk sé höfundum.

Heimild: www.habr.com

Bæta við athugasemd