рд╣рдо рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдорд┐рдХрд░реЛрдЯрд┐рдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рд▓реЙрдЧ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ

рд╢реБрдн рджреЛрдкрд╣рд░

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

рдЙрджреНрджреЗрд╢реНрдп: рд▓рдХреНрд╖реНрдп рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ "рдЪрдмрд╛рдпрд╛" рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд▓реЙрдЧ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рд╛рдзрди: rsyslogd v8 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдирдпрд╛ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд╢рд╛рдпрдж рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ v7 рдкрд░ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рдореЗрдВ рдПрдХ рдбреАрдмреАрдПрдордПрд╕ рдХреА рднреА рдЬрд░реВрд░рдд рд╣реИ, рдореИрдВрдиреЗ рдорд╛рд░реАрджрдм рдХреЛ рдЪреБрдирд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реГрджреНрдзрд┐ рд▓реЙрдЧ рдХрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЖрдХрд╛рд░ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 30-40 рдирд┐рдпрдо рд▓реЙрдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдкреНрд░рддрд┐ рджрд┐рди рд▓рдЧрднрдЧ 1200 рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд╣рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╣реАрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдмрдврд╝рдХрд░ 3.8 рдЬреАрдмреА рд╣реЛ рдЧрдпрд╛ред

рдпрд╛рдВрддреНрд░рд┐рдХреА: рд░реВрдЯрд░ рдпреВрдбреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЙрдЧ рднреЗрдЬрддрд╛ рд╣реИред рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, rsyslog рд╕рд░реНрд╡рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рддрд╛рд░ рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ, рдПрдХ SQL рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ DBMS рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рд╕рдореНрдорд┐рд▓рди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП DBMS, рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдлрд╛рдИ рдФрд░ рдкреГрдердХреНрдХрд░рдг рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ rsyslog рдореЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред

RSYSLOG рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдВрдкрд╛рджрди /etc/rsyslog.conf
рд╡рд╣рд╛рдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

module(load="ommysql") module(load="imudp") input(type="imudp" port="514") 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 514 рдпреВрдбреАрдкреА рдкреЛрд░реНрдЯ рдЦреЛрд▓рддреЗ рд╣реИрдВред

рдорд┐рдХрд░реЛрдЯрд┐рдХ рдХреА рд▓реЙрдЧ рд▓рд╛рдЗрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 20180927155341 BLOCKSMKNETS forward: in:ether6 - LocalTORF out:VLAN55 - RT_INET, src-mac 00:15:17:31:b8:d7, proto TCP (SYN), 192.168.0.234:2457->192.168.6.14:65535, len 60 

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

 20180927155341 ether6 VLAN5 192.168.0.234 2457 192.168.6.14 65535 00:15:17:31:b8:d7 TCP SYN forward BLOCKSMKNETS 60 

рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ rsyslog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреА рд░реЗрдЦрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред рд░реВрдкрд▓реЙрдЧ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ POSIX ERE / BRE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд▓реБрдХрд╣реЗрдб рдпрд╛ рд▓реБрдХрд╣реИрдВрдб рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

 20180927155341 in:ether6 out:VLAN5 192.168.0.234:2457 192.168.6.14:65535 00:15:17:31:b8:d7 TCP (SYN) forward BLOCKSMKNETS 60 

рдХреИрд╕реЗ rsyslog рдирд┐рдпрдорд┐рдд рдкрдХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╣реИред

рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ, Mikrotik /etc/rsyslog.d/20-remote.conf рд╕реЗ рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

 $template tpl_traflog,"insert into traflog.traffic (datetime, inif, outif, src, dst, smac, proto, flags, chain, logpref, len) values ('%timereported:::date-mysql%', '%msg:R,ERE,0,DFLT,0:in:[a-zA-Z]+[0-9]+|in:<[a-zA-Z]+-[a-zA-Z]+>--end%', '%msg:R,ERE,0,BLANK,0:out:[a-zA-Z]+[0-9]+|out:<[a-zA-Z]+-[a-zA-Z]+>--end%', '%msg:R,ERE,0,DFLT,0:([0-9]+\.){3}[0-9]+[:]?([0-9]+)?--end%', '%msg:R,ERE,0,DFLT,1:([0-9]+\.){3}[0-9]+[:]?([0-9]+)?--end%', '%msg:R,ERE,0,BLANK:([0-f]+:){5}[0-f]+--end%', '%msg:R,ERE,0,BLANK:\b[AX]{3,4}\b--end%', '%msg:R,ERE,0,BLANK:\([AZ]+\)|\(([AZ]+\,){1,3}[AZ]+\)--end%', '%msg:R,ERE,0,DFLT:[ax]+--end%', '%msg:F,32:2%', '%msg:R,ERE,0,DFLT:[0-9]+$--end%' )",SQL if ($fromhost-ip == '192.168.0.230') and ($syslogtag contains "firewall") then {action(type="ommysql" server="localhost" serverport="3306" db="traflog" uid="rsyslogger" pwd="rsyslogger" template="tpl_traflog") stop} 

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ) рдХрд╛ рд╡рд░реНрдгрди DBMS рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред
рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рд╡рд╣ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рдд, рдбреАрдмреАрдПрдордПрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбред
рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: рдпрджрд┐ рд▓реЙрдЧ рд╕реНрд░реЛрдд = 192.168.0.230 ( if ($fromhost-ip == '192.168.0.230') ) рдФрд░ рдпрджрд┐ msg рд▓рд╛рдЗрди рдореЗрдВ "рдлрд╝рд╛рдпрд░рд╡реЙрд▓" (рдФрд░ ($ sysloggag рдореЗрдВ "рдлрд╝рд╛рдпрд░рд╡реЙрд▓") рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде ommysql ( then {action(type="ommysql" server="localhost" serverport="3306" db="traflog" uid="rsyslogger" pwd="..." ) рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ tpl_traflog ( template="tpl_traflog") ), рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд▓рд╛рдЗрди рдХреА рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ stop} ( stop} )ред

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

 $template tpl_traflog_test,"%timereported:::date-mysql% %msg:R,ERE,0,DFLT,0:in:[a-zA-Z]+[0-9]+|in:<[a-zA-Z]+-[a-zA-Z]+>--end% %msg:R,ERE,0,BLANK,0:out:[a-zA-Z]+[0-9]+|out:<[a-zA-Z]+-[a-zA-Z]+>--end% %msg:R,ERE,0,DFLT,0:([0-9]+\.){3}[0-9]+[:]?([0-9]+)?--end% %msg:R,ERE,0,DFLT,1:([0-9]+\.){3}[0-9]+[:]?([0-9]+)?--end% %msg:R,ERE,0,BLANK:([0-f]+:){5}[0-f]+--end% %msg:R,ERE,0,BLANK:\b[AX]{3,4}\b--end% %msg:R,ERE,0,BLANK:\([AZ]+\)|\(([AZ]+\,){1,3}[AZ]+\)--end% %msg:R,ERE,0,DFLT:[ax]+--end% %msg:F,32:2% %msg:R,ERE,0,DFLT:[0-9]+$--end%\n" if ($fromhost-ip == '192.168.0.230') then {action(type="omfile" file="/var/log/remote/192.168.0.230.log" )} if ($fromhost-ip == '192.168.0.230') then {action(type="omfile" file="/var/log/remote/192.168.0.230.log" template="tpl_traflog_test" ) stop} 

рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред

Tpl_traflog_test рдЯреЗрдореНрдкрд▓реЗрдЯ tpl_traflog рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди SQL INSERT рдХреЗ рдмрд┐рдирд╛ред

рдкрд╣рд▓реА рд╢рд░реНрдд рдлрд╝рд╛рдЗрд▓ /var/log/remote/192.168.0.230.log рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрд╕рд╛рдзрд┐рдд рд▓рд╛рдЗрди% msg% рдЬреЛрдбрд╝рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

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

рд╣рдо рдПрдХ DB рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ


рд╣рдо DBMS рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдХрдо рдХрд░ рджреЗрдВрдЧреЗ, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИред

