рд╣рдо рд╕рднреА рдУрдПрд╕ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдЯреЙрд░ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ



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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреВрд▓ рдХреЛ UI рдХреЗ рд╕рд╛рде рдХрдИ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреБрдкреНрдд рд░рдЦрдиреЗ рдФрд░ рдХрд╛рдо рдХреЗ рдХрд┐рд╕реА рднреА рдЪрд░рдг рдореЗрдВ "рд╕реБрдирдиреЗ" рдЪреИрдирд▓реЛрдВ рдкрд░ рд▓реАрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

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

рдПрдХ рдЙрдкрдХрд░рдг рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

  1. рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рднреА рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдЕрдВрддрд░рд╛рд▓реАрдп рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдХреЛ рдорд╛рд╕реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордзреНрдпрд╡рд░реНрддреА рдиреЛрдбреНрд╕ (рдЕрдзрд┐рдорд╛рдирддрдГ рдХрдИ) рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ
  2. рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдирд╛рдо рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХрд░реЗрдВ рдФрд░ UI рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ

рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдШрдЯрдХ:

  • рдЯреЛ
  • iptables
  • python3
  • systemd

"рд▓рд┐рдирдХреНрд╕" рдирд╛рдордХ рд╢реЗрд▓ рдореЗрдВ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдШрдЯрдХ # 1: рддреЛрд░


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

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

/etc/tor/torrc ... TransPort 9040 #           python ControlPort 9051 ... 

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

 /etc/tor/torrc ... AutomapHostsOnResolve 1 DNSPort 53 ... 

рдЗрд╕ рдкрд░, Tor рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реВрдкрдмреИрдХ рдХреЗ рднреАрддрд░ рдЦреБрд▓рд╛ рд╣реИред

рдШрдЯрдХ # 2: Iptables


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

 #  tcp iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $TRANS_PORT #   udp (dns only) iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #       iptables -A OUTPUT -j REJECT ip6tables -A OUTPUT -j REJECT 

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

рдШрдЯрдХ # 3: рдЕрдЬрдЧрд░ + рдбреЗрд╕реНрдХрдЯреЙрдк рдпреВрдЖрдИрдЖрд░ рдпреВрдЖрдИ


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

  1. рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
  2. рдХрд┐рд╕реА рднреА рд╕рдордп рдЯреЙрд░ рдХреЗ рднреАрддрд░ рдЕрдкрдиреА рдкрд╣рдЪрд╛рди рдмрджрд▓реЗрдВ
  3. рдирд┐рдЧрд░рд╛рдиреА iptables рдирд┐рдпрдо рдЕрдЦрдВрдбрддрд╛ рдФрд░ рдкреБрдирд░реНрд▓реЗрдЦрди рдЕрдЧрд░ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рд╣реИ
  4. рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдкрд╣рдЪрд╛рди (IP) рдЯреНрд░реИрдХ рдХрд░рдирд╛
  5. рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рджреЛ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛

рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЕрдкрдиреЗ рдЖрдк рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧреА, рдФрд░ рдмрд╛рдж рдореЗрдВ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЯреЛ рдХреЛ iptables рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдмрд╛рд╣рд░реА IP рдкрддрд╛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Tor - 9051 рд╕реЗрд╡рд╛ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ IP рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЦреБрд▓рд╛ рдерд╛:

 with Controller.from_port(port = 9051) as controller: controller.authenticate() controller.signal(Signal.NEWNYM) 

рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдЗрд╕реЗ рдШреБрдЯрдиреЗ рдкрд░ рдХрд░рддреЗ рд╣реИрдВ) рд╕рдордп-рд╕рдордп рдкрд░ iptables рдирд┐рдпрдо рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА SHA256 рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:

 def rulesOk(self): RULES_CHECKSUM_CMD = "{ iptables-save && ip6tables-save; } | sed s/\-\-uid\-owner\\\\s[0-9]\\\\+\\\\s//g | grep -viE '^#' | grep -viE '^\:' | sort | uniq | sha256sum | cut -d' ' -f 1" checkSum = getoutput(RULES_CHECKSUM_CMD).strip() alright = checkSum == Strings.RULES_CHECKSUM_CORRECT_HASH if not alright: rules = getoutput('iptables-save && ip6tables-save') self.lastSnapshotFileName = "/tmp/broken-rules-%s.log" % time.strftime("%d-%m-%Y_%I-%M-%S") open(self.lastSnapshotFileName, "w").write(rules) return False else: return True 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЪреЗрдХрд╕рдо рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрддрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЖрдк iptables рдирд┐рдпрдореЛрдВ рдХреЛ /tmp/broken-rules-%d-%m-%Y_%I-%M-%S.log рдореЗрдВ рдЖрдЧреЗ рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐
 rulesOk() == False 
