Gweinydd dilysu dau ffactor LinOTP

Gweinydd dilysu dau ffactor LinOTP

Heddiw, rwyf am rannu sut i sefydlu gweinydd dilysu dau ffactor i amddiffyn y rhwydwaith corfforaethol, safleoedd, gwasanaethau, ssh. Bydd y ddolen yn gweithio ar y gweinydd: LinOTP + FreeRadius.

Pam mae ei angen arnon ni?
Mae hwn yn ddatrysiad cyfleus, rhad ac am ddim, o fewn eich rhwydwaith, yn annibynnol ar ddarparwyr trydydd parti.

Mae'r gwasanaeth hwn yn gyfleus iawn, yn eithaf gweledol, yn wahanol i gynhyrchion ffynhonnell agored eraill, ac mae hefyd yn cefnogi nifer enfawr o swyddogaethau a pholisïau (Er enghraifft, mewngofnodi + cyfrinair + (PIN + OTPToken)). Trwy'r API, mae'n integreiddio â gwasanaethau anfon sms (LinOTP Config-> Provider Config-> SMS Provider), yn cynhyrchu codau ar gyfer cymwysiadau symudol fel Google Autentificator a llawer mwy. Rwy'n meddwl ei fod yn fwy cyfleus na'r gwasanaeth a ystyriwyd yn Erthygl.

Mae'r gweinydd hwn yn gweithio'n iawn gyda Cisco ASA, gweinydd OpenVPN, Apache2, ac yn wir gyda bron popeth sy'n cefnogi dilysu trwy weinydd RADIUS (Er enghraifft, ar gyfer SSH i'r ganolfan ddata).

Mae'n ofynnol:

1) Debian 8 (jessie) - Cadarn! (disgrifir gosodiad treial ar debian 9 ar ddiwedd yr erthygl)

Amser cychwyn:

Gosod Debian 8.

Ychwanegu'r gadwrfa LinOTP:

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

Ychwanegu allweddi:

# gpg --search-keys 913DFF12F86258E5

Weithiau ar osodiad glân, ar ôl gweithredu'r gorchymyn hwn, mae Debian yn cyhoeddi:

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

Dyma'r gosodiad gnupg cychwynnol. Mae'n iawn. Dim ond rhedeg y gorchymyn eto.
I gwestiwn 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) Выход>

Ateb: 1

Nesaf:

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

# apt-get update

Gosod mysql. Mewn theori, gallwch ddefnyddio gweinydd sql arall, ond er mwyn symlrwydd byddaf yn ei ddefnyddio fel yr argymhellir ar gyfer LinOTP.

(gellir dod o hyd i wybodaeth ychwanegol, gan gynnwys ad-drefnu cronfa ddata LinOTP, yn y ddogfennaeth swyddogol ar gyfer cyswllt. Yn yr un lle, gallwch ddod o hyd i'r gorchymyn: dpkg-reconfigure linotp i newid y gosodiadau os ydych eisoes wedi gosod mysql).

# apt-get install mysql-server

# apt-get update

(Nid yw'n brifo gwirio eto am ddiweddariadau)
Gosod LinOTP a modiwlau ychwanegol:

# apt-get install linotp

Rydym yn ateb cwestiynau'r gosodwr:
Defnyddiwch Apache2: ie
Creu cyfrinair ar gyfer gweinyddwr Linotp: "YourPassword"
Cynhyrchu tystysgrif hunan-lofnodedig?: ie
Defnyddiwch MySQL ?: ie
Ble mae'r gronfa ddata wedi'i lleoli: localhost
Creu cronfa ddata LinOTP (enw sylfaen) ar y gweinydd: LinOTP2
Creu defnyddiwr ar wahân ar gyfer y gronfa ddata: LinOTP2
Gosodwch y cyfrinair ar gyfer y defnyddiwr: "YourPassword"
A ddylwn i greu sylfaen nawr? (rhywbeth fel “Ydych chi’n siŵr eich bod chi eisiau…”): ie
Rhowch y cyfrinair gwraidd MySQL a grewyd gennych yn ystod y gosodiad: "YourPassword"
Wedi'i wneud.

(dewisol, ni allwch roi)

# apt-get install linotp-adminclient-cli 

(dewisol, ni allwch roi)

# apt-get install libpam-linotp  

Ac felly mae ein rhyngwyneb gwe Linotp bellach ar gael yn:

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

Byddaf yn siarad am y gosodiadau yn y rhyngwyneb gwe ychydig yn ddiweddarach.

Nawr, y peth pwysicaf! Codwch FreeRadius a'i gysylltu â Linotp.

Gosod FreeRadius a'r modiwl LinOTP

# apt-get install freeradius linotp-freeradius-perl

gwneud copi wrth gefn o gyfluniadau cleient a Defnyddwyr y radiws.

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

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

Creu ffeil cleient gwag:

# touch /etc/freeradius/clients.conf

Wrth olygu ein ffeil ffurfweddu newydd (gellir defnyddio ffurfwedd wrth gefn fel enghraifft)

# nano /etc/freeradius/clients.conf

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

Nesaf, crëwch y ffeil defnyddiwr:

# touch /etc/freeradius/users

Rydym yn golygu'r ffeil, gan ddweud wrth y radiws y byddwn yn defnyddio perl ar gyfer dilysu.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

Nesaf, golygwch y ffeil /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

Mae angen i ni osod y llwybr i'r sgript linotp perl ym mharamedr y modiwl:

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

... ..
Nesaf, rydym yn creu ffeil lle rydym yn dweud o ba (parth, cronfa ddata neu ffeil) i gymryd data.

# 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

Yma byddaf yn trigo ychydig yn fwy, oherwydd mae'n bwysig:

Disgrifiad llawn o'r ffeil gyda sylwadau:
#IP y gweinydd linotp (cyfeiriad IP ein gweinydd LinOTP)
URL=https://172.17.14.103/validate/simplecheck
#Ein maes y byddwn yn ei greu yn rhyngwyneb gwe LinOTP.)
REALM = braich1
# Enw'r grŵp defnyddwyr sy'n cael ei greu yn y webmord LinOTP.
RESCONF=ffeil_fflat
#dewisol: gwnewch sylw os yw popeth i'w weld yn gweithio'n iawn
Debug=Gwir
#optional: defnyddiwch hwn, os oes gennych dystysgrifau hunanlofnodedig, fel arall gwnewch sylwadau (SSL os byddwn yn creu ein tystysgrif ein hunain ac eisiau ei gwirio)
SSL_CHECK=Gau

Nesaf, crëwch y ffeil /etc/freeradius/sites-available/linotp

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

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

A chopïwch y ffurfwedd iddo (nid oes angen golygu dim):

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
}

Nesaf, byddwn yn gwneud dolen sim:

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

Yn bersonol, rwy'n lladd y safleoedd radiws rhagosodedig, ond os oes eu hangen arnoch, gallwch naill ai olygu eu ffurfweddiad neu eu hanalluogi.

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

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

# service freeradius reload

Nawr, gadewch i ni fynd yn ôl at y gwewyr ac edrych arno ychydig yn fwy manwl:
Yn y gornel dde uchaf, cliciwch LinOTP Config -> UserIdResolvers -> Newydd
Rydyn ni'n dewis yr hyn rydyn ni ei eisiau: LDAP (AD win, LDAP samba), neu SQL, neu ddefnyddwyr lleol y system Flatfile.

Llenwch y meysydd gofynnol.

Nesaf, rydym yn creu REALMS:
Yn y gornel dde uchaf, cliciwch LinOTP Config -> Realms -> Newydd.
a rhowch enw i'n REALMS, a chliciwch hefyd ar y UserIdResolvers a grëwyd yn gynharach.

Mae angen yr holl ddata hwn gan freeRadius yn y ffeil /etc/linotp2/rlm_perl.ini, yr ysgrifennais amdano uchod, felly os na wnaethoch ei olygu bryd hynny, gwnewch hynny nawr.

Mae pob gweinydd wedi'i ffurfweddu.

Atodiad:

Sefydlu LinOTP ar Debian 9:

Установка:

# 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

(yn ddiofyn, yn Debian 9 nid yw mysql (mariaDB) yn cynnig gosod cyfrinair gwraidd, wrth gwrs gallwch chi ei adael yn wag, ond os ydych chi'n darllen y newyddion, mae'n aml yn arwain at "fethiannau epig", felly byddwn yn dal i'w osod )

# 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

Gludwch y cod (a anfonwyd gan JuriM, diolch iddo am hynny!):

gweinydd linotp {
gwrando {
ipaddr=*
porthladd=1812
math = awdur
}
gwrando {
ipaddr=*
porthladd=1813
math = gweithred
}
awdurdodi {
rhagbroses
diweddaru {
&control:Auth-Math := Perl
}
}
dilysu {
Perl Math o Awd {
perl
}
}
cyfrifeg {
unix
}
}

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

perl {
enw ffeil = /usr/share/linotp/radius_linotp.pm
func_authenticate = dilysu
func_authorize = awdurdodi
}

Yn anffodus, yn debian 9, nid yw'r llyfrgell radius_linotp.pm wedi'i osod o'r ystorfeydd, felly byddwn yn ei gymryd o 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

nawr gadewch i ni drwsio /etc/freeradius/3.0/clients.conf

gweinyddion cleient {
ipaddr = 192.168.188.0/24
cyfrinach = eich cyfrinair
}

nawr gadewch i ni drwsio nano /etc/linotp2/rlm_perl.ini

Rydyn ni'n gludo'r un cod yno ag wrth osod ar debian 8 (a ddisgrifir uchod)

ar y syniad o bopeth. (heb ei brofi eto)

Gadawaf ychydig o ddolenni isod i sefydlu systemau y mae angen eu hamddiffyn amlaf gan awdurdodiad dau ffactor:
Sefydlu dilysu dau ffactor yn Apache2

Ffurfweddiad gyda Cisco ASA(mae'n defnyddio gweinydd cenhedlaeth tocyn gwahanol, ond mae gosodiadau'r ASA ei hun yr un peth).

VPN gyda dilysiad dau ffactor

addasiad dilysu dau ffactor mewn ssh (Defnyddir LinOTP yno hefyd) - diolch i'r awdur. Yno gallwch hefyd ddod o hyd i bethau diddorol ar sefydlu polisïau LiOTP.

Hefyd, mae cms llawer o wefannau yn cefnogi dilysu dau ffactor (Ar gyfer WordPress, mae gan LinOTP hyd yn oed ei fodiwl arbennig ei hun arno GitHub), er enghraifft, os ydych am wneud adran ddiogel ar gyfer gweithwyr cwmni ar eich gwefan gorfforaethol.
FFAITH BWYSIG! PEIDIWCH â thicio'r blwch "Google authenticator" i ddefnyddio Google Authenticator! Nid yw'r cod QR yn ddarllenadwy felly… (ffaith ryfedd)

Defnyddiwyd gwybodaeth o'r erthyglau canlynol i ysgrifennu'r erthygl:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

Diolch i'r awduron.

Ffynhonnell: hab.com

Ychwanegu sylw