1 рд╣рд┐рд╕реНрд╕рд╛: рд╕рд╛рдл рдЯреЗрдмрд▓
рдХрд┐рд╕реА рд╕рдордп рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рд▓рдЪреАрд▓реА рдПрдВрдб-рдпреВрдЬрд╝рд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдереА: рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдирд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред
рдХрд╛рд░реНрдп рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд░реНрддреЗрдВ: рдПрдХ рдЯреАрдПрдордЬреА рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рд▓реЙрдЧ рдХреЛ рджреВрд░рд╕реНрде рдПрдордПрд╕ SQL тАЛтАЛрд╕рд░реНрд╡рд░ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ TMG рд▓реЙрдЧреНрд╕ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рддреЛ рд╣рдо рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ - рдлрд╛рдпрд░рд╡рд╛рд▓реЙрдЧ рдФрд░ рд╡реЗрдмрдкреНрд░реЛрдбрд▓реЙрдЧред рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рддреАрд╕рд░рд╛, "рд╕реНрд╡рдЪреНрдЫ", рддрд╛рд▓рд┐рдХрд╛ - рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ:
CREATE TABLE [dbo].[report]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ClientUserName] [nvarchar](514) NULL, [DestinationHost] [nvarchar](514) NULL, [bytesrecvd] [bigint] NULL, [bytessent] [bigint] NULL, [logTime] [date] NULL, [ClientAgent] [varchar](255) NULL, [ClientIP] [nvarchar](514) NULL, CONSTRAINT [PK_report] PRIMARY KEY CLUSTERED
Firewalllog рдФрд░ Webproxylog рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдбреЗрдЯрд╛ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ SQL рдЬреЙрдм рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдЬреЛ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЪрд▓рддреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рдореЗрдЯрддреА рд╣реИ, рдЙрд╕реЗ рдПрдХ рдХреНрд▓реАрди рдЯреЗрдмрд▓ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИ, рдлрд┐рд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдлреЙрд▓реНрдЯ рдЯреЗрдмрд▓ рд╕реЗ рдбрд┐рд▓реАрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ 180 рджрд┐рдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдиреА "рдХреНрд▓реАрди" рдЯреЗрдмрд▓ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рднреА рдбрд┐рд▓реАрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
insert into dbo.REPORT (ClientUserName, ClientAgent, clientip, logtime, destinationhost, bytesrecvd, bytessent) select dbo.GetUserName (ClientUserName, SourceIP) as ClientUserName, ClientAgent, dbo.parseip (sourceip) as clientip, cast (logtime as date) as logtime, dbo.parseip (destinationip) as destinationhost, SUM(bytessent) as bytessent, sum(bytesrecvd) as bytesrecvd from dbo.FirewallLog where (DestinationIP not like ' ' and DestinationIP not like ' TMG' and SourceIP not like ' TMG' ) and bytessent + bytesrecvd <> 0 and (cast (logtime as date) >= cast (dateadd (day, -5, GETDATE()) as DATE) and cast (logtime as date) <= cast (GETDATE() as DATE)) and Action <> 11 group by ClientUserName, SourceIP, DestinationIP, cast (logtime as date), ClientAgent union select dbo.GetUserName (ClientUserName, ClientIP) as ClientUserName, ClientAgent, dbo.parseip (clientip) as clientip, cast (logtime as date) as logtime, urldesthost as destinationhost, SUM(bytesrecvd) as bytessent, sum(bytessent) as bytesrecvd from dbo.WebProxyLog where (DestHostIP not like ' ' and DestHostIP not like ' TMG' and ClientIP not like ' TMG') and bytessent + bytesrecvd <> 0 and (cast (logtime as date) >= cast (dateadd (day, -5, GETDATE()) as DATE) and cast (logtime as date) <= cast (GETDATE() as DATE)) and Action <> 11 group by ClientUserName, ClientIP, UrlDestHost, cast (logtime as date), ClientAgent delete from dbo.FirewallLog where cast (logtime as date) >= cast (dateadd (day, -5, GETDATE()) as DATE) and cast (logtime as date) <= cast (GETDATE() as DATE) delete from dbo.WebProxyLog where cast (logtime as date) >= cast (dateadd (day, -5, GETDATE()) as DATE) and cast (logtime as date) <= cast (GETDATE() as DATE) delete from dbo.REPORT where logtime <= cast (dateadd (day, -180, GETDATE()) as DATE)
рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреА рдереА рд╡рд╣ рд╣реИ рдбреЗрдЯрд╛ рдлреЙрд░реНрдореЗрдЯ рдЬрд┐рд╕рдореЗрдВ IP рдкрддрд╛, рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ IPv4 рдкрддреЗ рдореЗрдВ C0A89E4B-FFFF-0000-0000-000000000000 рд░реВрдк рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп IPv4 рдкрддреЗ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ FFFF рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рджреЛ рдЕрдВрдХреЛрдВ рдХреЗ 4 рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕реЗ рджрд╢рдорд▓рд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ - C0.A8.9E.4.1 = 192.168.158.75ред рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдХреНрд╡реЗрд░реА dbo.parseip рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ:
USE [TMG] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[parseIP] ( @ui uniqueidentifier ) RETURNS varchar(128) AS BEGIN declare @hex varchar(8), @t varchar (8), @number int = 1, @n INT = 0, @IP varchar(128) = '', @i int = 1 SET @hex = SUBSTRING(CONVERT(VARCHAR(128), @ui), 1, 8) WHILE @i <8 BEGIN set @t = REVERSE(SUBSTRING(@hex, @i, 2))
рдЕрдЧрд▓рд╛ dbo.GetUserName рдлрд╝рдВрдХреНрд╢рди рд╣реИ:
USE [TMG] GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE FUNCTION [dbo].[GetUserName] (@Username nvarchar(128), @IpAddress uniqueidentifier) RETURNS nvarchar(128) AS BEGIN IF (@Username = NULL OR @Username = '-' OR @Username = 'anonymous') RETURN dbo.parseip (@IpAddress); RETURN @Username; END
рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдПрд╕рдП 2006 рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ рдерд╛ рд╡рд╣ @IpAddress рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдерд╛ред
рдЗрд╕ рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдп рд╣реИрдВ, рдЕрдм рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
Webproxylog рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рд╕реНрддрдВрднреЛрдВ рдФрд░ bytesrecvd рдХрд╛ рдЕрд░реНрде рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЙрд▓реНрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - SUM (bytesrecvd) bytessent, sum (bytessent) рдХреЛ bytesrecvd рдХреЗ рд░реВрдк рдореЗрдВред
рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдЬреЛ рдореИрдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рд╣реИ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЕрд╢рдХреНрдд рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рд░рд╛рдЬреНрдп рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ "рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ" рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде, TMG рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдордзреНрдпрд╡рд░реНрддреА рдорд╛рддреНрд░рд╛ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд / рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╢рди <> 11. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реВрдиреНрдп рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╡реЗ рдкрд┐рдЫрд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЧрд┐рдирддреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ "рдХреНрд▓реАрди" рдЯреЗрдмрд▓ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХред
рдкреБрдирд╢реНрдЪ: рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдкрд╛рд░реНрд╕рд┐рдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред