ICW рдкреЛрд░реНрдЯ OpenWRT рдореЗрдВ рджрд╕реНрддрдХ рджреЗрддрд╛ рд╣реИ

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

рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЪрдврд╝рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдореЗрдВ iptables рд╕реЗ рд▓реЙрдЧ рдпрд╛ ULOG рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪрд╛ред рдореИрдВ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рд╕реНрдкреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк ULOG рдИрд╡реЗрдВрдЯреНрд╕ рдХреЛ iptables рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди) рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ ulogd рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдкреЛрд░реНрдЯ рджрд╕реНрддрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЪрдпрди рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЕрдХреНрд╕рд░ ipsets рдХреА рдЧрддрд┐ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рддрд╛рдХрд┐ "рд╕рдорд╛рди" рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде iptables рдХреЛ рдвреЗрд░ рди рдХрд░реВрдВред рдФрд░ рдЪрд╛рдмреА "--рдореИрдЪ-рд╕реЗрдЯ" рдФрд░ "- рдПрдбрдб-рд╕реЗрдЯ" рдЙрди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдЧреЗ рдХреА рдЦреЛрдЬреЛрдВ рдиреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, ipsets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рднреА рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдФрд░ iptables рдХреЗ рдмрд╛рд╣рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рддреЛ, рд╢реБрджреНрдз рд░реВрдк рд╕реЗ iptables рдФрд░ ipset рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзрд╛рд░рдгрд╛ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, "рдиреЙрдХ" рдХрд╛ рд╕рдВрдпреЛрдЬрди рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ - 70 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ 2 ICMP рдкреИрдХреЗрдЯ рдФрд░ рдЙрдирдХреЗ рдкреАрдЫреЗ 2 ICMP рдкреИрдХреЗрдЯ рдЖрдХрд╛рд░ рдореЗрдВ 100 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдкрдВрдХреНрддрд┐ рдореЗрдВред рдареАрдХ рд╣реИ, ICMP рд▓рдХрдбрд╝реА рдХреА рдЫрдд (28 рдмрд╛рдЗрдЯреНрд╕) рдХреЗ рд╣реЗрдбрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ ред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реА "рдиреЙрдХ" рдХреЗ рдмрд╛рдж, рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд▓рд┐рдП рдУрдкрди рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ 1194 / рдЯреАрд╕реАрдкреА рдкрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ "рдиреЙрдХ" рдмрдирд╛рдП рдЧрдП рдереЗред OpenWRT рдкрд░ OpenVPN рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХреА рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред

Ipsets рддреИрдпрд╛рд░ рдХрд░рдирд╛


рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ OpenWRT рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ipsets рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ Attitude рдПрдбрдЬрд╕реНрдЯрдореЗрдВрдЯ рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рдВрд╢реЛрдзрди r36349 рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ ( рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдХрд┐ рдбреЗрдЯрд╛рд╕реЗрдЯ ipsets рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдерд╛ )ред

рд▓реЗрдХрд┐рди ipsets рдХреЛ рдкреЗрди рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдмреВрдЯ рд╕рдордп рдкрд░ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: /etc/rc.local рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВред
ipset create knock1 hash:ip ipset create knock2 hash:ip ipset create knock3 hash:ip ipset create AllowedVPN hash:ip 

рдпрджрд┐ fw3 ipsets рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (fw3 рд╕реНрд╡рдпрдВ OpenWRT рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЯреВрд▓ рд╣реИ, рддреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХреА рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рддреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ / etc / config / рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдирд┐рдореНрди рдЖрдЗрдЯрдо рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ:
 config ipset option enabled 1 option name knock1 option storage hash option match src_ip config ipset option enabled 1 option name knock2 option storage hash option match src_ip config ipset option enabled 1 option name knock3 option storage hash option match src_ip config ipset option enabled 1 option name AllowedVPN option storage hash option match src_ip 


ICMP рдкреИрдХреЗрдЯ рдЕрдиреБрдХреНрд░рдордг рддрд░реНрдХ


рдкрд╣рд▓реА рджрд╕реНрддрдХ рдкрдХрдбрд╝реЛ

 icmptype 8 length 98 ! match-set knock1 src ! match-set knock2 src ! match-set knock3 src ! match-set AllowedVPN src add-set knock1 src 

рдЖрдХрд╛рд░ рдХреЗ 98 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ ICMP рдкреИрдХреЗрдЯ рдХрд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкрддрд╛ ipset knock1 рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рдЕрдиреНрдп ipsets рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рд╣рдо рджреВрд╕рд░реА рджрд╕реНрддрдХ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ

 icmptype 8 length 98 match-set knock1 src ! match-set knock2 src ! match-set knock3 src ! match-set AllowedVPN src add-set knock2 src 
98 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдирд┐рд╡рд░реНрддрдорд╛рди ICMP рдкреИрдХреЗрдЯ рдкрддрд╛ ipset knock2 рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ipset knock1 рдореЗрдВ рд╣реИ рдФрд░ рдмрд╛рдХреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рддреАрд╕рд░реА рджрд╕реНрддрдХ рдкрдХрдбрд╝реЛ

 icmptype 8 length 128 match-set knock1 src match-set knock2 src ! match-set knock3 src ! match-set AllowedVPN src add-set knock3 src 
128 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ ICMP рдкреИрдХреЗрдЯ рдкрддрд╛ ipset knock3 рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ ipset knock1 рдФрд░ knock2 рдореЗрдВ рднреА рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди AllowedVPN рдореЗрдВ рдирд╣реАрдВред

рд╣рдо рдЪреМрдереА рджрд╕реНрддрдХ рджреЗрддреЗ рд╣реИрдВ

 icmptype 8 length 128 match-set knock1 src match-set knock2 src match-set knock3 src ! match-set AllowedVPN src add-set AllowedVPN src 

128-рдмрд╛рдЗрдЯ ICMP рдкреИрдХреЗрдЯ рдХрд╛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдкрддрд╛ ipset AllowedVPN рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ ipset knock1, knock2 рдФрд░ knock3 рдкрд░ рднреА рдореМрдЬреВрдж рд╣реИред
рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдХрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, iptables рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред рдЕрдиреНрдпрдерд╛, рдкрд╣рд▓реЗ "рдиреЙрдХ" рдХреЛ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рддреБрд░рдВрдд рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕ рддрд░рд╣ рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рддреБрд░рдВрдд рддреАрд╕рд░реЗ "рджрд╕реНрддрдХ" рдХреЛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдиреНрдп ipsets рдореЗрдВ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рдиреЙрдХ" рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдЗрдирдкреБрдЯ_рдмреНрд░рд▓ рдЪреЗрди рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП iptables рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП OpenWRT рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╢реНрд░реГрдВрдЦрд▓рд╛) /etc/firewall.user рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
 iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set AllowedVPN src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock3 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock2 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock1 src 

рд╕рдорд╛рди рдирд┐рдпрдо, рд▓реЗрдХрд┐рди рд╕рд┐рд╕рд▓реЙрдЧ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде
 iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set ! --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK4 O) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set AllowedVPN src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK3 O) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock3 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK2 O) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock2 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK1 O) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set ! --match-set AllowedVPN src -j SET --add-set knock1 src 


рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдо


рдпрд╣ рд╡рд╣ рдирд┐рдпрдо рд╣реИ рдЬреЛ 1194 / tcp рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдИрдкреА рдкрддрд╛ рдЬрд┐рд╕рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ ipset AllowedVPN рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
 config 'rule' option enabled 1 option 'target' 'ACCEPT' option 'name' 'VPN' option 'src' 'wan' option 'proto' 'tcp' option 'dest_port' '1194' option 'extra' '-m set --match-set AllowedVPN src' 

рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ /etc/firewall.user рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
 iptables -A input_rule -p tcp --dport 1194 -m set --match-set AllowedVPN src -j ACCEPT 

рдмрдВрджрд░рдЧрд╛рд╣ рдХреА рджрд╕реНрддрдХ


рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдкреЛрд░реНрдЯ рджрд╕реНрддрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд┐рдВрдЧ readyshare.mydomain.ua -l 70 -n 2 рдФрд░& рдкрд┐рдВрдЧ readyshare.mydomain.ua -l 100 -n 2



рдкрд╣реБрдБрдЪ рдмрдВрдж рдХрд░реЗрдВ


рдореИрдВ рддрд░реНрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИ, рдмрд╕ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рддрд░реНрдХ рдЙрд▓рдЯрд╛ рд╣реИ рдФрд░ ipsets рд╕реЗ рд╣рдЯрд╛рдиреЗ рд╣реЛрддрд╛ рд╣реИред рдЦреИрд░, рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЕрдЧрд░ рдЖрдИрдкреА рдкрддрд╛ ipset-e AllowedVPN рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред
"рдиреЙрдХ" рдХрд╛ рдЕрдиреБрдХреНрд░рдо рдПрдХреНрд╕реЗрд╕ рдЦреЛрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕рдорд╛рди рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд iptables рдХрдорд╛рдВрдб рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢реНрд░рдВрдЦрд▓рд╛_ рдЗрдирдкреБрдЯ_рд░реЗрд▓, рдлрд╝рд╛рдЗрд▓ /etc/firewall.user рддрдХ рд╣реЛрддреА рд╣реИ
 iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set AllowedVPN src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock3 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock2 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock1 src 

рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд┐рдпрдо, рд▓реЗрдХрд┐рди рд╕рд┐рд╕рд▓реЙрдЧ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде
 iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK4 C) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set ! --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set AllowedVPN src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK3 C) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 128 -m limit --limit 10/s -m set ! --match-set knock1 src -m set ! --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock3 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK2 C) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set ! --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock2 src iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j LOG --log-prefix "(KNOCK1 C) " iptables -A input_rule -p icmp -m icmp --icmp-type echo-request -m length --length 98 -m limit --limit 10/s -m set --match-set knock1 src -m set --match-set knock2 src -m set --match-set knock3 src -m set --match-set AllowedVPN src -j SET --del-set knock1 src 


рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

QC рд╕рд╣ рд▓реИрдм рд╕реЗ рдХреНрд░рд┐рд╕ рдХреВрдкрд░ рдХреЗ ipsets рдкрд░ рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░рд╕реНрддреБрддрд┐ , рдЬрд┐рд╕рд╕реЗ рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

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


All Articles