рд╣рдо mysql рдХрдВрд╕реЛрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 --   create database traflog character set utf8 collate utf8_bin; use traflog; --  create table traffic (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, datetime DATETIME, inif VARCHAR(20), outif VARCHAR(20), src VARCHAR(21), sport INT(5), dst VARCHAR(21), dport INT(5), smac VARCHAR(17), proto VARCHAR(4), flags VARCHAR(11), chain VARCHAR(8), logpref VARCHAR(24), len INT(5)) ENGINE=MYISAM; --  create user rsyslogger@localhost identified by '...'; grant all privileges on traflog.* to rsyslogger@localhost; 

рддрд╛рд▓рд┐рдХрд╛ рддреИрдпрд╛рд░ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред

рдЕрдм рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдЬреЛрдбрд╝реЗрдВ, рдпрд╣ рд╡рд╣ рдХрд░реЗрдЧрд╛ рдЬреЛ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдкрддреЗ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛, рдХреЛрд╖реНрдардХ рдХреЛ рдзреНрд╡рдЬ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛:

 --   traffic DELIMITER // create TRIGGER delim_ip_port_flags BEFORE insert ON traffic FOR EACH ROW begin set NEW.inif = REGEXP_REPLACE ((NEW.inif), 'in:', '' ); set NEW.outif = REGEXP_REPLACE ((NEW.outif), 'out:', '' ); set NEW.sport = REGEXP_REPLACE ((NEW.src), '([0-9]+\.){3}[0-9]+:|([0-9]+\.){3}[0-9]+', '' ); set NEW.src = REGEXP_REPLACE ((NEW.src), ':[0-9]+', '' ); set NEW.dport = REGEXP_REPLACE ((NEW.dst), '([0-9]+\.){3}[0-9]+:|([0-9]+\.){3}[0-9]+', '' ); set NEW.dst = REGEXP_REPLACE ((NEW.dst), ':[0-9]+', '' ); set NEW.flags = REGEXP_REPLACE ((NEW.flags), '\\(|\\)', '' ); end // delimiter ; 

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

рдЖрдЗрдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдбрд╛рд▓реЗрдВ, рдХрд┐ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреИрд╕реЗ рд╣реЛрдЧрд╛:

 --   insert into traffic (datetime, inif, outif, src, dst, smac, proto, chain, logpref) values (20180730075437, 'in:ether6', 'out:VLAN55', '192.168.0.234:4997', '192.168.6.18:65535', '00:15:17:31:b8:d7', 'TCP', '(SYN)', 'forward', 'BLOCKSMKNETS'); 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ:

 select * from tarffic; 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВред

рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝реЗрдВред рдореИрдВ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, mysql рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреЙрдЗрдирд┐рдВрдЧ рдлрд╝реАрд▓реНрдбреНрд╕ рд╡рд╛рд▓реЗ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдХреНрд╡реЗрд░реА рдХреЗрд╡рд▓ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИ (рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ?)ред рдпрджрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдХрд░реЗрдВред
рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝рд╛:
 --  create index traffic_index on traffic (datetime,logpref,src); 

рд╣реЛ рдЧрдпрд╛ред

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

рдорд┐рдХрд░реЛрдЯрд┐рдХ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 /system logging action set 3 remote=192.168.0.94 src-address=192.168.0.230 add name=remote2 remote=192.168.0.19 syslog-facility=local6 target=remote /system logging add action=remote topics=error,account,critical,event,info add action=remote2 topics=firewall /ip firewall filter ... add action=drop chain=input comment="drop ssh brute forcers" dst-port=22,8291 log=yes log-prefix=DROP_SSH_BRUTE protocol=tcp src-address-list=ssh_blacklist ... 

рдЬрд╣рд╛рдБ 192.168.0.230 рд░рд╛рдЙрдЯрд░ рдХрд╛ рдкрддрд╛ рд╣реИ, 192.168.0.19 рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рд╣реИ, рдФрд░ 192.168.0.94 рдПрдХ рдФрд░ рд▓реЙрдЧ рд╕рд░реНрд╡рд░ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдорд┐рдХрд░реЛрдЯрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдкрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рд╣рдореЗрдВ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░рд╛ рд╕реЗрдЯрдЕрдк рд░рд┐рдореЛрдЯ 2 рд╣реИред

рдЕрдЧрд▓рд╛, рджреЗрдЦреЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:

 tail -f /var/log/remote/192.168.0.230.log 

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

