рд╕реБрд░рд┐рдХрд╛рддрд╛ рдЖрдИрдкреАрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ

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


рдпрд╣ рджреЗрдЦрдХрд░ рджреБрдЦ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдмреНрд░реЗ рдкрд░ рдШреБрд╕рдкреИрда рд░реЛрдХрдиреЗ рдпрд╛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдЗрддрдиреЗ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВред
рдпреБрд╡рд╛ рд▓рдбрд╝рд╛рдХреВ рдкрд╛рдареНрдпрдХреНрд░рдо: рд╣рдо рдПрдХ рд░рд╛рдЙрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рдирд┐рд░рдВрддрд░рддрд╛: IPS - 5 рдкреНрд▓рд╕рд╕ред
рдПрдХ рд╕реЗрд╡рд╛ IPS - 25 рдкреНрд▓рд╕ рдХреЗ рд░реВрдк рдореЗрдВ SNORT ред
OSSEC: рдмрд┐рдЧ рдмреНрд░рджрд░ рдЖрдкрдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ - 13 рдкреНрд▓рд╕ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреИрда рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рд▓реЗрдЦ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВред рдореИрдВ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдПрдХ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдпрдХрд░рдг рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рд╕реБрд░рд┐рдХреНрдд рдХрд╛ рд╡рд░реНрдгрди



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

Suricata - рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд IPS / IDS рдкреНрд░рдгрд╛рд▓реАред рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд, рдЬреЛ рд╕реНрдиреЙрд░реНрдЯ рдХреЗ рдЖрдИрдкреАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред Suricata рдФрд░ Snort рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ IDS рдореЛрдб рдореЗрдВ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдПрдХ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд IPS рд╕рд┐рд╕реНрдЯрдо, рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ, рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЬреЛ рдЖрдкрдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ 10Gbit рддрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ, Snort рдирд┐рдпрдо рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╕рд╣рд┐рддред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЖрдЗрдП рдЖрдЬ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ IPS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рд╕реБрд░рд┐рдХрдЯрд╛ рджреЛ IPS рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: NFQ рдФрд░ AF_PACKET

NFQ IPS рдореЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
1) рдкреИрдХреЗрдЬ iptables рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ
2) iptables рдирд┐рдпрдо рдЗрд╕реЗ NFQUEUE рдХрддрд╛рд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП iptables -I INPUT -p tcp -j NFQUEUE
3) NFQUEUE рдХрддрд╛рд░ рд╕реЗ, рдкреИрдХреЗрдЯ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрддрд░ рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Suricata рдХрд░рддрд╛ рд╣реИ
4) рд╕реБрд░рд┐рдХрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд┐рдпрдореЛрдВ (рдирд┐рдпрдореЛрдВ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рддреАрди рдореЗрдВ рд╕реЗ рдПрдХ рдлреИрд╕рд▓рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: NF_ACCEPT , NF_DROP рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк - NF_REPEAT ред
5) NF_REPEAT рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди iptables рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ iptables рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдХреЗрдЯреЛрдВ рдХреЗ рднрд╛рдЧреНрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рджреЗрддрд╛ рд╣реИред

рд╕рдВрд╕реНрдХрд░рдг 1.4 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, Suricata рд╢реВрдиреНрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ AF_PACKET рд╕рд┐рд╕реНрдЯрдо рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ IPS рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдЧреЗрдЯрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдкреИрдХреЗрдЯ DROP рдирд┐рдпрдо рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрд╕ рджреВрд╕рд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реВрдиреНрдп рдХреЙрдкреА рдХреЗ рдлрд╛рдпрджреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреИрдХреЗрдЯ рдХреА рдЧрддрд┐ рд╣реИ, рдЬреЛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЙрди рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╕реЗ рдЕрдкреАрд▓ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реЛрд╕рдХреЛрдореНрдирд╛рдбрдЬрд╝реЛрд░ рд╕реЗ рдЬреБрд░реНрдорд╛рдирд╛ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдЙрдмрдВрдЯреВ рдкрд░ рд╕реБрд░рд┐рдХрддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХреА рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ

рдЪрд▓реЛ рдПрдХ WEB рд╕рд░реНрд╡рд░ рдкрд░ NFQ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ


рдкреНрд░рд╛рд░рдВрднрд┐рдХ iptables рдирд┐рдпрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
#    ,    80-   <b></b>    0x1/0x1     iptables -t mangle -I PREROUTING -p tcp -m tcp --dport 80 -m mark ! --mark 0x1/0x1 -j NFQUEUE --queue-num 0 

рд╣рдо рдореЗрдВрдЧрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдкреИрдХреЗрдЬ рдкрде рдореЗрдВ рдкрд╣рд▓реА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рд╡рд┐рдХрд▓реНрдк --queue-bypass 2.6.38 рдХрд░реНрдиреЗрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдФрд░ рдЖрдкрдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд╕рднреА рдкреИрдХреЗрдЯ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╕реБрдирдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ NFQUEUE рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╛рдиреА рдпрджрд┐ рд╕реБрд░реАрдХрд╛рдЯрд╛ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдирд┐рдпрдореЛрдВ рдХреЗ рддрд╣рдд рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреИрдХреЗрдЬ рдРрд╕реЗ рдЪрд▓реЗрдВрдЧреЗ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред
рд╡рд┐рдХрд▓реНрдк --queue-num рдХрддрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
-рдо рдирд┐рд╢рд╛рди! --рдорд╛рд░реНрдХ 0x1 / 0x1 рдЙрди рд╕рднреА рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрд░рд┐рдЪрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ

IPS рдореЛрдб рдореЗрдВ рд╕реБрд░рд┐рдХрдЯрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЬреЛ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ):
 nfq: mode: repeat #      repeat-mark: 1 repeat-mask: 1 ... ... ... default-rule-path: /etc/suricata rule-files: - test.rules #     


рд╕реБрд░рд┐рдХрддрд╛ рдирд┐рдпрдо рдЬреЛ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рда рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ (/etc/suricata/test.rules):
 pass tcp any any -> any any (content: "TEST"; msg: "TEST was marked!"; nfq_set_mark:0x2/0xffffffff; sid:2455;) 

рд╕рд┐рдб рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕реБрд░рд┐рдХрд╛рддрд╛ рд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдирд┐рдпрдо рдХреЗ рд╕рд╛рде, "рдЦрд░рд╛рдм" рдкреИрдХреЗрдЯ рдХрд╛ рдЕрдВрдХрди рдФрд░ рдореБрдЦреМрдЯрд╛ рд╣реЛрдЧрд╛: 0x02 / 0xfe (0xff XOR 0x01 = 0xfe)

рд▓реЙрдиреНрдЪ рд╕реБрд░рд┐рдХрд╛рдЯрд╛:
 suricata -q 0 -c /etc/suricata/suricata.yaml 


рдЖрдЧреЗ рдХреЗ рдкреИрдХреЗрдЯ iptables рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ:
 #  ,     iptables -t mangle -A PREROUTING -p tcp -m tcp --dport 80 -m mark --mark 0x2/0xfe -j LOG --log-prefix "TEST packet detected" 

рджреВрд░рд╕реНрде рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж:
 curl http://221.141.200.189/TEST 

рдлреЙрд░реНрдо рдХреА рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ / var / log / syslog рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
 Sep 9 14:23:06 server kernel: [ 2897.581561] TEST packet detectedIN=eth0 OUT= MAC=c5:d5:08:8f:2d:be:ce:df:3e:af:8c:06:08:00 SRC=97.17.34.191 DST=221.141.200.189 LEN=133 TOS=0x00 PREC=0x00 TTL=64 ID=57685 DF PROTO=TCP SPT=33949 DPT=80 WINDOW=115 RES=0x00 ACK PSH URGP=0 MARK=0x3 


рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рд╕реБрд░рд┐рдХрдЯрд╛ рдХреЗрд╡рд▓ рдкреИрдХреЗрдЬ рдХреЛ рд▓реЗрдмрд▓ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
 #       iptables -t mangle -A PREROUTING -m mark --mark 0x2/0xfe -j CONNMARK --save-mark #  ,     iptables -t mangle -A PREROUTING -m connmark --mark 0x2/0xfe -j LOG --log-prefix "TEST connection detected" #  ,        iptables -t mangle -A PREROUTING -m connmark --mark 0x2/0xfe -j CONNMARK --restore-mark 


рдпрджрд┐ рдЖрдк RAW DNAT / SNAT рдЬреИрд╕реЗ iptables рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рдЬреЛрдбрд╝ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рддреЛ Suricata рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЧрдВрддрд╡реНрдп рдкрддреЛрдВ рдкрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ, рдХрдиреЗрдХреНрд╢рди рдЕрдЦрдВрдбрддрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рддрд░рд╣ рдХрдИ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░реЙрдХреНрд╕реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдордХреНрдЦреА рдкрд░ рдХрдиреЗрдХреНрд╢рди рдмрд╣рд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Suricata рдордХреНрдЦреА рдкрд░ рд╕рдВрдХреБрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
 pass tcp any any -> any any (content: "TEST"; replace:"SETS"; msg: "TEST was marked!"; nfq_set_mark:0x2/0xffffffff; sid:2455;) 

рдпрд╣ SETS рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдореЗрдВ TEST рдкрд╛рда рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╢рд░реНрдд рдкрд░ - рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдбреЗрдЯрд╛ рдореВрд▓ рдХреЗ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб:
 curl -v http://221.141.200.189/TEST 

рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ:
 97.17.34.191 - - [09/Sep/2013:14:51:04 +0400] "GET /SETS HTTP/1.1" 200 151 "-" "curl/7.26.0" 


рдЖрдЗрдП рдЧреЗрдЯрд╡реЗ рдкрд░ AF_PACKET рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред Suricata.yaml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
 af-packet: - interface: eth0 threads: 1 defrag: yes cluster-type: cluster_flow cluster-id: 98 copy-mode: ips copy-iface: eth1 buffer-size: 64535 use-mmap: yes - interface: eth1 threads: 1 cluster-id: 97 defrag: yes cluster-type: cluster_flow copy-mode: ips copy-iface: eth0 buffer-size: 64535 use-mmap: yes 

рдкреНрд░реЛрд╕реЗрд╕рд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ 3.6 рд╕реЗ рдЕрдзрд┐рдХ рдЧреБрдард▓реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧреАред
рджреЛрдиреЛрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ MTU рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЙрдиреНрдЪ рд╕реБрд░рд┐рдХрд╛рдЯрд╛:
 suricata -c /etc/suricata/suricata.yaml --af-packet 


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


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

рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕реБрд░рд┐рдХрддрд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХреА рдХреЗ рдмреНрд▓реЙрдЧ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

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


All Articles