Путь до лог файлов MS ISA Server

Программа Internet Access Monitor для MS ISA Server работает с лог файлами ISA Server 2000, ISA Server 2004 и ISA Server 2006(Как с текстовыми логами, так и с логами сохраняемыми в формате MSDE). В процессе работы программа ищет лог файлы вида *FWS*.*, IP*.log, *WEB*.*
Например, FWSEXTD20030408.log
Обычно лог файлы прокси сервера MS ISA Server находятся в каталоге C:\Program Files\Microsoft ISA Server\ISAlogs.

Настройка Microsoft ISA Server 2004/2006

Для того, чтобы Microsoft ISA Server 2004/2006 и Internet Access Monitor могли работать совместно необходимо его настроить таким образом, как показано ниже:

В том случае если Microsoft ISA Server 2004/2006 хранит лог файлы в формате MSDE(по умолчанию), то Internet Access Monitor должен быть установлен на том же компьютере. Это необходимо для того чтобы программа имела возможность получить доступ к MSDE, который требуется для обработки .MDF лог файлов.

Импорт лог файлов из MSDE баз данных с удаленной машины

Начиная с версии 3.8, программа Internet Access Monitor для MS ISA Server позволяет импортировать лог файлы ISA Server, которые создаются и хранятся в формате MSDE(по умолчанию). Ниже представлены пошаговые инструкции, которые необходимо выполнить перед началом импорта. Если Internet Access Monitor и Microsoft ISA Server работают на одном компьютере, то ничего из нижеизложенного выполнять не нужно!

Важное замечание о безопасности

Данные инструкции носят информационный характер и не должны рассматриваться как рекомендации. Следует понимать, что некоторые из представленных ниже шагов могут снизить защищенность компьютера, на котором работает MS ISA Server. Компания Red Line Software не несет и не может нести какой-либо ответственности за возможный причиненный и не причиненный ущерб от применения данных инструкций.

Конфигурирование MS ISA Server

Шаг 1. Предоставление сетевого доступа к папке ISALogs

Для того чтобы IAM мог импортировать лог файлы с удаленный машины, первое что необходимо сделать – это расшарить папку с лог файлами MS ISA Server. Рекомендуется использовать стандартное имя ISALogs. В целях повышения конфиденциальности данных, можно сделать сетевое имя невидимым добавив в конце знак «$» - ISALogs$

Обязательно следует проверить доступность сетевого имени, выполнив на компьютере, на котором будет производиться импорт, команду: \\ServerName\ISALogs. Если список файлов виден, то все сделано верно.

Шаг 2. Предоставление доступа к MSDE по протоколу TCP/IP

Коммуникация MSDE и компьютера, с которого будет производиться импорт лог файлов, осуществляется по протоколу TCP/IP. По умолчанию данный способ коммуникации запрещен на том экземпляре MSDE, который устанавливается вместе с MS ISA Server. Соответственно, необходимо разрешить его. Для этого следует запустить программу SVRNETCN.exe, которая находится в каталоге "X:\Program Files\Microsoft SQL Server\80\Tool\Binn\", где X – это имя диска, на котором стоит MS ISA Server.

В появившемся окне следует разрешить протокол TCP/IP. Затем выбрать его и, нажав кнопку Properties, убедиться что указан порт 1433:

Шаг 3. Создание правила, разрешающего доступ к компьютеру ISA Server по протоколам Microsoft SQL

Internet Access Monitor будет пытаться устанавливать соединение с компьютером, на котором работает MSDE. ISA Server, по умолчанию, блокирует доступ такого рода. Поэтому необходимо создать специальное правило, устраняющее данную проблему. Например, такое:

Но лучше включить компьютер, с которого будет осуществляться импорт в перечень «Remote Management Computers» и создать такое правило:

Шаг 4. Предоставление прав на чтение данных из баз данных MSDE

