рд╡реЗрдм рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрддрд┐рдерд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдмрдирд╛рдирд╛

рдЕрднрд┐рд╡рд╛рджрди, рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВред

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


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

рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ:


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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдореМрдЬреВрджрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЪреВрдВрдХрд┐ рдореЗрд╣рдорд╛рдиреЛрдВ рдХрд╛ рд╕реНрдерд╛рди рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдерд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЕрддрд┐рдерд┐ рд╡реАрдПрд▓рдПрдПрди рдмрдирд╛рдпрд╛, рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХреЛрдИ рднреА рдкреЛрд░реНрдЯ рдЕрддрд┐рдерд┐ рдкреЛрд░реНрдЯ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХреЛрдИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╣рд╛рдЗрдкрд░-рд╡реА рдкрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рджреЛ рд╡реАрдПрд▓рдПрдПрди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдЕрддрд┐рдерд┐ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯред OS рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ CentOS 6.2 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ - рдЬреЛ рдкрд╣рд▓реЗ рд╣рд╛рде рдореЗрдВ рдЖрдпрд╛ рдерд╛ред DHCP рдФрд░ рдирд╛рдо рдЙрд╕ рдкрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдереЗред рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП httpd рдЙрдард╛рдпрд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реИрд╕реЗ, рд╕рдВрд░рдХреНрд╖рдг рд╕рд╛рдорд╛рдиреНрдп рд╣реИред

рд╕рдорд╛рдпреЛрдЬрди


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛: рдПрдХ рд░рд╛рдЙрдЯрд░ (рд▓рд┐рдирдХреНрд╕) рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдбреАрдПрдирдПрдЯреА рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЖрдИрдкреА рдкрддреЗред рдФрд░ рдЬреЛ рд▓реЛрдЧ рд╕реВрдЪреА рдореЗрдВ рд╣реИрдВ - рд╡реЗ рдмрд╛рд╣рд░ SNAT рдмрдирд╛рддреЗ рд╣реИрдВред рдЧреЛрджреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рджреЛ рдкреИрдХреЗрдЬ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдкрдбрд╝реЗ - рдХрдВрд╕реАрд▓рд░ рдФрд░ ipsetред рдкрд╣рд▓рд╛ рд╕рдВрднрд╡ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рднреА рдореМрдЬреВрджрд╛ рдЖрдИрдкреА-рд╕рддреНрд░реЛрдВ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдиреБрд╡рд╛рдж рдирд┐рдпрдореЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░рд╛ IP рдкрддреЗ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ iptables рд╕рдордЭрддрд╛ рд╣реИред
рдпрд╣ r.local рдореЗрдВ рд░рдЦреА рдЧрдИ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдЧреВрдВрдЬ 1> / proc / sys / net / ipv4 / ip_forward
ipset -N рдЕрдЪреНрдЫрд╛ iphash
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -рдПрдХ PREROUTING -m рд╕реЗрдЯ! --рд╕реЗрдЯ рдЧреБрдб src -j DNAT - 192.168.88.1 рддрдХ
рдХреЙрдирдЯреНрд░реИрдХ -F


рдпрд╣рд╛рдБ 192.168.88.1 рдЖрдВрддрд░рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдкрддрд╛ рд╣реИред рдПрде 1 - рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред
рдпрд╛рдиреА рд╣рдо рд╕рднреА рдХреЗ рд▓рд┐рдП SNAT рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдЪреНрдЫреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рдпреИрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рд╕реНрдерд╛рдиреАрдп рд╡реЗрдм рд╕рд░реНрд╡рд░ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж, ipset "рдЕрдЪреНрдЫрд╛" рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрддреЗ рдЬреЛрдбрд╝рдХрд░ / рд╣рдЯрд╛рдХрд░, рдФрд░ рдмрд╛рдж рдореЗрдВ conntrack тАУF рд╣рдо рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП IP рдкрддреЛрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рдлреЗрд░рдмрджрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг


