рдЖрдЬ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ, рд╕рд╛рдЗрдЯреЛрдВ, рд╕реЗрд╡рд╛рдУрдВ, рдПрд╕рдПрд╕рдПрдЪ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡рд░ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд░реНрд╡рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдпреЛрдЬрди рдЪрд▓рд╛рдПрдЧрд╛: 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 рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ред
(рд▓рд┐рдирдУрдЯреАрдкреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╕рд╣рд┐рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
# 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 (рдКрдкрд░ рд╡рд░реНрдгрд┐рдд) рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдерд╛ред
рдпрд╣ рд╕рдм рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИред (рдЕрднреА рддрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛)
рдореИрдВ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рд▓рд┐рдВрдХ рдиреАрдЪреЗ рдЫреЛрдбрд╝реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
рдореЗрдВ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рд╕рдорд╛рдпреЛрдЬрди
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕реАрдПрдордПрд╕ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдирдУрдЯреАрдкреА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рднреА рд╣реИ)
рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдереНрдп! Google рдкреНрд░рдорд╛рдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "Google рдкреНрд░рдорд╛рдгрдХ" рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рди рдХрд░реЗрдВ! QR рдХреЛрдб рддрдм рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ... (рдЕрдЬреАрдм рддрдереНрдп)
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛:
рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред
рд╕реНрд░реЛрдд: www.habr.com