Если импорт лог файлов осуществляется пользователем, входящим в группу администраторов на компьютере ISA Server, то никаких дополнительных прав предоставлять нет необходимости. В противном случае, следует применить следующую последовательность действий:

  • Перейти на компьютер с ISA Server
  • Набрать Visual Basic скрипт, представленный ниже и сохранить его в любом месте на диске. Например, с именем isamsde.vbs
  • Отредактировать скрипт согласно инструкциям представленным ниже
  • Запустить скрипт на выполнение командой: cscript.exe isamsde.vbs

Шаг 5. Перезапуск сервисов

Для успешного применения сделанных изменений, следует ОБЯЗАТЕЛЬНО остановить и затем снова запустить службы Microsoft Firewall и Microsoft Data Engine.

Внимание! Следует понимать, что на время перезапуска данных сервисов, доступ в интернет для пользователей сети будет невозможен.

Скрипт

Ниже представлен скрипт, предоставляющий доступ к MSDE базам данных определенному пользователю или их группе. Внимание! В скрипте заведомо заложена ошибка, а именно там не указан аккаунт, для которого предоставляются разрешения. Поэтому перед запуском следует открыть скрипт в любом редакторе и вставить реальное имя пользовательского аккаунта или группы пользователей, которые будет осуществлять импорт лог файлов с удаленной машины. После внесения изменений следует удалить из скрипта комментарий, из-за которого возникает ошибка компиляции и запустить его на исполнение.

Копию данного скрипта можно скачать по ссылке: http://www.Redline-Software.com/upload/products/iam/isamsde.vbs


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE
' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE
' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS
' HEREBY PERMITTED.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This script grants access to all MSDE log databases for specified user
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Main
Sub Main
Dim shell          ' A WshShell object
Dim serverName     ' A String
Dim cn             ' An ADODB Connection object
Dim rs             ' An ADODB Recordset object
Dim cmd            ' An ADODB Command object
Dim cmdText        ' A String
Dim dbNamesCounter ' A Snteger
Dim dbNames(1000)  ' An Array 
Dim dbUser         ' A String
Dim itemIndex      ' A Integer
  !!!!!Replace the variable value below with a real account or group name!. Then delete this line !!!!
  dbUser = "SERVER\User" 
  WScript.Echo "Starting..."
  On Error Resume Next
  Set shell = CreateObject("WScript.Shell")
  If Err.Number <> 0 Then
    ReportError "creating the WshShell object."
    WScript.Quit
  End If
  On Error GoTo 0
  If LCase(Right(WScript.FullName, 11)) <> "cscript.exe" Then
    WScript.Echo "Usage:" & VbCrLf _
      & " This script can be run from a command prompt " & VbCrLf _
      & " by entering the following command:" & VbCrLf _
      & " Cscript " & WScript.ScriptName
    WScript.Quit
  End If
  ' Get the name of the local ISA Server computer.
  On Error Resume Next
  serverName = shell.ExpandEnvironmentStrings("%ComputerName%")
  If Err.Number <> 0 Then
    ReportError "reading the %ComputerName% environment variable."
    WScript.Quit
  End If
  On Error GoTo 0
  ' Create and open an ADODB Connection object.
  Set cn = CreateObject("ADODB.Connection")
  cn.ConnectionTimeout = 25
  cn.Provider = "SQLOLEDB"
  cn.Properties("Data Source").Value = serverName & "\MSFW"
  cn.Properties("Integrated Security").Value = "SSPI"
  On Error Resume Next
  cn.Open
  If Err.Number <> 0 Then
    ReportError "opening a database connection."
    WScript.Quit
  End If
  ' Create an ADODB Command object.
  On Error Resume Next
  Set cmd = CreateObject("ADODB.Command")
  If Err.Number <> 0 Then
    ReportError "creating a Command object."
    WScript.Quit
  End If
  Set cmd.ActiveConnection = cn
  On Error GoTo 0

  ' Create and open an ADODB Recordset object to get the collection
  ' of active databases.
  Set rs = CreateObject("ADODB.Recordset")
  cmdText = "SELECT name FROM master.dbo.sysdatabases WHERE (name like 'ISALOG_%') or (name like 'model')"
  On Error Resume Next
  rs.Open cmdText, cn
  If Err.Number <> 0 Then
    ReportError "selecting active databases list."
    WScript.Quit
  End If
  On Error GoTo 0
  ' Iterate through the databases list, fill array of database names
  rs.MoveFirst
  dbNamesCounter = 0
  Do While Not rs.EOF
    dbNames(dbNamesCounter) = rs("name")
    dbNamesCounter = dbNamesCounter + 1
    rs.MoveNext
  Loop
  rs.Close
  ' Iterate through the databases list, granting access
  For itemIndex = 0 To UBound(dbNames)
    If Not(dbNames(itemIndex)) = Empty Then
      GrantUserAccessToDB  cmd, dbNames(itemIndex), dbUser
    End If
  Next
  WScript.Echo "Done."
