LinOTP рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡рд░

LinOTP рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡рд░

рдЖрдЬ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ, рд╕рд╛рдЗрдЯреЛрдВ, рд╕реЗрд╡рд╛рдУрдВ, рдПрд╕рдПрд╕рдПрдЪ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡рд░ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд░реНрд╡рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдпреЛрдЬрди рдЪрд▓рд╛рдПрдЧрд╛: LinOTP + FreeRadiusред

рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдХреНрдпреЛрдВ рд╣реИ?
рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдлрд╝реНрдд, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рднреАрддрд░, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ред

рдпрд╣ рд╕реЗрд╡рд╛ рдЕрдиреНрдп рдУрдкрди рд╕реЛрд░реНрд╕ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдХрд╛рдлреА рджреГрд╢реНрдпрдорд╛рди рд╣реИ, рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рди + рдкрд╛рд╕рд╡рд░реНрдб + (рдкрд┐рди + рдУрдЯреАрдкреАрдЯреЛрдХрди))ред рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ (рд▓рд┐рдирдУрдЯреАрдкреА рдХреЙрдиреНрдлрд┐рдЧ->рдкреНрд░рджрд╛рддрд╛ рдХреЙрдиреНрдлрд┐рдЧ->рдПрд╕рдПрдордПрд╕ рдкреНрд░рджрд╛рддрд╛) рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, Google рдкреНрд░рдорд╛рдгрдХ рдЬреИрд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рд▓реЗрдЦ.

рдпрд╣ рд╕рд░реНрд╡рд░ рд╕рд┐рд╕реНрдХреЛ рдПрдПрд╕рдП, рдУрдкрдирд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░, рдЕрдкрд╛рдЪреЗ2 рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд▓рдЧрднрдЧ рд╣рд░ рдЪреАрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░реЗрдбрд┐рдпрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рд▓рд┐рдП)ред

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

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

рд╣рдо рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ: 1

рдЕрдЧрд▓рд╛:

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

# apt-get update

MySQL рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ. рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп sql рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ LinOTP рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ред

(рд▓рд┐рдирдУрдЯреАрдкреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рд▓рд┐рдВрдХ. рд╡рд╣рд╛рдВ рдЖрдк рдХрдорд╛рдВрдб рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА MySQL рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП dpkg-reconfigure linotp)ред

# apt-get install mysql-server

# apt-get update

(рдЕрдкрдбреЗрдЯ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реЛрдЧреА)
LinOTP рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

# apt-get install linotp

рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ:
Apache2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╣рд╛рдБ
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд▓рд┐рдиреЛрдЯрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдПрдВ: "рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб"
рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ?: рд╣рд╛рдБ
MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?: рд╣рд╛рдБ
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ LinOTP рдбреЗрдЯрд╛рдмреЗрд╕ (рдЖрдзрд╛рд░ рдирд╛рдо) рдмрдирд╛рдПрдВ: LinOTP2
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ: LinOTP2
рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ: "рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб"
рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдм рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? (рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд┐ "рдХреНрдпрд╛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ..."): рд╣рд╛рдБ
MySQL рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдмрдирд╛рдпрд╛ рдерд╛: "рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб"
рд╣реЛ рдЧрдпрд╛ред

(рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)

# apt-get install linotp-adminclient-cli 

(рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)

# apt-get install libpam-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 { .......
.........
<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 рдкрддрд╛)
рдпреВрдЖрд░рдПрд▓=https://172.17.14.103/validate/simplecheck
#рд╣рдорд╛рд░рд╛ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕реЗ рд╣рдо LinOTP рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдмрдирд╛рдПрдВрдЧреЗред)
REALM=рд░рд┐рдпрд░1
#рд▓рд┐рдирдУрдЯреАрдкреА рд╡реЗрдм рдордЬрд╝рд▓ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдХрд╛ рдирд╛рдоред
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 -> рдирдпрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рд╣рдо рд╡рд╣реА рдЪреБрдирддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рдПрд▓рдбреАрдПрдкреА (рдПрдбреА рд╡рд┐рди, рдПрд▓рдбреАрдПрдкреА рд╕рд╛рдВрдмрд╛), рдпрд╛ рдПрд╕рдХреНрдпреВрдПрд▓, рдпрд╛ рдлреНрд▓реИрдЯрдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред

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