рдпрджрд┐ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЕрдиреБрдХреНрд░рдо рдбреЗрдЯрд╛рдЗрдо, рдЗрдирдЗрдлрд╝, рдЖрдЙрдЯрдлрд╝рд┐рдЯ, src, dst, smac, рдкреНрд░реЛрдЯреЛ, рдлрд╝реНрд▓реИрдЧреНрд╕, рдЪреЗрди, рд▓реЙрдЧрд░рдлрд╝, рд▓реЗрди рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд▓реЙрдЧрд░ рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, DLFT рдХреЗ рд╕рд╛рде BLANK рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реВрдиреНрдпрддрд╛ рдХреЗ рдмрдЬрд╛рдп, рдХреБрдЫ рдкрддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдорд┐рдд рд╢реЗрдбреНрдпреВрд▓ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рддреЛ рдкрд░реАрдХреНрд╖рдг рдХреА рд╢рд░реНрддреЛрдВ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред

рдЖрдкрдХреЛ рдиреАрдЪреЗ /etc/rsyslog.d/ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдЪрд▓рд╛рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ 50-default.conf рдХрд░ рджрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд░рд┐рдореЛрдЯ рд▓реЙрдЧ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ / рд╡рд░реНрдЬрди / рд▓реЙрдЧ / рдореИрд╕реЗрдЬ рдореЗрдВ рди рдбрд╛рд▓рд╛ рдЬрд╛рдПред
рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред

рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рддрдХ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВред рддрдм рд╣рдо рдЪрдпрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╢реНрди:

рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:
 MariaDB [traflog]> select table_schema as "database", round(sum(data_length + index_length)/1024/1024,2) as "size Mb", TABLE_ROWS as "count rows" from information_schema.tables group by table_schema; +--------------------+---------+------------+ | database | size Mb | count rows | +--------------------+---------+------------+ | information_schema | 0.17 | NULL | | traflog | 3793.39 | 21839553 | +--------------------+---------+------------+ 2 rows in set (0.48 sec) 

рд▓рдЧрднрдЧ 4GB рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЙрдЧ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЧреБрдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

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

 MariaDB [traflog]> select logpref,count(logpref) from traffic group by logpref order by count(logpref) desc; +----------------------+----------------+ | logpref | count(logpref) | +----------------------+----------------+ | ACCEPT_TORF_INET | 14582602 | | ACCEPT_SMK_PPP | 1085791 | | DROP_FORWARD_INVALID | 982374 | | REJECT_BNK01 | 961503 | | ACCEPT_MMAX_TORF | 802455 | | ACCEPT_TORF_PPP | 736803 | | SMTP_DNAT | 689533 | | ACCEPT_SMK_INET | 451411 | | ACCEPT_INET_TORF | 389857 | | BLOCK_SMKNETS | 335424 | | DROP_SMTP_BRUTE | 285850 | | ACCEPT_ROZN_TORF | 154811 | | ACCEPT_TORF_MMAX | 148393 | | DROP_ETHALL_ETHALL | 80679 | | ACCEPT_SMTP | 48921 | | DROP_SMTP_DDOS | 32190 | | RDP_DNAT | 28757 | | ACCEPT_TORF_ROZN | 18456 | | SIP_DNAT | 15494 | | 1CWEB_DNAT | 6406 | | BLOCKSMKNETS | 5789 | | DROP_SSH_BRUTE | 3162 | | POP_DNAT | 1997 | | DROP_RDP_BRUTE | 442 | | DROP_BNK01 | 291 | | DROPALL | 138 | | ACCEPT_RTP_FORWARD | 90 | | REJECT_SMTP_BRUTE | 72 | | L2TP_INPUT_ACCEPT | 33 | +----------------------+----------------+ 29 rows in set (2 min 51.03 sec) 

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

