Tuesday, May 27, 2008

How to convert an IP address from the firewall log into a dotted IP address.

แบบที่ 1

SELECT
CAST(SourceIP / 256 / 256 / 256 % 256 AS VARCHAR) + '.' +
CAST(SourceIP / 256 / 256 % 256 AS VARCHAR) + '.' +
CAST(SourceIP / 256 % 256 AS VARCHAR) + '.' +
CAST(SourceIP % 256 AS VARCHAR) AS [Nice Source Ip], FirewallLog.*
From FirewallLog

แบบที่ 2 สร้าง Function เอาไว้ให้เรียกใช้งานได้ง่าย

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

CREATE FUNCTION [dbo].[ConvertLongIP]
(
@LongIP bigint
)

RETURNS varchar(15)
AS
BEGIN

DECLARE @DotIP varchar(15),
@bin varbinary(4)
select @bin = cast(@LongIP as varbinary(4))
select @DotIP = cast(convert(int,substring(@bin,1,1)) as varchar(3)) + '.'
+ cast(convert(int,substring(@bin,2,1)) as varchar(3)) + '.'
+ cast(convert(int,substring(@bin,3,1)) as varchar(3)) + '.'
+ cast(convert(int,substring(@bin,4,1)) as varchar(3))
RETURN @DotIP
END

การลบข้อมูลใน SQL 2005 ที่เก่ากว่า 90 วัน

แบบที่ 1
DELETE FROM WebProxyLog where LogTime < (getdate() - 90) DELETE FROM FirewallLog where LogTime < (getdate() - 90) แบบที่ 2 ดีกว่า ลบได้แน่นอนกว่า delete from firewalllog where datediff(dd,logtime,getdate()) > 90
delete from webproxylog where datediff(dd,logtime,getdate()) > 90
select logtime from firewalllog where datediff(dd,logtime,getdate()) > 1

ได้ผล แต่ต้องรอ 2 วัน ดีกว่าการใช้ แบบที่ 1

ถ้าใช้ SQL Express Edition ที่ไม่มี Scheduler จะต้องใช้ Schedules Tasks ของ Windows แทนเช่น
sqlcmd -S .\ISALOG -d ISALOG d:\ISALOG\cleandatabase.sql
แล้วค่อยใส่คำสั่ง delete from ... ลงไปในไฟล์ cleandatabase.sql

-S = ชื่อ server , . หมายถึง localhost , \ISALOG คือชื่อ Instant
-d = ชื่อ database
-i = ชื่อ sql script

http://msdn.microsoft.com/en-us/library/aa258269(SQL.80).aspx

Monday, May 26, 2008

วิธี Block MSN หรือ Windows Live Messenger

Concept ใช้ได้กับ Firewall เกือบทุกตัว
ให้ Block MSN protocal ที่ใช้ port 1863 เพื่อเป็นการบังคับให้ MSN เปลี่ยนไปใช้ port 80 HTTP จากนั้นค่อยทำการ block signature ของ MSN นั่นก็คือการ Block Request URL ที่มี string gateway/gateway.dll เป็นส่วนประกอบ

การ Block Signature โดยใช้ ISA Firewall
1. ไปที่ rule ที่มี http protocal รวมถึง rule ที่ยอมให้ออกหมดทุก protocal (ทุก protocal หมายถึง ทุกอันที่ define เอาไว้ใน protocal definition ดังนั้นจึงรวม http protocal เข้าไปด้วย) แล้ว click ขวาเลือก Configure HTTP
2. ไปที่แถบ Signature กดปุ่ม Add ใส่ข้อมูลตามนี้
Name = Block MSN
Search in = Request URL
Signature = gateway/gateway.dll


Note
สรุป port และ URL ของบริการที่ MSN ใช้
http://support.microsoft.com/kb/927847

Tuesday, May 20, 2008

ISA 2004/2006 logging using local SQL 2005

การ Config ในส่วนของ SQL Server

