рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ: рдореИрдВ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢ / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдлрд╝рдЯреАрдкреА рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рди рдХреЗрд╡рд▓ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдлрд╝рдЯреАрдкреА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрд╕рдПрдлрдЯреАрдкреА рдФрд░ рдПрд╕рдПрд╕рдПрд▓-рдПрдлрд╝рдЯреАрдкреА рднреА рд╣реИ - рдпрд╣ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд╣реИ, рди рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓редрджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде, рдмрдврд╝реА рд╣реБрдИ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд╛рддреЗ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред
рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рджреВрд╕рд░реЗ рдХрд╛рд░рдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
code.google.com/p/google-authenticator/wiki/PamModuleInstructions рдпрд╛
motp .sourceforge.net / #6 ) рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдПрдХ рдпрд╛ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдВрдзреЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВред
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреАрдПрдПрдо рдХреЛ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдлрд╝рдЯреАрдкреА рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдорд╕реНрдпрд╛ рдЕрд▓рдЧ рд╣реИ; рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрддрд┐, рд╕рд░реНрд╡рд░ / рд░рд╛рдЙрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╛ рдПрдлрд╝рдЯреАрдкреА рдХрдиреЗрдХреНрд╢рди рдореЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдПрдлрд╝рдЯреАрдкреА рд╕рддреНрд░ рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ inopportune рдХреНрд╖рдг рдореЗрдВ рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред "рдХреНрд▓рд╛рд╕рд┐рдХ" рдПрдлрд╝рдЯреАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдмрд╕ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ "рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реЗрдЬреЗрдВ" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреЛ рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЖрдкрдХреЛ "рдЯреЛрдХрди" рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдХреЛрдб рдХрд╛рдлреА рдмрд╛рд░ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ "рдЯреЛрдХрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдордирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдмрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдордЭрд╛рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрд╛рдпрд╛ред рдЕрдм рдореИрдВ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред
рдПрдлрд╝рдЯреАрдкреА рдЕрд╕реНрдерд╛рдпреА рдкрд╛рд╕рд╡рд░реНрдб рдкреАрдврд╝реА
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реА рдореВрд▓ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рд╕рдХреНрд░рд┐рдп рджреЛ-рдЪрд░рдгреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде Google рдЦрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ
рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╛рд╕рд╡рд░реНрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реА рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдПрдлрд╝рдЯреАрдкреА рдкрд╛рд╕рд╡рд░реНрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд╣реЛрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд▓рд┐рдП (рд╡рд░реНрддрдорд╛рди рдкрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySQL) рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдЖрдИрдкреА рдкрддрд╛ рдФрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рд╕рд╛рде рд╣реА рдЙрддреНрдкрдиреНрди рдПрдлрд╝рдЯреАрдкреА рдкрд╛рд╕рд╡рд░реНрдб, рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдлрд╝рдЯреАрдкреА рдкрд╛рд╕рд╡рд░реНрдб рдПрдлрд╝рдЯреАрдкреА рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ рд╡рд┐рдиреНрдпрд╛рд╕
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ PureFTPD рдХреЛ рд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ MySQL рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд
, PureFTPD рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
MYSQLSocket /tmp/mysql.sock MYSQLUser root MYSQLPassword rootpw MYSQLDatabase pureftpd MYSQLCrypt cleartext MYSQLGetPW SELECT temp_password FROM temp_pass WHERE username="\L" AND IP="\R" AND expires <= UNIX_TIMESTAMP() MYSQLGetUID SELECT Uid FROM users WHERE User="\L" MYSQLGetGID SELECT Gid FROM users WHERE User="\L" MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ
\ L - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди
\ R - рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ
рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдорд╛рдкреНрдд рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд░рд╛рдЙрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред