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
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
# 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
addasiad
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
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:
Diolch i'r awduron.
Ffynhonnell: hab.com