Smtp рднрд╛рд▓рд╛ рдиреЗрддрд╛
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдЬ рдХрд┐рд╕рдиреЗ smtp рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

 MariaDB [traflog]> select src,count(dport) from traffic where logpref='SMTP_DNAT' and datetime > '2018101600000000' group by src order by count(dport) desc limit 10; +----------------+--------------+ | src | count(dport) | +----------------+--------------+ | 191.96.249.92 | 12440 | | 191.96.249.24 | 4556 | | 191.96.249.61 | 4537 | | 185.255.31.122 | 3119 | | 178.57.79.250 | 226 | | 185.36.81.174 | 216 | | 185.234.219.32 | 211 | | 89.248.162.145 | 40 | | 45.125.66.157 | 32 | | 188.165.124.31 | 21 | +----------------+--------------+ 10 rows in set, 1 warning (21.36 sec) 

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдиреЛрдб 191.96.249.92 рдЖрдЬ рд╡рд┐рдЬреЗрддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡реЗ рдЕрднреА рднреА рдХрд┐рди рдирд┐рдпрдореЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

 MariaDB [traflog]> select src,dport,count(dport),logpref from traffic where src='191.96.249.92' group by logpref order by count(dport) desc; +---------------+-------+--------------+-----------------+ | src | dport | count(dport) | logpref | +---------------+-------+--------------+-----------------+ | 191.96.249.92 | 25 | 226989 | SMTP_DNAT | | 191.96.249.92 | 25 | 170714 | DROP_SMTP_BRUTE | | 191.96.249.92 | 25 | 2907 | DROP_SMTP_DDOS | | 191.96.249.92 | 25 | 2061 | ACCEPT_SMTP | +---------------+-------+--------------+-----------------+ 4 rows in set (10 min 44.21 sec) 

рдпрд╣ рдХреЗрд╡рд▓ smtp, ~ 1% рд╣рд┐рдЯ рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдпрд╛ рдХреБрдЫ рдХрдЪрд░рд╛ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдорд╛рд╣рд┐рд░ рд╣реИ, рдмрд╛рдХреА рд╕реНрдирд╛рдирд╛рдЧрд╛рд░ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред

рдЕрдиреБрд░реЛрдз рдореЗрдВ 10 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛, рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд╡рд░реНрддрдорд╛рди рд╕реВрдЪрдХрд╛рдВрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЛ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

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

рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдВрджрд░реНрдн:

рд░реБрдкрдПрд▓реЙрдЧ рдкреНрд░рд▓реЗрдЦрди
рдордпрд╕реНрдХрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ
рдорд┐рдХрд░реЛрдЯрд┐рдХ рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рд▓реЗрдЦрди

рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП LOR рд╕рдореБрджрд╛рдп рдХреЛ рдзрдиреНрдпрд╡рд╛рдж ред

UPD.1
рдЭрдВрдбреЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЕрдм рдЖрдк SYN, рдлрд┐рди рдХреЛ рдкрдХрдбрд╝рдХрд░ рдХрдиреЗрдХреНрд╢рди рдЕрд╡рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Rsyslog рдирд┐рдпрдорд┐рдд рдореЗрдВ рдХреБрдЫ рдХреАрдбрд╝реЗ рдлрд┐рдХреНрд╕реНрдб, рд╕рд╛рде рд╣реА mysql рдЯреНрд░рд┐рдЧрд░ред

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

рдореИрдВрдиреЗ рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рд╛ рд╣реИ рдХрд┐ рдПрд╕реАрдХреЗ, рдлрд┐рди рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдЯреАрд╕реАрдкреА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