рдЕрдм рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рд╕рдВрднрд╡ рдерд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
  1. Httpd рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдмрдирд╛рдПрдВ рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдВрдЧреЗред рдпрджрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рд╣реИ - рдЕрдиреБрд░реЛрдзрдХрд░реНрддрд╛ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ ipset "рдЕрдЪреНрдЫрд╛" рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, httpd рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ 404 рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╛рдиреА рдЗрди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд, рдХрд┐рд╕реА рднреА HTTP рдкрддреЗ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдкрддрд╛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрда рдХреЛ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
  2. рд╣рдо рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╕реАрдорд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдЪрд┐рд╡ рдХреА рдкрд╣реБрдВрдЪ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХреИрд╕реЗ - рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдмрдирд╛рдП - рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЬреЛ рджрд┐рди рдХреЗ рдЕрдВрдд рддрдХ рд╕рднреА рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИ, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рддрдХ (рдШрдВрдЯреЗ рдХреА рд╕реАрдорд╛ рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 14:00, 17:00) рдФрд░ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп (рдШрдВрдЯреЗ рдХреА рд╕реАрдорд╛ рдкрд░) рдХреЗ рдкрддреЗред
  3. рд╣рдо рдПрдХ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ рдФрд░, рдпрджрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рд╣реИ, рддреЛ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░реЛрдВ рдХреЛ рднреА рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдХреИрд╡рд┐рдПрдЯ рд╣реИ - рдЕрдкрд╛рдЪреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрддреЗ рдХреА рд╕реВрдЪреА рдФрд░ рд░реАрд╕реЗрдЯ рд╕рддреНрд░реЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░рдпреБрд╕рд░ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ - рдпрд╛ рддреЛ sudo рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯ рдХрд░рдирд╛ (рдЬреЛ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордп рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ), рдпрд╛ рдПрдХ рдкрд╛рдЗрдк рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рдПрдХ рддрд░рдл рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрдкрд░рдпреБрдЬрд░ рдХреА рдУрд░ рд╕реЗ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рддрд░рдл, php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╡рд╢реНрдпрдХ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрдорд╛рдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдпрд╣ рддрд░реАрдХрд╛ рдЪреБрдирд╛ред рдЯрд╛рдЗрдк рдкрд╛рдЗрдк рдХреА рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, mknod pipename p рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ


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

рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ



рдкрд╛рд╕рд╡рд░реНрдб рдЬрдирд░реЗрдЯрд░ (index.php)

 <HTML> <FORM method="get" action=gen.php> <input name="PwdType" type="radio" value="Common" checked>Common Password</INPUT> <input name="PwdType" type="radio" value="CommonTill">Common Password till <select name="Till"> <option value=__8">8:00</option> ... <option value=__23">23:00</option> </select> </INPUT> <input name="PwdType" type="radio" value="Personal">Personal Password</INPUT> <select name="PersonalTill"> <option value=__8">8:00</option> ... <option value=__23">23:00</option> </SELECT> Client ID:<input name="ClientID" value=0> <INPUT type=submit value="Generate password"> </FORM> </HTML> 

рдкрд╛рд╕рд╡рд░реНрдб рдЬрдирд░реЗрдЯрд░ (gen.php)

 <? $Secret="123"; //Common secret $d=date("Ymd"); //Current Date $symbols=array(0,4,5,8,1,30); //Symbols in md5 hash for password. Numbers must be in 0..31 $ipnet="192.168.88."; if ( $PwdType == "Common" ) { $str=$d."-".$Secret; $r=md5($str); $res="*"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; }; if ( $PwdType == "CommonTill" ) { $Till=utf8_decode($Till); $Till=substr($Till,1,strlen($Till)-2); $str=$d."-".$Till."-".$Secret; $r=md5($str); $res="#".$Till."-"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; }; if ( $PwdType == "Personal" ) { $ip=$ipnet.$ClientID; $PersonalTill=utf8_decode($PersonalTill); $PersonalTill=substr($PersonalTill,1,strlen($PersonalTill)-2); $str=$d."-".$PersonalTill."-".$ip."-".$Secret; $r=md5($str); $res="$".$PersonalTill."-"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; }; ?> <H2>Password="<?print $res;?>"</H2> <H1 align=center><a href="index.php">Return</a></H1> 

