Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ
ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΡΠ°ΠΉΡΠΎΠ², ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²,ssh. ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ²ΡΠ·ΠΊΠ°: LinOTP + FreeRadius.
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π½Π°ΠΌ?
ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅, ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅ΡΠΈ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠ΅Π΅ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ².
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π²Π΅ΡΡΠΌΠ° ΡΠ΄ΠΎΠ±Π΅Π½, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π΅Π½, Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
ΠΎΠΏΠ΅Π½ΡΠΎΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ login+password+(PIN+OTPToken)). Π§Π΅ΡΠ΅Π· API ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ sms (LinOTP Config->Provider Config->SMS Provider), Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° Google Autentificator ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π― ΡΡΠΈΡΠ°Ρ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠ΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ Π²
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Cisco ASA, OpenVPN ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Apache2, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· RADIUS ΡΠ΅ΡΠ²Π΅Ρ (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ SSH Π² ΡΠΎΠ΄).
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ:
1 ) Debian 8 (jessie) — ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ! (ΠΏΡΠΎΠ±Π½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π° debian 9 ΠΎΠΏΠΈΡΠ°Π½Π½Π° Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ)
ΠΠ°ΡΠ°Π»ΠΎ:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Debian 8.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ LinOTP:
# echo 'deb http://www.linotp.org/apt/debian jessie linotp' > /etc/apt/sources.list.d/linotp.list
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠΈ:
# gpg --search-keys 913DFF12F86258E5
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈ βΡΠΈΡΡΠΎΠΉβ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, 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
ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° gnupg. ΠΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ. ΠΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅ΡΠ΅ ΡΠ°Π·.
ΠΠ° Π²ΠΎΠΏΡΠΎΡ Debiana:
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) ΠΡΡ
ΠΎΠ΄>
ΠΡΠ²Π΅ΡΠ°Π΅ΠΌ: 1
ΠΠ°Π»Π΅Π΅:
# gpg --export 913DFF12F86258E5 | apt-key add -
# apt-get update
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ mysql. Π ΡΠ΅ΠΎΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ sql ΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ Ρ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ LinOTP.
(Π΄ΠΎΠΏ. ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π·Ρ LinOTP ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ
# apt-get install mysql-server
# apt-get update
(Π΅ΡΠ΅ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Ρ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ)
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ LinOTP ΠΈ Π΄ΠΎΠΏ.ΠΌΠΎΠ΄ΡΠ»ΠΈ:
# apt-get install linotp
ΠΡΠ²Π΅ΡΠ°Π΅ΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Apache2: Π΄Π°
ΠΡΠΈΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ admin Linotp: Β«ΠΠ°ΡΠΠ°ΡΠΎΠ»ΡΒ»
Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΡΠ΅ΡΠΈΠΊΠ°Ρ?: Π΄Π°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MySQL?: Π΄Π°
ΠΠ΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
: localhost
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π±Π°Π·Ρ LinOTP(ΠΈΠΌΡ Π±Π°Π·Ρ) Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅: LinOTP2
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·Π΅ΡΠ° Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
: LinOTP2
ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΠ°ΡΠΎΠ»Ρ ΡΠ·Π΅ΡΡ: Β«ΠΠ°ΡΠΠ°ΡΠΎΠ»ΡΒ»
Π‘ΠΎΠ·Π΄Π°ΡΡ Π»ΠΈ Π±Π°Π·Ρ ΡΠ΅ΠΉΡΠ°Ρ? (ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ βΠΡ ΡΠ²Π΅ΡΠ΅Π½Π½Ρ ΡΡΠΎ Ρ
ΠΎΡΠΈΡΠ΅ …β): Π΄Π°
ΠΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°ΡΠΎΠ»Ρ root ΠΎΡ MySQL ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅: Β«ΠΠ°ΡΠΠ°ΡΠΎΠ»ΡΒ»
ΠΠΎΡΠΎΠ²ΠΎ.
(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ ΡΡΠ°Π²ΠΈΡΡ)
# apt-get install linotp-adminclient-cli
(ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ ΡΡΠ°Π²ΠΈΡΡ)
# apt-get install libpam-linotp
Π ΡΠ°ΠΊ Π½Π°Ρ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Linotp ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ:
"<b>https</b>: //IP_ΡΠ΅ΡΠ²Π΅ΡΠ°/manage"
Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ, ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅! ΠΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ FreeRadius ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ Linotp.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ FreeRadius ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ LinOTP
# apt-get install freeradius linotp-freeradius-perl
Π±ΡΠΊΠ°ΠΏΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ client ΠΈ Users ΡΠ°Π΄ΠΈΡΡΠ°.
# mv /etc/freeradius/clients.conf /etc/freeradius/clients.old
# mv /etc/freeradius/users /etc/freeradius/users.old
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
# touch /etc/freeradius/clients.conf
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³Π° (Π·Π°Π±ΡΠΊΠ°ΠΏΠ»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ)
# nano /etc/freeradius/clients.conf
client 192.168.188.0/24 {
secret = passwd # ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
}
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» users:
# touch /etc/freeradius/users
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ», Π³ΠΎΠ²ΠΎΡΡ ΡΠ°Π΄ΠΈΡΡΡ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ perl Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
# nano /etc/freeradius/users
DEFAULT Auth-type := perl
ΠΠ°Π»Π΅Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» /etc/freeradius/modules/perl
# nano /etc/freeradius/modules/perl
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ perl ΡΠΊΡΠΈΠΏΡΡ linotp Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ module:
Perl { .......
.........
<source lang="bash">module = /usr/lib/linotp/radius_linotp.pm
…..
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ (Π΄ΠΎΠΌΠ΅Π½Π°, Π±Π°Π·Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°) Π±ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
# 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
Π’ΡΡ Ρ ΠΎΡΡΠ°Π½ΠΎΠ²Π»ΡΡΡ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ:
ΠΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ:
#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
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» /etc/freeradius/sites-available/linotp
# touch /etc/freeradius/sites-available/linotp
# nano /etc/freeradius/sites-available/linotp
Π ΡΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ (ΠΏΡΠ°Π²ΠΈΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Π½Π°Π΄ΠΎ):
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
}
ΠΠ°Π»Π΅Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠΈΠΌ Π»ΠΈΠ½ΠΊ:
# ln -s ../sites-available/linotp /etc/freeradius/sites-enabled
ΠΠΈΡΠ½ΠΎ Ρ ΡΠ±ΠΈΠ²Π°Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°Π΄ΠΈΡΡΠΎΠ²ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³, Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ.
# rm /etc/freeradius/sites-enabled/default
# rm /etc/freeradius/sites-enabled/inner-tunnel
# service freeradius reload
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²Π΅Π±-ΠΌΠΎΡΠ΄Π΅ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π΅ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
Π ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΠ³Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ LinOTP Config -> UserIdResolvers ->New
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ΅Π³ΠΎ Ρ
ΠΎΡΠΈΠΌ: LDAP (AD win, LDAP samba), ΠΈΠ»ΠΈ SQL, ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Flatfile.
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»Ρ.
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°Π΅ΠΌ REALMS:
Π ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΠ³Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ LinOTP Config ->Realms ->New.
ΠΈ Π΄Π°Π΅ΠΌ ΠΈΠΌΡ Π½Π°ΡΠ΅ΠΌΡ REALMSΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ UserIdResolvers.
ΠΡΠ΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½ΡΠΆΠ½Ρ freeRadius Π² ΡΠ°ΠΉΠ»ΠΈΠΊΠ΅ /etc/linotp2/rlm_perl.ini, ΠΎ ΡΠ΅ΠΌ Ρ ΠΏΠΈΡΠ°Π» Π²ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π΅Π³ΠΎ Π½Π΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ³Π΄Π°, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½.
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° LinOTP Π½Π° 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
(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² Debian 9 mysql (mariaDB) Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ ΡΡΡΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΈ ΠΏΡΡΡΡΠΌ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ, ΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Β«ΡΠΏΠΈΠΊ ΡΠ΅ΠΉΠ»Π°ΠΌΒ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΅Π³ΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ)
# 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
ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ΄ (ΠΏΡΠΈΡΠ»Π°Π½ JuriM, Π·Π° ΡΡΠΎ Π΅ΠΌΡ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!):
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
}
}
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ /etc/freeradius/3.0/mods-enabled/perl
perl {
filename = /usr/share/linotp/radius_linotp.pm
func_authenticate = authenticate
func_authorize = authorize
}
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ Π² debian 9 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° radius_linotp.pm Π½Π΅ ΡΡΠ°Π²ΠΈΡΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π΅Π΅ Ρ 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
ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΠΌ /etc/freeradius/3.0/clients.conf
client servers {
ipaddr = 192.168.188.0/24
secret = Π²Π°ΡΠΏΠ°ΡΠΎΠ»Ρ
}
ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΠΌ nano /etc/linotp2/rlm_perl.ini
ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΈ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½Π° debian 8 (ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎ Π²ΡΡΠ΅)
ΠΏΠΎ ΠΈΠ΄Π΅ΠΈ Π²ΡΠ΅. (ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ)
Π― ΠΎΡΡΠ°Π²Π»Ρ Π½ΠΈΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΎΠΊ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΡΠΈΡΠ°ΡΡ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
Π’Π°ΠΊ ΠΆΠ΅ cms ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°ΠΉΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ(ΠΠ»Ρ WordPress Ρ LinOTP Π΄Π°ΠΆΠ΅ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°
ΠΠΠΠΠ«Π Π€ΠΠΠ’! ΠΠ ΡΡΠ°Π²ΡΡΠ΅ Π³Π°Π»ΠΎΡΠΊΡ Β«Google autenteficatorΒ» Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ³Π» Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°! QR-ΠΊΠΎΠ΄ Π½Π΅ ΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ³Π΄Π°β¦ (ΡΡΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΊΡ)
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ°ΡΠ΅ΠΉ:
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π°Π²ΡΠΎΡΠ°ΠΌ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com