SQL рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд, рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛ рдЕрдВрддрд┐рдо рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдореЗрдВ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдордп рджрд┐рдЦрд╛рддреА рд╣реИ
рдХрдиреЗрдХреНрд╢рди_рд╕реВрдЪреА ()
 DROP PROCEDURE IF EXISTS connections_list; DELIMITER // CREATE PROCEDURE connections_list() BEGIN DECLARE logid BIGINT UNSIGNED; DECLARE done INT DEFAULT FALSE; DECLARE datefin DATETIME; DECLARE datesyn DATETIME; DECLARE conntime TIME; DECLARE connsport INT; DECLARE conndport INT; DECLARE connsrc VARCHAR(21); DECLARE conndst VARCHAR(21); DECLARE cur CURSOR FOR SELECT id,datetime,src,sport,dst,dport FROM conn_syn_fin WHERE flags='SYN'; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE; DROP TABLE IF EXISTS conn_syn_fin; DROP TABLE IF EXISTS connless; CREATE temporary TABLE connless(datestart DATETIME,dateend DATETIME,duration TIME,src VARCHAR(21),sport INT,dst VARCHAR(21),dport INT); CREATE temporary TABLE conn_syn_fin (SELECT * from traffic WHERE datetime > now() - interval 5 minute and src in (select src from traffic where datetime > now() - interval 5 minute and logpref='TCP_FIN' and flags like '%FIN%') and (flags like '%SYN%' or flags like '%FIN%') order by id); OPEN cur; read_loop: LOOP FETCH cur INTO logid,datesyn,connsrc,connsport,conndst,conndport; IF done THEN LEAVE read_loop; END IF; set datefin=(SELECT datetime FROM conn_syn_fin WHERE id>logid and src=connsrc and sport=connsport and flags like '%FIN%' and dst=conndst and dport=conndport limit 1); set conntime=(SELECT timediff(datefin,datesyn)); INSERT INTO connless (datestart,dateend,duration,src,sport,dst,dport) value (datesyn,datefin,conntime,connsrc,connsport,conndst,conndport); END LOOP; CLOSE cur; select * from connless; END; // DELIMITER ; 


рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рджреЛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдмрд▓ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
Con_syn_fin рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ SYN рдФрд░ FIN рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред
рдХрдиреЗрдХреНрд╢рди рд░рд╣рд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдЦреБрд▓реЗ рдФрд░ рдкреВрд░реНрдг, рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдХреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИ, рдХреНрд░рдорд╢рдГ, рдирд╣реАрдВред
рдирдореВрдирд╛ рд╕рдордп рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╕реЗ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВред рдореЗрд░рд╛ рдЕрдиреБрд░реЛрдз рдзреАрдорд╛ рд╣реИред рдзреАрд░реЗ-рдзреАрд░реЗ рдпрд╣ рдХрд░реНрд╕рд░ рдЦреЛрдЬ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 10 рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╣рд░ рддрд░рд╣ рд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ src / sport / dst / dport рдХреЗ рд▓рд┐рдП рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдПрдХ рдХреЗ рд╕рдорд╛рди рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд░реНрдЧ рдорд╛рд╕реНрдЯрд░ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдХреЛ рдмреЗрд╣рддрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЙрд▓ рдХрдиреЗрдХреНрд╢рди_рд▓рд┐рд╕реНрдЯ ();
 MariaDB [traflog]> call connections_list(); +---------------------+---------------------+----------+---------------+-------+-----------------+-------+ | datestart | dateend | duration | src | sport | dst | dport | +---------------------+---------------------+----------+---------------+-------+-----------------+-------+ | 2019-03-20 14:12:19 | 2019-03-20 14:13:14 | 00:00:55 | 192.168.0.81 | 41868 | 87.250.250.207 | 443 | | 2019-03-20 14:12:25 | NULL | NULL | 192.168.0.65 | 49311 | 52.5.23.125 | 443 | | 2019-03-20 14:12:31 | 2019-03-20 14:12:51 | 00:00:20 | 192.168.0.104 | 54433 | 217.69.139.42 | 443 | | 2019-03-20 14:12:31 | 2019-03-20 14:12:51 | 00:00:20 | 192.168.0.104 | 54434 | 217.69.139.42 | 443 | | 2019-03-20 14:12:32 | NULL | NULL | 192.168.0.119 | 37977 | 209.85.233.95 | 443 | ... | 2019-03-20 14:17:12 | NULL | NULL | 192.168.0.119 | 39331 | 91.213.158.131 | 443 | | 2019-03-20 14:17:13 | NULL | NULL | 192.168.0.90 | 63388 | 87.240.185.236 | 443 | +---------------------+---------------------+----------+---------------+-------+-----------------+-------+ 399 rows in set (33.17 sec) Query OK, 0 rows affected (33.18 sec) 



рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдПрдБ con_syn_fin рдФрд░ conless рдмрдиреА рд░рд╣рддреА рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕рдВрджрд┐рдЧреНрдз рдпрд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреБрд░рд╛рдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рдЧрд▓рддреА рд▓рдЧреЗ рддреЛ рд▓рд┐рдЦреЗрдВред

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


All Articles