рдЖрдЧреЗ рд╣рдо REALMS рдмрдирд╛рддреЗ рд╣реИрдВ:
рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ, LinOTP рдХреЙрдиреНрдлрд┐рдЧ -> рдХреНрд╖реЗрддреНрд░ -> рдирдпрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдФрд░ рд╣рдорд╛рд░реЗ 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
рдЯрд╛рдЗрдк=рдСрде
}
рд╕реБрдирдирд╛ {
ipaddr = *
рдкреЛрд░реНрдЯ = 1813
рдкреНрд░рдХрд╛рд░ = рдЦрд╛рддрд╛
}
рдЕрдзрд┐рдХреГрдд рдХрд░реЗрдВ {
рдкреВрд░реНрд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рдЕрджреНрдпрддрди {
&рдирд┐рдпрдВрддреНрд░рдг:рдкреНрд░рд╛рдорд╛рдгрд┐рдХ-рдкреНрд░рдХрд╛рд░:= рдкрд░реНрд▓
}
}
рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░реЗрдВ {
рдкреНрд░рд╛рдорд╛рдгрд┐рдХ-рдкреНрд░рдХрд╛рд░ рдкрд░реНрд▓ {
рдкрд░реНрд▓
}
}
рд▓реЗрдЦрд╛рдВрдХрди {
рдпреВрдирд┐рдХреНрд╕
}
}

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

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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрдмрд┐рдпрди 9 рдореЗрдВ рд░реЗрдбрд┐рдпрд╕_рд▓рд┐рдиреЛрдЯрдкреА.рдкреАрдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЬреАрдердм рд╕реЗ рд▓реЗрдВрдЧреЗред

# 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 рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ {
рдЖрдИрдкреИрдбрдбреАрдЖрд░ = 192.168.188.0/24
рд░рд╣рд╕реНрдп = рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб
}

рдЕрдм рдиреИрдиреЛ /etc/linotp2/rlm_perl.ini рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ

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

рдпрд╣ рд╕рдм рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИред (рдЕрднреА рддрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛)

рдореИрдВ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рд▓рд┐рдВрдХ рдиреАрдЪреЗ рдЫреЛрдбрд╝реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
рдореЗрдВ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ Apache2

рд╕рд┐рд╕реНрдХреЛ рдПрдПрд╕рдП рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк(рд╡рд╣рд╛рдВ рдПрдХ рдЕрд▓рдЧ рдЯреЛрдХрди рдЬреЗрдирд░реЗрд╢рди рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдПрд╕рдП рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрд╡рдпрдВ рд╕рдорд╛рди рд╣реИрдВ)ред

рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд╛рд▓рд╛ рд╡реАрдкреАрдПрди

рд╕рдорд╛рдпреЛрдЬрди рдПрд╕рдПрд╕рдПрдЪ рдореЗрдВ рджреЛ рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рд▓рд┐рдирдУрдЯреАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╣рд╛рдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) - рд▓реЗрдЦрдХ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рд╡рд╣рд╛рдВ рдЖрдк LiOTP рдиреАрддрд┐рдпрд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВ рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕реАрдПрдордПрд╕ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдирдУрдЯреАрдкреА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рднреА рд╣реИ) GitHub), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрдВрдкрдиреА рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдереНрдп! Google рдкреНрд░рдорд╛рдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "Google рдкреНрд░рдорд╛рдгрдХ" рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рди рдХрд░реЗрдВ! QR рдХреЛрдб рддрдм рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ... (рдЕрдЬреАрдм рддрдереНрдп)

рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:
itnan.ru/post.php?c=1&p=270571
www.digitalbears.net/?p=469

рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