End Sub

' Grants access to database for specified user
Sub GrantUserAccessToDB(cmd, dbName, dbUser)
  WScript.Echo "Updating " & dbName & " ..."
  cmd.CommandText = "use " & dbName
  WScript.Echo " >" & cmd.CommandText
  On Error Resume Next
  cmd.Execute
  If Err.Number <> 0 Then
    ReportError "attempting to change context to " & dbName & "."
    WScript.Quit
  End If
  On Error GoTo 0
  ' Grant database login permission to user
  cmd.CommandText = "exec sp_grantlogin '" & dbUser & "'"
  WScript.Echo " >" & cmd.CommandText
  On Error Resume Next
  cmd.Execute

  If Err.Number <> 0 Then
    ReportError "attempting to grant database login permission to " & dbUser & "."
  End If
  On Error GoTo 0
  cmd.CommandText = "exec sp_grantdbaccess '" & dbUser & "'"
  WScript.Echo " >" & cmd.CommandText
  On Error Resume Next
  cmd.Execute
  If Err.Number <> 0 Then
    ReportError "granting access for " & dbUser & " to " & dbName & "."
  End If
  On Error GoTo 0
  cmd.CommandText = "exec sp_addrolemember 'db_datareader','" & dbUser & "'"
  WScript.Echo " >" & cmd.CommandText
  On Error Resume Next
  cmd.Execute
  If Err.Number <> 0 Then
    ReportError "adding reader role for " & dbUser & " to " & dbName & "."
  End If
  On Error GoTo 0
End Sub
Sub ReportError(message)
  WScript.Echo "    ------------------------------------------ " & vbCrLf _
    & "   | An error was encountered while " & message & vbCrLf _
    & "   | Number : " & Hex(Err.Number) & vbCrLf _
    & "   | Description : " & Err.Description & vbCrLf _
    & "    ------------------------------------------ "
    Err.Clear
End Sub

Конфигурирование Internet Access Monitor

Никаких специальных настроек в программе не требуется.

Комментарии

Импорт из MSDE баз данных с удаленной машины немного отличается от варианта с установкой обеих программы(ISA Server и Internet Access Monitor) на одном компьютере. Поскольку доступ к базе данных предоставляется только на чтение, то IAM не может подключать новые базы данных к SQL Server'у с удаленной машины. Поэтому, если в папке ISALogs есть лог файл в формате MSDE, но он сильно устарел и ISA Server уже исключил данный файл из списка активных, то он не будет импортирован. Чтобы решить данную проблему следует либо самостоятельно присоединить файл базы данных к серверу(exec sp_attach_single_file_db “DBName”, “DBFileName”), либо установить программу на том же компьютере, на котором работает ISA Server. Из-за этой проблемы рекомендуется настроить планировщик Internet Access Monitor на ежедневный импорт лог файлов.

Еще одним важным моментом является правильное указание пути до лог файлов в программе Internet Access Monitor. В случае импорта MSDE лог файлов с удаленной машины обязательно следует использовать UNC пути до лог файлов. Вариант с подключением сетевого диска не будет работать корректно. Пример правильного указания путей до лог файлов:



Настройка Microsoft ISA Server 2000

Для того, чтобы Microsoft ISA Server 2000 и Internet Access Monitor могли работать совместно необходимо его настроить таким образом, как показано ниже:

Дополнительные ссылки

Поиск по сайту

Документация

Авторизация

 
Забыли свой пароль?
Регистрация

Подписка

Подписка на новости компании