рдкрд╛рд╕рд╡рд░реНрдб рдкрд░реАрдХреНрд╖рдХ (index.php)

 <HTML> <!--0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF--> <? $addr="192.168.88.1"; $a=getenv("REMOTE_ADDR"); $s=getenv("SERVER_NAME"); $ipnet="192.168.88."; $p=strpos($a,$ipnet); if ($p === false) { print "<B>Internal error: <I>Wrong network (Network=$ipnet, Address=$a)</I></B> \n"; exit; }; if ($p > 0 ) { print "<B>Internal error: <I>Wrong network (Position=$p)</I></B> \n"; exit; }; ?> Please, call XXXX to get password. Your ID is <STRONG><? print substr($a,strlen($ipnet));?></STRONG> <FORM action=http://<?print $addr;?>/do.php method=post> <CENTER> Password <INPUT name=pwd type=password> <INPUT type=submit value="Activate Internet"> </CENTER> </FORM> </HTML> 

рдкрд╛рд╕рд╡рд░реНрдб рдкрд░реАрдХреНрд╖рдХ (do.php)

 <? $Secret="123"; //Common secret $d=date("Ymd"); //Current Date $symbols=array(0,4,5,8,1,30); //Symbols in md5 hash for password. Numbers must be in 0..31 $ipnet="192.168.88."; $ip=getenv("REMOTE_ADDR"); $pwd=$_POST["pwd"]; $fc=substr($pwd,0,1); //first charter is code of password type $PipeFile="./pipe"; if ($pwd == "") { print "<H1 align=center>Wrong empty password. <a href='/'>return</a></H1>"; exit; }; if ( $fc == "*" ) { $str=$d."-".$Secret; $r=md5($str); $res="*"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; $Till=25; }; if ( $fc == "#" ) { $p=strpos($pwd,"-"); $Till=substr($pwd,1,$p-1); $str=$d."-".$Till."-".$Secret; $r=md5($str); $res="#".$Till."-"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; }; if ( $fc == "$" ) { $p=strpos($pwd,"-"); $PersonalTill=substr($pwd,1,$p-1); $str=$d."-".$PersonalTill."-".$ip."-".$Secret; $r=md5($str); $res="$".$PersonalTill."-"; foreach ($symbols as &$i) {$res=$res.substr($r,$i,1);}; $Till=$PersonalTill; }; if ($pwd != $res) { print "<H1 align=center>Wrong password. <a href='/'>return</a></H1>"; exit; }; file_put_contents ( $PipeFile, substr($ip,strlen($ipnet))." $Till\n", FILE_APPEND); ?> <H1 align=center>Access to Internte granted</H1> 


рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдкрд╛рдЗрдк рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреА рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреА рд╣реИред

 #!/bin/bash PipeFile="/var/www/html/pipe" LogFile="/var/log/script.log" ErrFile="/var/log/script.err" DebugFile="/var/log/script.debug" ipnet="192.168.88." ipset_prog="/usr/sbin/ipset" ipset_setname="good" ctr_prog="/usr/sbin/conntrack" function debug() { local d=`date` echo "$d Debuging started" >>$DebugFile for i in `seq 1 254`; do if [ ${b[$i]} != "0" ]; then echo "b[$i] = ${b[$i]}" >>$DebugFile fi done; echo "==================== Debuging finised =================" >>$DebugFile } function initfunc() { #Init for i in `seq 1 254`; do b[$i]="0" done; ( d=`date` echo "$d Init function called" $ipset_prog -F $ipsetname $ctr_prog -F ) &>>$LogFile }; function update() { ( local d1=`date` local d=`date +%H` echo "$d1 Update function called" for i in `seq 1 254`; do if [ ${b[$i]} -gt "0" ] && [ ${b[$i]} -le "$d" ]; then b[$i]=0 ip2="$ipnet$i" echo "Deleting address $ip2" &>>$LogFile $ipset_prog -D $ipset_setname $ip2 &>>$LogFile $ctr_prog -F fi done ) &>>$LogFile } #update ################# Start program ################# initfunc while true; do while read line; do a=( $line ) ip=${a[0]} tm=${a[1]} if [ "$ip" == "reload" ]; then initfunc continue fi if [ "$ip" == "update" ]; then update continue fi if [ "$ip" == "debug" ]; then debug continue fi b[$ip]=$tm ip2="$ipnet$ip" ( d=`date` echo "$d Added address $ip2 with time:$tm" $ipset_prog -A $ipset_setname $ip2 &>>$LogFile $ctr_prog -F ) &>>$LogFile update done <$PipeFile done 

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


All Articles