LinOTP рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡реНрд╣рд░

LinOTP рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡реНрд╣рд░

рдЖрдЬ рдорд▓рд╛ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ, рд╕рд╛рдЗрдЯреНрд╕, рд╕реЗрд╡рд╛, ssh рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡реНрд╣рд░ рдХрд╕рд╛ рд╕реЗрдЯ рдХрд░рд╛рдпрдЪрд╛ рддреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░ рдЦрд╛рд▓реАрд▓ рд╕рдВрдпреЛрдЬрди рдЪрд╛рд▓рд╡реЗрд▓: LinOTP + FreeRadius.

рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ?
рд╣реЗ рдкреВрд░реНрдгрдкрдгреЗ рд╡рд┐рдирд╛рдореВрд▓реНрдп, рд╕реЛрдпреАрд╕реНрдХрд░ рд╕рдорд╛рдзрд╛рди рдЖрд╣реЗ, рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ, рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдкрд╛рд╕реВрди рд╕реНрд╡рддрдВрддреНрд░ рдЖрд╣реЗ.

рд╣реА рд╕реЗрд╡рд╛ рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ, рдЕрдЧрджреА рджреГрд╢реНрдпрдорд╛рди рдЖрд╣реЗ, рдЗрддрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдЙрддреНрдкрд╛рджрдирд╛рдВрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реА рдЖрд╣реЗ, рдЖрдгрд┐ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ рдзреЛрд░рдгрд╛рдВрдирд╛ рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерди рджреЗрддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд▓реЙрдЧрд┐рди+рдкрд╛рд╕рд╡рд░реНрдб+(рдкрд┐рди+рдУрдЯреАрдкреАрдЯреЛрдХрди)). API рджреНрд╡рд╛рд░реЗ, рддреЗ рдПрд╕рдПрдордПрд╕ рдкрд╛рдард╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реЗрд╡рд╛рдВрд╕рд╣ (LinOTP рдХреЙрдиреНрдлрд┐рдЧ->рдкреНрд░реЛрд╡реНрд╣рд╛рдпрдбрд░ рдХреЙрдиреНрдлрд┐рдЧ->рдПрд╕рдПрдордПрд╕ рдкреНрд░рджрд╛рддрд╛) рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рддреЗ, Google Authentificator рд╕рд╛рд░рдЦреНрдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реЗрд╡реЗрдкреЗрдХреНрд╖рд╛ рддреЗ рдЕрдзрд┐рдХ рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ рд▓реЗрдЦ.

рд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░ Cisco ASA, OpenVPN рд╕рд░реНрд╡реНрд╣рд░, Apache2 рдЖрдгрд┐ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ RADIUS рд╕рд░реНрд╡реНрд╣рд░ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреАрд▓ SSH рд╕рд╛рдареА) рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░реНтАНрдпрд╛ рдЬрд╡рд│рдЬрд╡рд│ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯреАрд╕рд╣ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ.

рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

1) рдбреЗрдмрд┐рдпрди 8 (рдЬреЗрд╕реА) - рдЕрдкрд░рд┐рд╣рд╛рд░реНрдпрдкрдгреЗ! (рдбреЗрдмрд┐рдпрди 9 рд╡рд░реАрд▓ рдЪрд╛рдЪрдгреА рд╕реНрдерд╛рдкрдиреЗрдЪреЗ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ)

рдкреНрд░рд╛рд░рдВрднрдГ

рдбреЗрдмрд┐рдпрди 8 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ.

LinOTP рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╛:

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

рдХреА рдЬреЛрдбрдд рдЖрд╣реЗ:

# gpg --search-keys 913DFF12F86258E5