рдпрд╣ iptables рдирд┐рдпрдо рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред

рд╡рд░реНрддрдорд╛рди рдЖрдИрдкреА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреБрдЫ рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрди рдЬреЛ рдЖрдИрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рд╕реЗ рд╣реЛрдЧрд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ident.me ред

рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЖрдИрдкреА рдХреЗ рдирд┐рдпрдореЛрдВ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DE UI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдЪрд┐рддреНрд░рдордп рд╡рд╛рддрд╛рд╡рд░рдг рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдбреАрдорди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдпреВрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░, рдкрд╛рдпрдерди рд╕реЗ рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдРрд╕реЗ рдмреИрд╢ рдХреЛрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ:

 # root UI eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)" export DISPLAY=:0 for USR in `ls /home && echo root` do # ubuntu gnome + root UI export XAUTHORITY=/home/$USR/.Xauthority notify-send -u {0} '{1}' '{2}' # ubuntu parallels for UID in `ls /run/user/` do su $USR -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus notify-send -u {0} '{1}' '{2}'" done done 

200-рд░реЗрдЦрд╛ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдореЗрдВ рдпрд╣ рд╕рдм рдорд┐рд▓рд╛рдХрд░, рд╣рдореЗрдВ рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реВрдЪрдирд╛ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдХрд┐ рд╣рдорд╛рд░реА рдкрд╣рдЪрд╛рди рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд╣реИ:

рдЫрд╡рд┐

рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдХрд┐ Iptables рдирд┐рдпрдореЛрдВ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбрдВрдк рдбрдВрдк рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЫрд╡рд┐

рдШрдЯрдХ # 4: systemd


рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд╛рд░ рдХрд╛ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдорд╛рд░реА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдСрдЯреЛрд░рди рдФрд░ рд╕реЗрд╡рд╛рдПрдВ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддреА рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрдИ рдорд╛рдирдХ рдбреЗрдорди рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд╣реИрдВ: systemd, sysV, initред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдХрд╛рд░рдг рд╕рд┐рд╕реНрдЯрдордб рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдкрд╛рдЗрдерди рд▓рд┐рдкрд┐ рдХреЛ "рдЯреЛрд░реЛрдХреНрд╕реА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ /usr/bin/ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдСрдЯреЛрд░рди рдФрд░ рдмрд╛рдж рдореЗрдВ рдбреЗрдореЙрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде рдирд┐рдЧрд░рд╛рдиреА рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧреА:

 [Unit] Description=Toroxy After=network.target StartLimitIntervalSec=0 [Service] Type=simple Restart=always RestartSec=1 User=root # service toroxy start ExecStart=/usr/bin/toroxy service # service toroxy stop ExecStop=/usr/bin/toroxy stop # service toroxy reload ExecReload=/usr/bin/toroxy switch [Install] #   init 3,       UI     Tor WantedBy=multi-user.target 

рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ "рдФрджреНрдпреЛрдЧрд┐рдХ" рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ iptables рдирд┐рдпрдореЛрдВ рдХрд╛ рд╕реНрд╡рдд: рдкреНрд░рд╛рд░рдВрдн рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, iptables-persistent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╕рдордп iptables рдирд┐рдпрдо рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:

 iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6 netfilter-persistent start && netfilter-persistent save 

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХрд╛рдлреА рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдирд┐рд░рдВрддрд░ рдЧреБрдордирд╛рдореА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рдЯреЛрд░реЛрдХреНрд╕реА рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi472606/


All Articles