- Install Microsoft SQL 2005 Express Edition
- ปัจจุบันออก SP3 แล้ว จะรวมมาใน package เลย
- ในหน้า Registration Information ให้เอา checkbox Hide advace configuration option เพื่อให้สามารถตั้งชื่อ Instant ได้ให้ชื่อว่า ISALOG
- Service Account ให้เลือกเป็น Local System ตรงนี้สำคัญมากว่าจะต้องทำให้ User ที่ใช้ run service ISA Firewall กับ SQL2005 เป็น User เดียวกันไม่งั้นจะ start SQL Log ไม่ได้ ในเวป isaserver.org เป็นกรณีที่ SQL Server เป็น Server คนละตัวกับ ISA Firewall แต่ในกรณีนี้เราต้องการให้อยู่บน server เดียวกัน ดังการการ setting จึงต่างกันนิดหน่อย
- เลือก Windows Authentication Mode
- Add User to the SQL Server Administrator Role จะเป็นการเพื่ม user ที่เป็นคน install sql 2005 ให้อยู่ใน administrator role ของ SQL 2005 จะเลือกหรือไม่ก็ได้ (เลือกเอาไว้ดีกว่า)
- หลังจาก Install เสร็จแล้ว ให้ไปดูที่ Service ของ Microsoft Firewall และ SQL Server (ISALOG) run ด้วย user เดียวกันคือ Loal System ถ้าไม่ตรงก็เปลี่ยนให้ตรงกัน
Note ถ้ามีปัญหา start SQL ไม่ได้แล้วถ้าไปดูใน eventlog จะเห็นว่า error มันเกิดจากการที่ user ที่ใช้ run service ไม่ผ่าน มันไม่ได้เป็น user เดียวกับที่ไปกำหนดให้ใช้ในตอน config log ของ ISA ด้วย สังเกตุได้จากในขั้นตอนนั้นใส่ user อะไรไปก็จะ Test ผ่านหมด
- Install Microsoft SQL Server Management Studio Express
- เปิด SQL Studio Express ขึ้นมาเพื่อสร้าง Database ISALOG เอาไว้ที่ Drive D: (ถ้าไม่กำหนดเอง มันสร้างไว้ที่ Drive C:) เพราะว่าต้องเก็บ log เอาไว้ 90 วันตามพรบ ใช้เนื้อที่มาก
- ที่ Object Explorer แตกออกมาให้เห็น Database แล้ว Click ขวาเลือก New Database ตั้งชื่อ Database = ISALOG
Owner = NT AUTHORITY\SYSTEM
Path = D:\ISALOG
- สร้าง Table FirewallLog และ WebProxyLog ขึ้นมาให้อยู่ใน Database ISALOG โดยใช้ script FWSRV.SQL และ W3PROXY.SQL ที่มีมาให้อยู่แล้วใน ISA2006 folder
- ไปที่ Menu File/Open แล้วเปิด fwsrv.sql และ w3proxy.sql พิมพ์เพิ่มเข้าไปข้างบนว่า
USE ISALOG
เพื่อเป็นการบอกให้สร้าง table เอาไว้ใน Database ISALOG แล้วสั่ง Execute
- ย้อนกลับไปดูใน Datbase ISALOG จะเห็นว่ามี table เพิ่มขึ้นมา 2 table คือ dbo.firewalllog และ dbo.webproxylog
- เปิด SQL Server Surface Area Configuration ขึ้นมาแล้วไปที่ Remote Connection เปลี่ยนจาก Local connection only เป็น Local and remote connection -> Using TCP/IP only
- เปิด SQL Server Configuration Manager ขึ้นมา ไปที่ Protocal for ISALOG -> ICP/IP = Enable
ไปแถบ IP Address แล้ว Enable ทุก IP Address , ลบ Dynamic Port ออกให้ว่างๆ, TCP Port ใส่ 1433 ทุกอัน , Enable = Yes ทุกอัน
- OK แล้ว Restart SQL Service
- ไม่จำเป็นต้อง assign permission อะไรใน Database ISALOG เพราะ system สามารถเขียนข้อมูลลงไปได้อยู่แล้ว