рдХрдзреАрдХрдзреА "рд╕реНрд╡рдЪреНрдЫ" рд╕реНрдерд╛рдкрдиреЗрджрд░рдореНрдпрд╛рди, рд╣реА рдЖрдЬреНрдЮрд╛ рдЪрд╛рд▓рд╡рд┐рд▓реНрдпрд╛рдирдВрддрд░, рдбреЗрдмрд┐рдпрди рджрд╛рдЦрд╡рддреЛ:

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 рд╕реЗрдЯрдЕрдк рдЖрд╣реЗ. рдареАрдХ рдЖрд╣реЗ. рдлрдХреНрдд рдХрдорд╛рдВрдб рдкреБрдиреНрд╣рд╛ рдЪрд╛рд▓рд╡рд╛.
рдбреЗрдмрд┐рдпрдирдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рд╡рд░:

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) ╨Т╤Л╤Е╨╛╨┤>

рдЖрдореНрд╣реА рдЙрддреНрддрд░ рджреЗрддреЛрдГ рез

рдкреБрдвреАрд▓:

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

# apt-get update

mysql рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛. рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдиреБрд╕рд╛рд░, рддреБрдореНрд╣реА рджреБрд╕рд░рд╛ sql рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд╕рд╛рдзреЗрдкрдгрд╛рд╕рд╛рдареА рдореА рддреЗ LinOTP рд╕рд╛рдареА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рд╡рд╛рдкрд░реЗрди.

(LinOTP рдбреЗрдЯрд╛рдмреЗрд╕ рдкреБрдиреНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд╣рд┐рддреА, рдЕрдзрд┐рдХреГрдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдордзреНрдпреЗ рдЖрдврд│реВ рд╢рдХрддреЗ рджреБрд╡рд╛. рддреЗрдереЗ рддреБрдореНрд╣реА рдХрдорд╛рдВрдб рджреЗрдЦреАрд▓ рд╢реЛрдзреВ рд╢рдХрддрд╛: рдЬрд░ рддреБрдореНрд╣реА рдЖрдзреАрдЪ mysql рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓ рддрд░ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА dpkg-reconfigure linotp).

# apt-get install mysql-server

# apt-get update

(рдкреБрдиреНрд╣рд╛ рдЕрджреНрдпрддрдиреЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕ рддреНрд░рд╛рд╕ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА)
LinOTP рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:

# apt-get install linotp

рдЖрдореНрд╣реА рдЗрдВрд╕реНрдЯреЙрд▓рд░рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ рджреЗрддреЛ:
Apache2 рд╡рд╛рдкрд░рд╛: рд╣реЛрдп
рдкреНрд░рд╢рд╛рд╕рдХ Linotp рд╕рд╛рдареА рдкрд╛рд╕рд╡рд░реНрдб рддрдпрд╛рд░ рдХрд░рд╛: тАЬрддреБрдордЪрд╛ рдкрд╛рд╕рд╡рд░реНрдбтАЭ
рд╕реНрд╡-рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рд╛?: рд╣реЛрдп
MySQL рд╡рд╛рдкрд░рд╛?: рд╣реЛрдп
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреБрдареЗ рдЖрд╣реЗ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ LinOTP рдбреЗрдЯрд╛рдмреЗрд╕ (рдмреЗрд╕ рдирд╛рд╡) рддрдпрд╛рд░ рдХрд░рд╛: LinOTP2
рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХрд░рд╛: LinOTP2
рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддреЛ: тАЬрддреБрдордЪрд╛ рдкрд╛рд╕рд╡рд░реНрдбтАЭ
рдореА рдЖрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдпрд╛рд░ рдХрд░рд╛рд╡рд╛ рдХрд╛? (тАЬрддреБрдореНрд╣рд╛рд▓рд╛ рдирдХреНрдХреА рд╣рд╡реЗ рдЖрд╣реЗ рдХрд╛...тАЭ рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА): рд╣реЛрдп
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ MySQL рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдПрдВрдЯрд░ рдХрд░рд╛: тАЬрддреБрдордЪрд╛ рдкрд╛рд╕рд╡рд░реНрдбтАЭ
рдЭрд╛рд▓реЗ

(рдкрд░реНрдпрд╛рдпреА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА)

# apt-get install linotp-adminclient-cli 

(рдкрд░реНрдпрд╛рдпреА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА)

# apt-get install libpam-linotp  

рдЖрдгрд┐ рдореНрд╣рдгреВрди рдЖрдордЪрд╛ Linotp рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрддрд╛ рдпреЗрдереЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ:

"<b>https</b>: //IP_╤Б╨╡╤А╨▓╨╡╤А╨░/manage"

рдореА рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕рдордзреАрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдмрджреНрджрд▓ рдереЛрдбреНрдпрд╛ рд╡реЗрд│рд╛рдиреЗ рдмреЛрд▓реВ.

рдЖрддрд╛, рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ! рдЖрдореНрд╣реА FreeRadius рд╡рд╛рдврд╡рддреЛ рдЖрдгрд┐ Linotp рд╢реА рд▓рд┐рдВрдХ рдХрд░рддреЛ.

LinOTP рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА FreeRadius рдЖрдгрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

# apt-get install freeradius linotp-freeradius-perl

рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрдЪрд╛ рдмреЕрдХрдЕрдк рдШреНрдпрд╛.

# 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 # ╨┐╨░╤А╨╛╨╗╤М ╨┤╨╗╤П ╨┐╨╛╨┤╨║╨╗╤О╤З╨╡╨╜╨╕╤П ╨║╨╗╨╕╨╡╨╜╤В╨╛╨▓
}

рдкреБрдвреЗ, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛:

# touch /etc/freeradius/users

рдЖрдореНрд╣реА рдлрд╛рдИрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЛ, рддреНрд░рд┐рдЬреНрдпрд╛ рд╕рд╛рдВрдЧрддреЛ рдХреА рдЖрдореНрд╣реА рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕рд╛рдареА рдкрд░реНрд▓ рд╡рд╛рдкрд░реВ.

# nano /etc/freeradius/users

DEFAULT Auth-type := perl

рдкреБрдвреЗ, рдлрд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /etc/freeradius/modules/perl

# nano /etc/freeradius/modules/perl

рдЖрдореНрд╣рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ perl linotp рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪрд╛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

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

рдореА рдпреЗрдереЗ рдереЛрдбреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╛рдд рдЬрд╛рдИрди рдХрд╛рд░рдг рддреЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ:

рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрд╕рд╣ рдлрд╛рдЗрд▓рдЪреЗ рд╕рдВрдкреВрд░реНрдг рд╡рд░реНрдгрди:
linOTP рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ #IP (рдЖрдордЪреНрдпрд╛ LinOTP рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ IP рдкрддреНрддрд╛)
URL=https://172.17.14.103/validate/simplecheck
# рдЖрдордЪреЗ рдХреНрд╖реЗрддреНрд░ рдЬреЗ рдЖрдореНрд╣реА LinOTP рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рддрдпрд╛рд░ рдХрд░реВ.)
REALM=rearm1
# LinOTP рд╡реЗрдм рдереВрдерди рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЧрдЯрд╛рдЪреЗ рдирд╛рд╡.
RESCONF=flat_file
#рд╡реИрдХрд▓реНрдкрд┐рдХ: рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ рдЕрд╕реЗ рд╡рд╛рдЯрдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдЯрд┐рдкреНрдкрдгреА рджреНрдпрд╛
рдбреАрдмрдЧ = рдЦрд░реЗ
#рд╡реИрдХрд▓реНрдкрд┐рдХ: рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕реНрд╡рдд:рдЪреА рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣реЗ рд╡рд╛рдкрд░рд╛, рдЕрдиреНрдпрдерд╛ рдЯрд┐рдкреНрдкрдгреА рджреНрдпрд╛ (рдЖрдореНрд╣реА рдЖрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рд╕ рдЖрдгрд┐ рддреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕)
SSL_CHECK=рдЕрд╕рддреНрдп

