Подсчет и ограничение трафика в ISA

Вопросы связанные с установкой и использованием межсетевых экранов (Firewall) и прокси серверов(Proxy) в сети организации.

Модератор: Модераторы

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 23 дек 2004, 11:06

Подскажите пожалуйста какими средствами можно вести подсчет и ограничение трафика пользователей. Можно ли это сделать стандартными средствами ISA.

Он здесь живет
Сообщения: 2394
Зарегистрирован: 19 дек 2003, 20:43
Откуда: Москва

Сообщение Harry33 » 23 дек 2004, 11:15

Admin
Подсчет можно вести. В ISA есть встроенные средства отчетности. Можно так же использовать ПО сторонних разработчиков для построения отчетов.
Что имеется ввиду под "ограничением трафика"?
Знания, которые нельзя применить - бесполезны

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 23 дек 2004, 11:18

Я имею ввиду подсчет входящего и исходящего трафика,и запрет доступа к интернет в случае его превышения.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 23 дек 2004, 11:26

Admin
в ad храним лимит для каждого пользователя.
логи isa — в любую базу. access, ms sql, oracle…
в ad создаём группу, для которой будет ограничен трафик.
пишем скрипт (vbs), где в цикле по пользователям домена (дерева) будем анализировать поглощённый каждым трафик и, в случае его превышения, помещать в упомянутую группу.
в целом, это всё. работы на неделю.
нет времени разбираться — наймите того, кто знает.

Активный пользователь
Сообщения: 185
Зарегистрирован: 09 дек 2004, 17:12
Откуда: Жуковский

Сообщение Admin » 23 дек 2004, 11:30

Я чемто задним чую что у меня на такой скрипт знаний не хватит.

хм...
Аватара пользователя
Сообщения: 611
Зарегистрирован: 07 апр 2004, 17:10
Откуда: ссср

Сообщение Stratofortress » 23 дек 2004, 12:24

Admin
учиться никогда не позно. ;)
вот, что постил куда-то когда-то. ;)
что есть.
0. не хочется постить неуниверсальный код
1. логи isa пишутся в… базу oracle. так уж исторически сложилось. так что есть нюансы.
запрос:
Код
query="SELECT  upper(CLIENT) USERNAME, sum(INB) INBOUND " & _
   "FROM (SELECT  substr(CLIENTUSERNAME, instr(CLIENTUSERNAME, '\')+1, 32) CLIENT," & _
   "bytessent INB " & _
   "FROM  WEBPROXYLOG " & _
   "WHERE " & _
   "LOGDATE>=to_date('" & dFrom & "', 'dd.mm.yyyy') " & _
     "and  " & _
       "LOGDATE<=to_date('" & dTo & "', 'dd.mm.yyyy') " & _
            "and " & _
                 "CLIENTUSERNAME <> 'anonymous' " & _
        "UNION ALL " & _
    "SELECT  CLIENTUSERNAME CLIENT, " & _
                   "bytesrecvd INB " & _
    "FROM  FIREWALLLOG " & _
    "WHERE LOGDATE>=to_date('" & dFrom & "', 'dd.mm.yyyy') " & _
     "and  " & _
          "LOGDATE<=to_date('" & dTo & "', 'dd.mm.yyyy') " & _
            "and " & _
                 "CLIENTUSERNAME <> 'anonymous') " & _
                                  "where " & _
                 "CLIENT like '%" & username & "%' " & _
   "group by upper(CLIENT) " & _
   "order by 2 desc"

[/code]

запрос в данном случае не оптимален. написан для получения трафика за любой период.

2. заводим глобальную группу. скажем, "Traffic leaders". этой группе в isa management ставим deny access (ну, или где этот эксесс эллоу, там эту группу исключам)
для отключения пользователя достаточно поместить его в указанную групу. функция в скрипте:

Код
sub AddUserToGroup(username, groupname, domain)
Dim Group
    on error resume next
    err.clear
    Set Group = GetObject("WinNT://" & domain & "/" & groupname)
    Group.Add ("WinNT://" & domain & "/" & username)
    if err <  0 then
        WScript.Echo "Не могу добавить '" & username & "' в группу '" & groupname & "'"
    Else
        Wscript.Echo "Добавлен '" & username & "' в группу " & groupname & "'"
    end if
end sub

[/code]


3. для пользователей. в свойствах пользователя->addfress-поле zip/postal code ("postalcode") будем использовать для храниения персонального лимита (придётся руками проставить — что делать? хотя, можно так же написать скрипт).

в цикле перебираем всех пользователей домена (gc в идеале), получаем его лимит, в запрос к бд подставляем полученное имя пользователя. запрос возвращает трафик. сравниваем. прнимаем решение об ограничении. если да, то помещаем в группу "Traffic leaders".

Код
Set cnn = CreateObject("ADODB.Connection")
    '-- Create ADO objects
    Set rst = CreateObject("ADODB.Recordset")
    Set cmdo = CreateObject("ADODB.Command")
    '-- Open connection
    call connect_db 'Creates the cnn object
strQuery = "<GC://" & strDNSDomain & ">;" & strFilter _
 & ";distinguishedName;subtree"

objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False

' Enumerate users.
Distinguished Name to the file.
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
 strUN = objRecordSet.Fields("samaccountname")
 strL = objRecordSet.Fields("postalcode")




[/code]


и так далее в том же духе.
читаем с этого ресурса http://www.html.dk/dokumentation/vbscri ... ossary.htm
нет времени разбираться — наймите того, кто знает.

Вернуться в Межсетевые экраны (Firewall) и Прокси серверы (Proxy)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27