การ Config ใส่ส่วนของ ISA Server

- เปิด Edit System Policy(อยู่ใน Task Pane ของ Firewall Policy)/ Logging/ Remote Logging /
แถบ General -> Enable this configuration group
- ไปที่ Monitoring /Logging /Configure Firewall Loggin เลือก SQL Database / Option
Server = ชื่อของ ISA Firewall
Port = 1433
Database = ISALOG
Table = FirewallLog (หรือ WebProxyLog)
Uncheck Force data encryption เพราะเราใช้ Local Database ไม่ใด้ใช้ Remote Database
เลือก Use Windows authentication
User = อะไรก็ได้ ไม่มีผลเพราะใช้งานโดย Local System
Password = อะไรก็ได้ ไม่มีผลเพราะใช้งานโดย Local System
กด Test จะผ่าน

Testing
- เปิด SQL Studio Express ขึ้นไปแล้วไปที่ New Query พิมพ์ว่า
select * from dbo.firewalllog แล้วกดปุ่ม Execute จะเห็น log ที่เก็บไว้
- ทดสอบ Webproxylog พิมพ์ว่า
select * from dbo.webproxylog
- อย่าลืมให้เลือก Database ISALOG ตรง Dropdown ด้านซ้ายบนด้วย ไม่งั้นจะ error เพราะว่ากลายเป็นการ query จาก database อื่น

Note

- ISA 2004 ใช้ ODBC แต่ ISA 2006 ใช้ Direct Access to SQL
- อย่าทำ Compress Disk กับ drive ที่เก็บ data file ของ SQL เพราะจะทำให้ performance ตกลง 500%
- เว็ปที่มีประโยชน์เกี่ยวกับ ISA อีกเวปนึง
http://www.elmajdal.net/ISAServer/

Thursday, May 15, 2008

GFI Webmonitor V.4

White List - จะ bypass กฎทุกอย่างเช่น block hi5 แต่ถ้าใส่ user ที่ไม่ต้องการ block เอาไว้ใน white list แล้วจะเข้าได้ หรืออาจจะสามารถใส่ ip หรือ hostname ของ site ที่ต้องการเข้าก็ได้เช่น *.google.com, *.yahoo.com จะทำให้ site พวกนี้ผ่านกฎทุกกฎ ดังนั้นให้ใช้อย่างระมัดระวัง

Black List - ถ้ามีชื่ออยู่ใน black list จะห้ามทุกอย่าง

Web Filtering Policies - สามารถ Edit ได้ว่าต้องการให้ Filter content ไหนออกไปได้บ้าง อาจจะนำมาใช้กับ MSN ก็ได้(ไม่ได้ผลลองแล้ว) โดยทั่วไปจะใช้ไม่ให้เข้าเวปพวกที่มี Adult Content

Download Control Policies - สามารถเอาไว้ block ไม่ให้ download ไฟล์บางประเภทได้โดยดูจาก Content-type อาจจะเอามาประยุกต์ใช้ไม่ให้ download ไฟล์บางนามสกุลได้

Virus Scanning Policies - สามารถไปกำหนดให้ Scan Virus กับไฟล์ประเภทไหนบ้าง แล้วขึ้นจะให้ขึ้น Download Status Windows หรือเปล่า ถ้าเจอ Virus จะให้ทำยังไงเช่น delete หรือ warn

Whitelist = *.eset.com สำหรับ update nod32
Blacklist = *.hi5.com

Saturday, May 10, 2008

Schedule Task

ใน Run As ให้ใช้ NT AUTHORITY\SYSTEM โดยที่ไม่ต้อง set password จะทำให้ใช้ได้ตลอด ไม่ต้องกังวลเรื่องที่จะเปลี่ยน pasword แล้ว task ไม่ยอม run