рдкреБрдвреЗ, рдлрд╛рдЗрд▓ /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 рдХреЙрдиреНрдлрд┐рдЧ -> UserIdResolvers -> New рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛
рдЖрдореНрд╣рд╛рд▓рд╛ рдЬреЗ рд╣рд╡реЗ рдЖрд╣реЗ рддреЗ рдЖрдореНрд╣реА рдирд┐рд╡рдбрддреЛ: LDAP (AD win, LDAP samba), рдХрд┐рдВрд╡рд╛ SQL, рдХрд┐рдВрд╡рд╛ Flatfile рд╕рд┐рд╕реНрдЯрдордЪреЗ рд╕реНрдерд╛рдирд┐рдХ рд╡рд╛рдкрд░рдХрд░реНрддреЗ.

рдЖрд╡рд╢реНрдпрдХ рдлреАрд▓реНрдб рднрд░рд╛.

рдкреБрдвреЗ рдЖрдореНрд╣реА REALMS рддрдпрд╛рд░ рдХрд░рддреЛ:
рд╡рд░рдЪреНрдпрд╛ рдЙрдЬрд╡реНрдпрд╛ рдХреЛрдкрд░реНрдпрд╛рдд, LinOTP рдХреЙрдиреНрдлрд┐рдЧ -> Realms -> New рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛.
рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ REALMS рд▓рд╛ рдирд╛рд╡ рджреНрдпрд╛ рдЖрдгрд┐ рдЖрдзреА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ UserIdResolvers рд╡рд░ рджреЗрдЦреАрд▓ рдХреНрд▓рд┐рдХ рдХрд░рд╛.

FreeRadius рд▓рд╛ рд╣рд╛ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ /etc/linotp2/rlm_perl.ini рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╣рд╡рд╛ рдЖрд╣реЗ, рдЬрд╕реЗ рдореА рд╡рд░ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рдЬрд░ рддреБрдореНрд╣реА рддреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХреЗрд▓реЗ рдирд╕реЗрд▓ рддрд░ рддреЗ рдЖрддреНрддрд╛рдЪ рдХрд░рд╛.

рд╕рд░реНрд╡реНрд╣рд░ рд╕рд░реНрд╡ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд:

рдбреЗрдмрд┐рдпрди 9 рд╡рд░ LinOTP рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ:

рд╕реНрдерд╛рдкрдирд╛:

# 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

(рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдбреЗрдмрд┐рдпрди 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 рдиреЗ рдкрд╛рдард╡рд▓реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдмрджреНрджрд▓ рддреНрдпрд╛рдВрдЪреЗ рдЖрднрд╛рд░!):

рд╕рд░реНрд╡реНрд╣рд░ рд▓рд┐рдиреЙрдЯрдк {
рдРрдХрд╛ {
ipaddr = *
рдкреЛрд░реНрдЯ = 1812
type=auth
}
рдРрдХрд╛ {
ipaddr = *
рдкреЛрд░реНрдЯ = 1813
рдкреНрд░рдХрд╛рд░ = acct
}
рдЕрдзрд┐рдХреГрдд рдХрд░рд╛ {
рдкреВрд░реНрд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдЕрдкрдбреЗрдЯ {
&control:Auth-Type := Perl
}
}
рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рд╛ {
рдСрде-рдкреНрд░рдХрд╛рд░ рдкрд░реНрд▓ {
рдкреЗрд░реНрд▓
}
}
рд▓реЗрдЦрд╛ {
рдпреБрдирд┐рдХреНрд╕
}
}

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /etc/freeradius/3.0/mods-enabled/perl

рдкрд░реНрд▓ {
рдлрд╛рдЗрд▓рдирд╛рд╡ = /usr/share/linotp/radius_linotp.pm
func_authenticate = рдкреНрд░рдорд╛рдгреАрдХреГрдд рдХрд░рд╛
func_authorize = рдЕрдзрд┐рдХреГрдд рдХрд░рд╛
}

рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдбреЗрдмрд┐рдпрди 9 рдордзреНрдпреЗ radius_linotp.pm рд▓рд╛рдпрдмреНрд░рд░реА рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреВрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреЗ рдЧрд┐рдердмрдордзреВрди рдШреЗрдК.

# 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

