рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдирдорд╕реНрддреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ! рдЖрдЬ, рдЬрдм "рджреВрд░рд╕реНрде рдХрд╛рд░реНрдп" рдХреЛ рд▓реЗрдХрд░ рдЬреБрдиреВрди рдХреА рддреАрд╡реНрд░рддрд╛ рдереЛрдбрд╝реА рдХрдо рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдиреЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рджреВрд░рд╕реНрде рдкрд╣реБрдВрдЪ рдХрд╛ рдХрд╛рд░реНрдп рдЬреАрдд рд▓рд┐рдпрд╛ рд╣реИ, рдЕрдм рд╡реАрдкреАрдПрди рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рдЕрдкрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдЕрдм IPSec IKEv2 рдФрд░ xAuth рдлреИрд╢рдиреЗрдмрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ. рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (2FA) рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрдм рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдЬрдм рдкреАрдкреАрдкреА рдЬреИрд╕реЗ "рдХреНрд▓рд╛рд╕рд┐рдХ" рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рдХреЗ "рдЕрдкрд╣рд░рдг" рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдкреАрдкреАрдкреА-рд╡реАрдкреАрдПрди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдПред рдЬрдм рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдореЗрд░реЗ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рдордиреЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдЙрд╕рдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рдХрд╣рд╛, "рдареАрдХ рд╣реИ, рдЕрдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдмреИрдВрдХ рдХреА рддрд░рд╣ рд╣реИ!"ред

рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╛рд╣рд░реА рдкреНрд░рдорд╛рдгрдХ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдХрд╛рд░реНрдп рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╣реА рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд╛рдЧрдд рдирд╣реАрдВ. рдпрд╣ рд╡рд┐рдзрд┐ рдкреАрд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЧреНрд░реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдХрдиреЗрдХреНрд╢рди рдИрд╡реЗрдВрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд╛рд░ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдкрддреЛрдВ рдХреА рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдкрд╣реБрдВрдЪ рд╣реИ, "рдкреНрд░рдорд╛рдгрдХ" рд╕реЗрд╡рд╛ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬреЛ рдПрдХ рдмрд╛рд░ рдХрд╛ рдкрд╛рд╕рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИред
  4. рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИред

рдкрд╣рд▓реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╡рд╣ рдереА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ 2FA рдХреЛрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ред рдЪреВрдБрдХрд┐ рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдордирдорд╛рдирд╛ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдореМрдЬреВрджрд╛ "рдЯрд┐рдкреНрдкрдгреА" рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

/рдкреАрдкреАрдкреА рд░рд╣рд╕реНрдп рдирд╛рдо рдЬреЛрдбрд╝реЗрдВ=рдкреЗрдЯреНрд░реЛрд╡ рдкрд╛рд╕рд╡рд░реНрдб=4рдПрдо@рдПрдирдЬреАрдЖрд░! рдЯрд┐рдкреНрдкрдгреА='89876543210'

рджреВрд╕рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдирд┐рдХрд▓реА - рдХреЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрде рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЪреБрдирд╛рд╡ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рддреАрди рдпреЛрдЬрдирд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╣реИрдВ: рдП) рдпреВрдПрд╕рдмреА-рдореЙрдбреЗрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдПрдордПрд╕ рдмреА) рдИ-рдореЗрд▓ рд╕реА) рд░реЗрдб рд╕реЗрд▓реНрдпреБрд▓рд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдИ-рдореЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдПрдордПрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИред

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

рддреЛ, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╣рдо рдПрд╕рдПрдордПрд╕ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрд╛рд░ рдХрд╛ рдХреЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдореЗрдВ рдПрдХ рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдЬрдирд░реЗрдЯрд░ рд╣реИ! рдпрд╣ /certificates scep-server рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рддрд╣реА рдирдЬрд╝рд░ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рд╕рд░рд▓ рд╣реИ - рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде /рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдПрд╕рд╕реАрдкреА-рд╕рд░реНрд╡рд░ рдУрдЯреАрдкреА рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ. рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдРрд░реЗ рдорд╛рди рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдПрдХ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд┐рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИ - рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ random.org рдЫрджреНрдо-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╣реИ рдмреНрд░реИрдХрдЯ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:

рдХреЛрдб
:global rnd1 [:pick ([/tool fetch url="https://www.random.org/strings/?num=1&len=7&digits=on&unique=on&format=plain&rnd=new" as-value output=user ]->"da
ta") 1 6] :put $rnd1

рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реВрдкрд┐рдд рдПрдХ рдЕрдиреБрд░реЛрдз (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЙрдбреА рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА) $rnd1 рдЪрд░ рдореЗрдВ рдЫрд╣ рдЕрдВрдХреЛрдВ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд "рдкреБрдЯ" рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЪреМрдереА рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕реЗ рддреБрд░рдВрдд рд╣рд▓ рдХрд░рдирд╛ рдерд╛ - рдпрд╣ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдЕрдкрдирд╛ рд╡рди-рдЯрд╛рдЗрдо рдХреЛрдб рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░ рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреЛрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛ рд╕рдХреЗред рдпрджрд┐ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЕрдкреЗрдХреНрд╖рд┐рдд рдХреЛрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдкрддрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд "рд╕рдлреЗрдж" рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдХреЗ рдкрддреЗ рд╕реЗ рдХрдВрдкрдиреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЦрд░рд╛рдм рд╡рд┐рдХрд▓реНрдк рдХреЗ рдХрд╛рд░рдг, рдорд┐рдХрд░реЛрдЯрд┐рдХ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╡реЗрдмрдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдЖрдИрдкреА рдкрддреЗ рдХреА рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╣реИ рдЬреЛ рдХреЛрдб рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЗрдпрд░ 7 рд░реЗрдЧрдПрдХреНрд╕рдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ "рд╕рдлреЗрдж" рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд░рд╛рдЙрдЯрд░ рдХреЛ рд╕реНрд╡рдпрдВ рдПрдХ рд╕рд╢рд░реНрдд DNS рдирд╛рдо "gw.local" рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдкреАрдкреАрдкреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдПрдХ рд╕реНрдерд┐рд░ рдП-рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдбреАрдПрдирдПрд╕
/рдЖрдИрдкреА рдбреАрдПрдирдПрд╕ рд╕реНрдерд┐рд░ рдирд╛рдо рдЬреЛрдбрд╝реЗрдВ=gw.рд╕реНрдерд╛рдиреАрдп рдкрддрд╛=172.31.1.1

рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рдЕрд╕рддреНрдпрд╛рдкрд┐рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛:
/ip firewall nat add chain=dstnat dst-port=80,443 in-interface=2fa protocol=tcp !src-address-list=2fa_approved action=redirect to-ports=3128

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВред

1. рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВ;

2. рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдпрд╛ рдЪрд┐рддреНрд░ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдВ:

рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
/ip proxy
set enabled=yes port=3128
/ip proxy access
add action=deny disabled=no redirect-to=gw.local./mikrotik_logo.png src-address=0.0.0.0/0

рдореИрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрддреНрд╡реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдВрдЧрд╛:

  1. рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рд╕реВрдЪреА "2fa" - рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪреА, рдЬрд┐рд╕рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ 2FA рдХреЗ рднреАрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
  2. рдкрддрд╛-рд╕реВрдЪреА "2fa_jailed" - рд╡реАрдкреАрдПрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕реБрд░рдВрдЧ рдЖрдИрдкреА рдкрддреЗ рдХреА "рдЧреНрд░реЗ" рд╕реВрдЪреА;
  3. рдПрдбреНрд░реЗрд╕_рд▓рд┐рд╕реНрдЯ "2fa_approved" - рд╡реАрдкреАрдПрди рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рдЯрдирд▓ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдХреА "рд╡реНрд╣рд╛рдЗрдЯ" рд╕реВрдЪреА рдЬреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред
  4. рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ "input_2fa" - рдпрд╣ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЯреАрд╕реАрдкреА рдкреИрдХреЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЛрдб рдкреНрд░реЗрд╖рдХ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдирд┐рдпрдо рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдкреИрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

"рдЧреНрд░реЗ" рд╕реВрдЪреА рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рд▓реЗрдпрд░7 рдЬрд╛рдВрдЪ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рджреВрд╕рд░реЗ рдЪрд░рдг рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдорд╛рдирдХ "рдЗрдирдкреБрдЯ" рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдПрдХ рдирд┐рдпрдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреЛрдб
/ip firewall filter add chain=input !src-address-list=2fa_approved action=jump jump-target=input_2fa

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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реМрдВрдк рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдкреАрдкреАрдкреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╕рд╛рде рд╣реА рд╕рд╛рдЗрдЯ-рдЯреВ-рд╕рд╛рдЗрдЯ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░рддреЗ рд╣реИрдВред

рдирд╡ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рдкрддреЗ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА "рдЧреНрд░реЗ" рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЬреБрдбрд╝реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрддреЗ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЬреЛрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

рд╡рд┐рдирдмреЙрдХреНрд╕
рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдХреЛрдб
/ppp profile add address-list=2fa_jailed change-tcp-mss=no local-address=192.0.2.254 name=2FA interface-list=2fa only-one=yes remote-address=dhcp_pool1 use-compression=no use-encryption= required use-mpls=no use-upnp=no dns-server=172.31.1.1

Dstnat (рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ) рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЧреИрд░-рдорд╛рдзреНрдпрдорд┐рдХ рд╡реАрдкреАрдПрди рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкрддрд╛-рд╕реВрдЪреА" рдФрд░ "рдЗрдВрдЯрд░рдлрд╝реЗрд╕-рд╕реВрдЪреА" рджреЛрдиреЛрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЬрдм рддреИрдпрд╛рд░реА рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо 2FA рдХреЛрдб рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЗ рдСрдЯреЛ-рдЬрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг wiki.mikrotik.com рдкреАрдкреАрдкреА-рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░ рд╣рдореЗрдВ рдкреАрдкреАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрдЯ-рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдЗрд╡реЗрдВрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди-рдЗрд╡реЗрдВрдЯ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдпреЗ рдЙрдкрд▓рдмреНрдз рд╡реЗрд░рд┐рдПрдмрд▓ рд╣реИрдВ рдЬреЛ рдИрд╡реЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╕реНрдерд╛рдиреАрдп-рдкрддрд╛, рд░рд┐рдореЛрдЯ-рдкрддрд╛, рдХреЙрд▓рд░-рдЖрдИрдбреА, рдХреЙрд▓-рдЖрдИрдбреА, рдЗрдВрдЯрд░рдлрд╝реЗрд╕". рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВред

рдкреАрдкреАрдкреА рдСрди-рдЕрдк рдХрдиреЗрдХреНрд╢рди рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб

#╨Ы╨╛╨│╨╕╤А╤Г╨╡╨╝ ╨┤╨╗╤П ╨╛╤В╨╗╨░╨┤╨║╨╕ ╨┐╨╛╨╗╤Г╤З╨╡╨╜╨╜╤Л╨╡ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡ 
:log info (

quot;local-address")
:log info (


quot;remote-address")
:log info (


quot;caller-id")
:log info (


quot;called-id")
:log info ([/int pptp-server get (


quot;interface") name])
#╨Ю╨▒╤К╤П╨▓╨╗╤П╨╡╨╝ ╤Б╨▓╨╛╨╕ ╨╗╨╛╨║╨░╨╗╤М╨╜╤Л╨╡ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡
:local listname "2fa_jailed"
:local viamodem false
:local modemport "usb2"
#╨╕╤Й╨╡╨╝ ╨░╨▓╤В╨╛╨╝╨░╤В╨╕╤З╨╡╤Б╨║╨╕ ╤Б╨╛╨╖╨┤╨░╨╜╨╜╤Г╤О ╨╖╨░╨┐╨╕╤Б╤М ╨▓ ╨░╨┤╤А╨╡╤Б-╨╗╨╕╤Б╤В╨╡ "2fa_jailed"
:local recnum1 [/ip fi address-list find address=(


quot;remote-address") list=$listname]

#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨┐╤Б╨╡╨▓╨┤╨╛╤Б╨╗╤Г╤З╨░╨╣╨╜╤Л╨╣ ╨║╨╛╨┤ ╤З╨╡╤А╨╡╨╖ random.org
#:local rnd1 [:pick ([/tool fetch url="https://www.random.org/strings/?num=1&len=7&digits=on&unique=on&format=plain&rnd=new" as-value output=user]->"data") 0 4] #╨╗╨╕╨▒╨╛ ╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨┐╤Б╨╡╨▓╨┤╨╛╤Б╨╗╤Г╤З╨░╨╣╨╜╤Л╨╣ ╨║╨╛╨┤ ╤З╨╡╤А╨╡╨╖ ╨╗╨╛╨║╨░╨╗╤М╨╜╤Л╨╣ ╨│╨╡╨╜╨╡╤А╨░╤В╨╛╤А
#:local rnd1 [pick ([/cert scep-server otp generate as-value minutes-valid=1]->"password") 0 4 ]

#╨Ш╤Й╨╡╨╝ ╨╕ ╨╛╨▒╨╜╨╛╨▓╨╗╤П╨╡╨╝ ╨║╨╛╨╝╨╝╨╡╨╜╤В ╨║ ╨╖╨░╨┐╨╕╤Б╨╕ ╨▓ ╨░╨┤╤А╨╡╤Б-╨╗╨╕╤Б╤В╨╡. ╨Т╨╜╨╛╤Б╨╕╨╝ ╨╕╤Б╨║╨╛╨╝╤Л╨╣ ╨║╨╛╨┤ ╨┤╨╗╤П ╨╛╤В╨╗╨░╨┤╨║╨╕
/ip fir address-list set $recnum1 comment=$rnd1
#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨╜╨╛╨╝╨╡╤А ╤В╨╡╨╗╨╡╤Д╨╛╨╜╨░ ╨║╤Г╨┤╨░ ╤Б╨╗╨░╤В╤М SMS
:local vphone [/ppp secret get [find name=$user] comment]

#╨У╨╛╤В╨╛╨▓╨╕╨╝ ╤В╨╡╨╗╨╛ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П. ╨Х╤Б╨╗╨╕ ╨║╨╗╨╕╨╡╨╜╤В ╨┐╨╛╨┤╨║╨╗╤О╤З╨░╨╡╤В╤Б╤П ╨║ VPN ╨┐╤А╤П╨╝╨╛ ╤Б ╤В╨╡╨╗╨╡╤Д╨╛╨╜╨░ ╨╡╨╝╤Г ╨┤╨╛╤Б╤В╨░╤В╨╛╤З╨╜╨╛
#╨▒╤Г╨┤╨╡╤В ╨┐╨╡╤А╨╡╨╣╤В╨╕ ╨┐╤А╤П╨╝╨╛ ╨┐╨╛ ╤Б╤Б╤Л╨╗╨║╨╡ ╨╕╨╖ ╨┐╨╛╨╗╤Г╤З╨╡╨╜╨╜╨╛╨│╨╛ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П
:local msgboby ("Your code: ".$comm1."n Or open link http://gw.local/otp/".$comm1."/")

# ╨Ю╤В╨┐╤А╨░╨▓╨╗╤П╨╡╨╝ SMS ╨┐╨╛ ╨▓╤Л╨▒╤А╨░╨╜╨╜╨╛╨╝╤Г ╨║╨░╨╜╨░╨╗╤Г - USB-╨╝╨╛╨┤╨╡╨╝ ╨╕╨╗╨╕ email-to-sms
if $viamodem do={
/tool sms send phone-number=$vphone message=$msgboby port=$modemport }
else={
/tool e-mail send server=a.b.c.d [email protected] [email protected] subject="@".$vphone body=$msgboby }

#╨У╨╡╨╜╨╡╤А╨╕╤А╤Г╨╡╨╝ Layer7 regexp
local vregexp ("otp\/".$comm1)
:local vcomment ("2fa_".(


quot;remote-address"))
/ip firewall layer7-protocol add name=(


quot;vcomment") comment=(


quot;remote-address") regexp=(


quot;vregexp")

#╨У╨╡╨╜╨╡╤А╨╕╤А╤Г╨╡╨╝ ╨┐╤А╨░╨▓╨╕╨╗╨╛ ╨┐╤А╨╛╨▓╨╡╤А╤П╤О╤Й╨╡╨╡ ╨┐╨╛ Layer7 ╤В╤А╨░╤Д╨╕╨║ ╨║╨╗╨╕╨╡╨╜╤В╨░ ╨▓ ╨┐╨╛╨╕╤Б╨║╨░╤Е ╨╜╤Г╨╢╨╜╨╛╨│╨╛ ╨║╨╛╨┤╨░
#╨╕ ╨╜╨╡╨▒╨╛╨╗╤М╤И╨╛╨╣ ╨╖╨░╤Й╨╕╤В╨╛╨╣ ╨╛╤В ╨▒╤А╤Г╤В╤Д╨╛╤А╤Б╨░ ╨║╨╛╨┤╨╛╨▓ ╤Б ╨┐╨╛╨╝╨╛╤Й╤М╤О dst-limit
/ip firewall filter add action=add-src-to-address-list address-list=2fa_approved address-list-timeout=none-dynamic chain=input_2fa dst-port=80,443,3128 layer7-protocol=(


quot;vcomment") protocol=tcp src-address=(


quot;remote-address") dst-limit=1,1,src-address/1m40s

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрд┐рдирд╛ рд╕реЛрдЪреЗ-рд╕рдордЭреЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ - рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдорд╛рдореВрд▓реА рдЯрд╛рдЗрдкреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХрд┐рд╕реА рд╕рдордЭрджрд╛рд░ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛рдВ рд╣реИред

рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ "рдСрди-рдбрд╛рдЙрди" рдИрд╡реЗрдВрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХрд╛рд░реНрдп рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реИред

рдкреАрдкреАрдкреА рдСрди-рдбрд╛рдЙрди рдХрдиреЗрдХреНрд╢рди рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб

:local vcomment ("2fa_".(

quot;remote-address"))
/ip firewall address-list remove [find address=(


quot;remote-address") list=2fa_approved] /ip firewall filter remove [find chain="input_2fa" src-address=(


quot;remote-address") ] /ip firewall layer7-protocol remove [find name=$vcomment]
рдлрд┐рд░ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдпрд╛ рдХреБрдЫ рдХреЛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдирдмреЙрдХреНрд╕
рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдХреЛрдб
/ppp secrets set [find name=Petrov] profile=2FA

рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ.

рдЬрдм рд╡реАрдкреАрдПрди рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдо рдХрд╛рд░реНрдб рд╡рд╛рд▓реЗ рдПрдВрдбреНрд░реЙрдЗрдб/рдЖрдИрдУрдПрд╕ рдлреЛрди/рдЯреИрдмрд▓реЗрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдПрдХ рдПрд╕рдПрдордПрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:

рдПрд╕рдПрдордПрд╕
рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реАрдзреЗ рдлреЛрди/рдЯреИрдмрд▓реЗрдЯ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ 2рдПрдлрдП рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╣реИред

рдпрджрд┐ рд╡реАрдкреАрдПрди рдХрдиреЗрдХреНрд╢рди рдкреАрд╕реА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдиреНрдпреВрдирддрдо рдкрд╛рд╕рд╡рд░реНрдб рдлреЙрд░реНрдо рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡реАрдкреАрдПрди рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ HTML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдлреЙрд░реНрдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреА рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рд╕рд╣реЗрдЬ рд╕рдХреЗ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╢реЙрд░реНрдЯрдХрдЯ рдмрдирд╛ рд╕рдХреЗред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:

рдореЗрдЬ рдкрд░ рд▓реЗрдмрд▓
рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реЙрд░реНрдЯрдХрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕рд░рд▓ рдХреЛрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлреЙрд░реНрдо рдЦреБрд▓рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдХреЛ рдЦреБрд▓реЗ рд╣реБрдП рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдЧрд╛:

рд╕реНрдХреНрд░реАрди рдлреЙрд░реНрдо
рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рд╕рдмрд╕реЗ рдЖрджрд┐рдо рд░реВрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдЪрд╛рд╣реЗрдВ рд╡реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

2fa_login_mini.html

<html>
<head> <title>SMS OTP login</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
<form name="login" action="location.href='http://gw.local/otp/'+document.getElementById(тАШtext').value"  method="post"
 <input id="text" type="text"/> 
<input type="button" value="Login" onclick="location.href='http://gw.local/otp/'+document.getElementById('text').value"/> 
</form>
</body>
</html>

рдпрджрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рд░рд╣рд╛, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рд▓реЛрдЧреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдкреАрдПрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЫрд╡рд┐ WebProxy Deny Redirect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд MikroTik рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЫрд╡рд┐ рдХреЛ "рд╣реЙрдЯрд╕реНрдкреЙрдЯ" рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реЗрдмрдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдЙрд╕ рдкрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдпреВрдЖрд░рдПрд▓ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдЕрдиреБрд░реЛрдз рдЬреЛ $20 рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ "рдЦрд┐рд▓реМрдирд╛" рдорд┐рдХрд░реЛрдЯрд┐рдХ рдЦрд░реАрджрдиреЗ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде $500 рдХрд╛ рд░рд╛рдЙрдЯрд░ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдРрд╕рд╛ рди рдХрд░реЗрдВред "рдПрдЪрдПрдкреА рд▓рд╛рдЗрдЯ" / "рдПрдЪрдПрдкреА рдорд┐рдиреА" (рд╣реЛрдо рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ) рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдХрдордЬреЛрд░ рд╕реАрдкреАрдпреВ (рд╕реНрдорд┐рдкреНрд╕) рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдмрд┐рдЬрдиреЗрд╕ рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рд▓реЛрдб рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

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

рдкреБрдирд╢реНрдЪ: рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЖрдкрдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдПрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреЛрдб рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛... рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ!

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рдЫреЛрдЯреЗ рдФрд░ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреЗ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

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