
Å odien vÄlos dalÄ«ties ar to, kÄ iestatÄ«t divu faktoru autentifikÄcijas serveri, lai aizsargÄtu korporatÄ«vo tÄ«klu, vietnes, pakalpojumus, ssh. ServerÄ« darbosies kombinÄcija: LinOTP + FreeRadius.
KÄpÄc mums tas nepiecieÅ”ams?
Tas ir pilnÄ«gi bezmaksas, Ärts risinÄjums iekÅ”Äjai tÄ«klam, neatkarÄ«gs no treÅ”o puÅ”u pakalpojumu sniedzÄjiem.
Å is pakalpojums ir ļoti Ärts, pietiekami skaidrs, salÄ«dzinot ar citiem atvÄrtÄ koda produktiem, un atbalsta lielu skaitu funkciju un politiku (piemÄram, login+password+(PIN+OTPToken)). Caur API integrÄjas ar SMS sÅ«tīŔanas pakalpojumiem (LinOTP Config->Provider Config->SMS Provider), Ä£enerÄ kodus mobilajÄm lietotnÄm, piemÄram, Google Authenticator, un vÄl daudz ko citu. Uzskatu, ka tas ir ÄrtÄks nekÄ pakalpojums, kas tiek izskatÄ«ts .
Å is serveris lieliski darbojas ar Cisco ASA, OpenVPN serveri, Apache2, un vispÄr ar gandrÄ«z visu, kas atbalsta autentifikÄciju caur RADIUS serveri (piemÄram, SSH datu centra vidÄ).
NepiecieŔams:
1) Debian 8 (jessie) ā Noteikti! (izmÄÄ£inÄjuma uzstÄdīŔana uz Debian 9 aprakstÄ«ta raksta beigÄs)
SÄkums:
InstalÄjam Debian 8.
Pievienojam LinOTP repozitoriju:
# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.listPievienojam atslÄgas:
# gpg --search-keys 913DFF12F86258E5DažkÄrt, veicot "tÄ«ru" uzstÄdīŔanu, pÄc Ŕīs komandas izpildes Debian izsniedz:
gpg: izveidota mape `\/root\/.gnupg'\ngpg: izveidots jauns iestatÄ«jumu fails `\/root\/.gnupg\/gpg.conf'\ngpg: UZMANÄŖBA: parametri `\/root\/.gnupg\/gpg.conf' Å”ajÄ palaidÄ vÄl nav aktÄ«vi\ngpg: izveidota atslÄgu tabula `\/root\/.gnupg\/secring.gpg'\ngpg: izveidota atslÄgu tabula `\/root\/.gnupg\/pubring.gpg'\ngpg: nav definÄti atslÄgu serveri (izmantojiet --keyserver)\ngpg: neizdevÄs meklÄt atslÄgu serverÄ«: slikts URI
TÄ ir sÄkotnÄjÄ gnupg iestatīŔana. Nekas traks. VienkÄrÅ”i izpildiet komandu vÄlreiz.
Uz Debian jautÄjumu:
gpg: meklÄÅ”ana "913DFF12F86258E5" hkp serverÄ« keys.gnupg.net
(1) LSE LinOTP2 Packaging
2048 bit RSA atslÄga F86258E5, izveidota: 2010-05-10
AtslÄgas 1-1 no 1 par "913DFF12F86258E5". Ievadiet skaitļus, N) NÄkamais vai Q) Izeja>Atbildam: 1
TÄlÄk:
# gpg --export 913DFF12F86258E5 | apt-key add -# apt-get updateInstalÄjam mysql. TeorÄtiski var izmantot citu SQL serveri, bet es, lai vienkÄrÅ”otu, izmantosimu to, jo tas ir ieteikts LinOTP.
(papildu informÄcija, ieskaitot LinOTP datu bazes rekonfigurÄÅ”anu, var atrast oficiÄlajÄ dokumentÄcijÄ par . Turpat jÅ«s varat atrast komandu: dpkg-reconfigure linotp, lai mainÄ«tu parametrus, ja jau esat instalÄjis mysql).
# apt-get install mysql-server# apt-get update (vÄlreiz pÄrbaudÄ«t atjauninÄjumus nekaitÄs)
InstalÄjam LinOTP un papildmoduļus:
# apt-get install linotp Atbildam uz instalÄtÄja jautÄjumiem:
Izmantot Apache2: jÄ
IzdomÄjiet paroli admin Linotp: Ā«JÅ«suParoleĀ»
Izveidot paÅ”parakstÄ«tu sertifikÄtu?: jÄ
Vai izmantot MySQL?: jÄ
Kur atrodas datu bÄze: localhost
Izveidojam datu bÄzi LinOTP (datu bÄzes nosaukums) uz servera: LinOTP2
Izveidojam atseviŔķu lietotÄju datu bÄzei: LinOTP2
UzstÄdam paroli lietotÄjam: Ā«JÅ«suParoleĀ»
Vai izveidot datu bÄzi tagad? (kaut kas lÄ«dzÄ«gs āVai esat pÄrliecinÄts, ka vÄlaties ...ā): jÄ
IevadÄm root paroli no MySQL, kuru izveidojÄm tÄ uzstÄdīŔanas laikÄ: Ā«JÅ«suParoleĀ»
Gatavs.
(pÄc izvÄles, var arÄ« neizdarÄ«t)
# apt-get install linotp-adminclient-cli (pÄc izvÄles, var arÄ« neizdarÄ«t)
# apt-get install libpam-linotp TÄtad, mÅ«su tÄ«mekļa interfeiss Linotp tagad ir pieejams adresÄ:
"<b>https<\/b>: \\\/\\\/IP_servera\\\/manage"Par iestatÄ«jumiem tÄ«mekļa interfeisÄ es pastÄstīŔu nedaudz vÄlÄk.
Tagad, vissvarÄ«gÄkais! UzsÄkam FreeRadius un saistÄm to ar Linotp.
UzstÄdam FreeRadius un moduli darbam ar LinOTP
# apt-get install freeradius linotp-freeradius-perldublÄjam klientu un lietotÄju configus radiusÄ.
# mv /etc/freeradius/clients.conf /etc/freeradius/clients.old# mv /etc/freeradius/users /etc/freeradius/users.oldIzveidojam tukŔu klienta failu:
# touch /etc/freeradius/clients.confRediÄ£Äjam mÅ«su jauno config failu (dublÄtais config var tikt izmantots kÄ piemÄrs)
# nano /etc/freeradius/clients.confclient 192.168.188.0/24 {
secret = passwd # parole klientu savienojumam
}TÄlÄk izveidojam failu users:
# touch /etc/freeradius/usersRediÄ£Äjam failu, sakot radiusam, ka mÄs izmantosim perl autentifikÄcijai.
# nano /etc/freeradius/usersDEFAULT Auth-type := perlTÄlÄk rediÄ£Äjam failu /etc/freeradius/modules/perl
# nano /etc/freeradius/modules/perlMums ir jÄnosaka ceļŔ uz perl skriptu linotp parametrÄ module:
Perl { .......
.........
module = /usr/lib/linotp/radius_linotp.pm ā¦..
TÄlÄk izveidojam failu, kurÄ mÄs sakÄm no kura (domÄna, datu bÄzes vai faila) Åemt datus.
# touch /etc/linotp2/rlm_perl.ini# nano /etc/linotp2/rlm_perl.iniURL=https://IP_jūsu_LinOTP_servera(192.168.X.X)/validate/simplecheck
REALM=webusers1c
RESCONF=LocalUser
Debug=True
SSL_CHECK=FalseÅ eit apstÄÅ”os nedaudz sÄ«kÄk, jo tas ir svarÄ«gi:
Pilns faila apraksts ar komentÄriem:
#IP of the linotp server (IP Š°Š“ŃŠµŃ Š½Š°ŃŠµŠ³Š¾ LinOTP ŃŠµŃŠ²ŠµŃŠ°)
URL=https://172.17.14.103/validate/simplecheck
#ŠŠ°Ńа облаŃŃŃ ŠŗŠ¾ŃŠ¾ŃŃŃ Š¼Ń ŃŠ¾Š·Š“аГим в веб ŠøŠ½ŃеŃŃŠµŠ¹Ńе LinOTP.)
REALM=rearm1
#ŠŠ¼Ń гŃŃŠæŠæŃ ŃŠ·Š²ŠµŃей ŠŗŠ¾ŃŠ¾ŃŠ°Ń ŃŠ¾Š·Š“аеŃŃŃ Š² Š²ŠµŠ±Š¼Š¾ŃŠ“е LinOTP.
RESCONF=flat_file
#optional: comment out if everything seems to work fine
Debug=True
#optional: use this, if you have selfsigned certificates, otherwise comment out (SSL ŠµŃŠ»Šø Š¼Ń ŃŠ¾Š·Š“аем ŃŠ²Š¾Š¹ ŃŠµŃŃŠøŃŠøŠŗŠ°Ń Šø Ń
Š¾ŃŠøŠ¼ его ŠæŃовеŃŃŃŃ)
SSL_CHECK=False
TÄlÄk izveidosim failu /etc/freeradius/sites-available/linotp
# touch /etc/freeradius/sites-available/linotp# nano /etc/freeradius/sites-available/linotpUn kopÄjam tajÄ config (nekas nav jÄmaina):
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
}TÄlÄk izveidosim simbolisko saiti:
# ln -s ../sites-available/linotp /etc/freeradius/sites-enabledPersonÄ«gi es iznÄ«cinu noklusÄjuma radiusa tÄ«mekļa vietnes, taÄu, ja tÄs jums ir nepiecieÅ”amas, varat vai nu rediÄ£Ät to konfigurÄciju, vai izslÄgt.
# rm /etc/freeradius/sites-enabled/default# rm /etc/freeradius/sites-enabled/inner-tunnel# service freeradius reload Tagad atgriezÄ«simies pie tÄ«mekļa saskarnes un aplÅ«kosim to nedaudz sÄ«kÄk:
AugÅ”ÄjÄ labajÄ stÅ«rÄ« noklikŔķiniet uz LinOTP Config -> UserIdResolvers ->New.
IzvÄlamies, ko vÄlamies: LDAP (AD win, LDAP samba), vai SQL, vai lokÄlie sistÄmas lietotÄji Flatfile.
AizpildÄm nepiecieÅ”amÄs laukus.
TÄlÄk izveidojam REALMS:
AugÅ”ÄjÄ labajÄ stÅ«rÄ« noklikŔķiniet uz LinOTP Config ->Realms ->New.
Un dodam vÄrdu mÅ«su REALMS un noklikŔķinÄm uz iepriekÅ” izveidotÄ UserIdResolvers.
Visi Å”ie dati ir nepiecieÅ”ami freeRadius failÄ /etc/linotp2/rlm_perl.ini, par ko es jau iepriekÅ” rakstÄ«ju, tÄdÄļ, ja jÅ«s to neesat rediÄ£ÄjuÅ”i, tad izdariet to tagad.
Visi serveri ir iestatīti.
PapildinÄjums:
LinOTP iestatīŔana Debian 9:
InstalÄcija:
# 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(noklusÄjuma iestatÄ«jumos, Debian 9 mysql (mariaDB) nepiedÄvÄ iestatÄ«t root paroli, protams, jÅ«s varat atstÄt to arÄ« tukÅ”u, taÄu, lasot ziÅas, tas bieži noved pie "episkÄm neveiksmÄm", tÄdÄļ mÄs to tomÄr iestatÄ«sim).
# mysql -u root -puse mysql;UPDATE user SET Password = PASSWORD('Ŕeit_parole') 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/linotpIevietojam kodu (nosÅ«tÄ«jis JuriM, par ko viÅam paldies!):
server linotp {
listen {
ipaddr = *
port = 1812
type = auth
}
listen {
ipaddr = *
port = 1813
type = acct
}
authorize {
preprocess
update {
&control:Auth-Type := Perl
}
}
authenticate {
Auth-Type Perl {
perl
}
}
accounting {
unix
}
}
RediÄ£Äjam /etc/freeradius/3.0/mods-enabled/perl
perl {
filename = /usr/share/linotp/radius_linotp.pm
func_authenticate = authenticate
func_authorize = authorize
}
DiemžÄl Debian 9 bibliotÄka radius_linotp.pm nav pieejama no krÄtuvÄm, tÄpÄc mÄs to Åemsim no 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.pmTagad labojam /etc/freeradius/3.0/clients.conf.
client servers {
ipaddr = 192.168.188.0/24
secret = jūsuparole
}
Tagad labojam nano /etc/linotp2/rlm_perl.ini.
Ievietojam tur to paÅ”u kodu, kas tika izmantots Debian 8 instalÄÅ”anas laikÄ (aprakstÄ«ts iepriekÅ”).
Idejiski viss. (vÄl nav pÄrbaudÄ«ts)
Es atstÄju zemÄk dažas saites par sistÄmu iestatīŔanu, kuras visbiežÄk ir nepiecieÅ”ams aizsargÄt ar divu faktoru autentifikÄciju:
Divu faktoru autentifikÄcijas iestatīŔana
(tur tiek izmantots cits tokenu Ä£enerÄÅ”anas serveris, bet paÅ”Äm ASA iestatÄ«jumiem ir tie paÅ”i).
IestatÄ«jumi (tur arÄ« tiek izmantots LinOTP) ā paldies autoram. Turpat var atrast interesantas lietas par LiOTP politikas iestatīŔanu.
TÄpat daudzas vietÅu cms atbalsta divu faktoru autentifikÄciju (WordPress LinOTP pat ir sava Ä«paÅ”Ä moduļa versija) ), piemÄram, ja jÅ«s vÄlaties izveidot aizsargÄtu sadaļu savÄ uzÅÄmuma tÄ«mekļa vietnÄ darbiniekiem.
SVARÄŖGA InformÄcija! NEuzstÄdiet atzÄ«mi "Google autentifikators" Google autentifikatora izmantoÅ”anai! QR kods tad netiks nolasÄ«ts⦠(dÄ«vaina faktu)
Raksta izstrÄdei tika izmantota informÄcija no sekojoÅ”Äm rakstiem:
Paldies autoriem.
Avots: habr.com