рдХреНрд▓рд╛рдпрдВрдЯ рд╕рд░реНрд╡реНрд╣рд░ {
ipaddr = 192.168.188.0/24
рдЧреБрдкреНрдд = рддреБрдордЪрд╛ рдкрд╛рд╕рд╡рд░реНрдб
}

рдЖрддрд╛ nano /etc/linotp2/rlm_perl.ini рджреБрд░реБрд╕реНрдд рдХрд░реВ

рдбреЗрдмрд┐рдпрди 8 рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣реА рддреЛрдЪ рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░рддреЛ (рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реЗ)

рд╣реЗ рд╕рд░реНрд╡ рдХрд▓реНрдкрдиреЗрдиреБрд╕рд╛рд░ рдЖрд╣реЗ. (рдЕрджреНрдпрд╛рдк рдЪрд╛рдЪрдгреА рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА)

рдореА рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯ рдЕрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рд▓рд┐рдВрдХ рдЦрд╛рд▓реА рджреЗрдИрди рдЬреНрдпрд╛рдВрдирд╛ рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдиреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧрддреЗ:
рдордзреНрдпреЗ рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ рдЕрдкрд╛рдЪреЗрдПрдХреНрд╕рдПрдирдПрдХреНрд╕

Cisco ASA рд╕рд╣ рд╕реЗрдЯрдЕрдк(рддрд┐рдереЗ рднрд┐рдиреНрди рдЯреЛрдХрди рдЬрдирд░реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдкрд░рдВрддреБ ASA рдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕реНрд╡рддрдГ рд╕рдорд╛рди рдЖрд╣реЗрдд).

рджреЛрди-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕рд╣ VPN

рд╕рдорд╛рдпреЛрдЬрди ssh рдордзреНрдпреЗ рджреЛрди рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (LinOTP рддрд┐рдереЗрд╣реА рд╡рд╛рдкрд░рд▓рд╛ рдЖрд╣реЗ) - рд▓реЗрдЦрдХрд╛рдЪреЗ рдЖрднрд╛рд░. рддреЗрдереЗ рддреБрдореНрд╣рд╛рд▓рд╛ LiOTP рдкреЙрд▓рд┐рд╕реА рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдордиреЛрд░рдВрдЬрдХ рдЧреЛрд╖реНрдЯреА рджреЗрдЦреАрд▓ рдорд┐рд│реВ рд╢рдХрддрд╛рдд.

рддрд╕реЗрдЪ, рдмрд░реНтАНрдпрд╛рдЪ рд╕рд╛рдЗрдЯреНрд╕рдЪреЗ рд╕реЗрдореА рджреНрд╡рд┐-рдШрдЯрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд (рд╡рд░реНрдбрдкреНрд░реЗрд╕рд╕рд╛рдареА, рд▓рд┐рдирдУрдЯреАрдкреАрдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рджреЗрдЦреАрд▓ рдЖрд╣реЗ github), рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рдХрдВрдкрдиреАрдЪреНрдпрд╛ рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрд╕рд╛рдареА рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рднрд╛рдЧ рдмрдирд╡рд╛рдпрдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕.
рдорд╣рддреНрддреНрд╡рд╛рдЪреА рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА! Google Authenticator рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА тАЬGoogle autentificatorтАЭ рдмреЙрдХреНрд╕ рддрдкрд╛рд╕реВ рдирдХрд╛! рдордЧ QR рдХреЛрдб рд╡рд╛рдЪрддрд╛ рдпреЗрдд рдирд╛рд╣реА... (рд╡рд┐рдЪрд┐рддреНрд░ рддрдереНрдп)

рд╣рд╛ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рдЦрд╛рд▓реАрд▓ рд▓реЗрдЦрд╛рддреАрд▓ рдорд╛рд╣рд┐рддреА рд╡рд╛рдкрд░рд▓реА рдЧреЗрд▓реА:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

рд▓реЗрдЦрдХрд╛рдВрдЪреЗ рдЖрднрд╛рд░.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