Проверка кто работал по IP и логину пользователя

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

Проверка кто работал по IP и логину пользователя

Сообщение Игорь Вершинин » 07 июн 2005, 09:21

Может этот совет кому поможет.
Мы у себя для Сквида сделали следующее. Так как вводить каждый раз пароль лень на открытие браузера, а Сквид умеет вести логи по IP-адресам станций, то. Выход в Инет со станций возможен лишь когда на них залогинен юзер. Стало быть собираем с одной стороны логи Сквида, с другой логи со станций о том, кто и когда логинился. Простейшее сопоставление этих двух логов и дает нам эффект Single Sing-On, т.е. того о чем мечталось со времен Border Manager. :-)
После того, как мы это ввели у себя, решили сразу несколько задач. Во-первых, никакого дополнительного софта, обеспечивающего прозрачную идентификацию, в памяти компьютера не болтается. Во-вторых, работа рпользователя упростилась, ведь пароль вводить не надо каждый раз. В-третьих, честно говорим сотрам, такой-то объем бесплатно, дальше за деньги. и т.д.

Но есть одна проблема. Точнее несколько. Как ограничить доступ для "непревелигированных" пользователей? т.е. тех, кому нельзя "ходить" в Инет. И как устроить ежеминутный мониторинг с отсечением "неугодных"?

Есть мысль на уровне идеи. Во время логина запускать небольшой скрипт, говорящий о том, что такой-то пользователь залогинился на рабочей станции, во время логона, наоборот, вышел из сети. Эту информацию отправлять в какой-нибудь серверный скрипт, который определенным образом перестроит либо Squid Guard, либо Rejik. Никто не делал ничего подобного?
Аватара пользователя
Игорь Вершинин
 
Сообщения: 387
Зарегистрирован: 05 июн 2002, 20:34
Откуда: Волгоград

Re: Проверка кто работал по IP и логину пользователя

Сообщение Walery » 08 июн 2005, 14:56

Игорь Вершинин писал(а):Но есть одна проблема. Точнее несколько. Как ограничить доступ для "непревелигированных" пользователей? т.е. тех, кому нельзя "ходить" в Инет. И как устроить ежеминутный мониторинг с отсечением "неугодных"?
...
Никто не делал ничего подобного?


Я делал, но несколько по-другому - в squid'е есть такая вещь, как external_acl_type - авторизация внешним скриптом, а в Netware у пользователя свойство Network Address - в итоге был написан небольшой скрипт на перле, который конектиться к Netware как к LDAP-серверу, ищет пользователя по ip-адресу и проверяет наличие у этого пользователя групп типа
cn=сервер#время_от-время_до,ou=Internet,o=MRIYA
сервер - адрес или хост, куда этой группе разрешен выход в данное время или * для всех (можно было сделать это с помощью дополнительных атрибутов, но лень :) в итоге в контейнере получились группы вида: *#12:00-17:59), после чего собственно и разрешается или запрещается доступ данному пользователю.
Плюсы - независимость от статического ip-адреса, выходить в инет можно с любой машины, главное залогинится в сеть, в лог пишется сетевое имя.
Минусы - пока не удалось побороть зависание соединений к LDAP-серверу при его перезагрузке :(
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев

Уважаемый Walery

Сообщение skoltogyan » 08 июн 2005, 15:13

Можете живой пример привести, что в squid.conf добавили ?
skoltogyan
 
Сообщения: 1906
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Сообщение Walery » 08 июн 2005, 15:16

skoltogyan писал(а):Можете живой пример привести, что в squid.conf добавили ?


привожу:
external_acl_type eDir_acl ttl=300 negative_ttl=300 %SRC %DST /app/ldap_squid.pl
acl eDir external eDir_acl
http_access allow eDir
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев

в нем..

Сообщение skoltogyan » 08 июн 2005, 15:24

в нем
%SRC - IP адрес станции, откуда запрос
%DST - IP адрес откуда будет тянуться URL

?
skoltogyan
 
Сообщения: 1906
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: в нем..

Сообщение Walery » 08 июн 2005, 15:29

skoltogyan писал(а):в нем
%SRC - IP адрес станции, откуда запрос
%DST - IP адрес откуда будет тянуться URL

?


да
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев

а где там ИМЯ пользователя фигурирует ?

Сообщение skoltogyan » 08 июн 2005, 15:40

скрипт, на основании %SRC может заглянуть в LDAP и найти user который сейчас залогинен с этого IP.

А где список пользователей, которым можно пользоваться интернет ?

или я неверно понял идею ?
skoltogyan
 
Сообщения: 1906
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: а где там ИМЯ пользователя фигурирует ?

Сообщение Walery » 08 июн 2005, 15:52

skoltogyan писал(а):скрипт, на основании %SRC может заглянуть в LDAP и найти user который сейчас залогинен с этого IP.

А где список пользователей, которым можно пользоваться интернет ?

или я неверно понял идею ?


все правильно, я же писал, что в netware создаются группы с названием типа *#12:00-17:59, в которые я заношу пользователей в зависимости от их доступа, скрипт проверяет принадлежность пользователя таким группам, а потом разбирает название группы для того, чтобы получить время (у нас выход в инет для пользователей ограничен по времени), если просто нужно разрешить/запретить выход в любое время, делается группа *#00:00-23:59

а имя пользователя возвращает сам скрипт после проверки:
return "OK user=$uid";
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев

Re: Проверка кто работал по IP и логину пользователя

Сообщение Михаил Григорьев » 08 июн 2005, 18:23

Игорь Вершинин писал(а):Может этот совет кому поможет.
Мы у себя для Сквида сделали следующее. Так как вводить каждый раз пароль лень на открытие браузера, а Сквид умеет вести логи по IP-адресам станций, то. Выход в Инет со станций возможен лишь когда на них залогинен юзер. Стало быть собираем с одной стороны логи Сквида, с другой логи со станций о том, кто и когда логинился. Простейшее сопоставление этих двух логов и дает нам эффект Single Sing-On, т.е. того о чем мечталось со времен Border Manager. :-)


Всё бы хорошо, НО такая ситуэйшн:

Станция заразена новым вирусом !!!! (Антивири отдыхают!!!!)
Который стырил пароли юзеров
Или я не понял немного, предполагается беспарольный доступ в инет, НО с ограничением по IP? Даже если так, то вирусяга инсталит сервис, ну бага очередная в винде -> получили права Админа. И этот сервис начинает безбожно качать что нить из инета или еще что плохое делает !!!

Как тогда быть? Пока вы будите сверять логи там и сям у вас пару гиг сольётся, а это немалые деньги при розничной покупке трафика.

Walery а идея с external_acl_type неплохая !!! :yelclap: :beer:
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

к Walery

Сообщение skoltogyan » 08 июн 2005, 20:53

В Вашем случае в access.log попадают только IP адреса, без логинов ?
skoltogyan
 
Сообщения: 1906
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: к Walery

Сообщение Walery » 09 июн 2005, 11:27

skoltogyan писал(а):В Вашем случае в access.log попадают только IP адреса, без логинов ?


именно с логинами - скрипт в случае разрешения доступа пользователя возвращает строку
return "OK user=$uid";
например в squid возвращается
OK user=Denysenko
соответственно в access.log:
1118301066.108 803 denysenko.mriya TCP_MISS/200 429 GET http://toolbar.google.com/version2? Denysenko DIRECT/toolbar.google.com text/plain

как видно, в логе присуствует имя пользователя и sarg их прекрасно понимает
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев

тогда красиво это все.

Сообщение skoltogyan » 09 июн 2005, 11:36

если это не коммерческое - может выложите скрипты на всеобщее поедание ?
skoltogyan
 
Сообщения: 1906
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: Проверка кто работал по IP и логину пользователя

Сообщение Сергей Дубров » 09 июн 2005, 11:46

Walery писал(а):небольшой скрипт на перле, который конектиться к Netware как к LDAP-серверу, ищет пользователя по ip-адресу

А если пользователь залогинился с нескольких рабочих станций - одно имя, но несколько ip? В Network Address будет зафиксирован только последний ip, а быть как с другими вхождениями этого же юзера? Или наоборот - с одной машины (терминальный сервер, неважно, виндовый, ниховый) выходят в И-нет несколько пользователей - как в этом случае с соответствием ip - имя? В этом случае ведь в Network Address будет один ip для разных пользователей.
Аватара пользователя
Сергей Дубров
 
Сообщения: 2073
Зарегистрирован: 05 июн 2002, 06:07
Откуда: Новосибирск, ин-т ядерной физики СО РАН

Re: Проверка кто работал по IP и логину пользователя

Сообщение Walery » 09 июн 2005, 12:24

skoltogyan писал(а):если это не коммерческое - может выложите скрипты на всеобщее поедание ?


Выложил - ftp://ftp.mriya.com/pub/ldap_squid.pl

В связи с тем, что писалось для себя и быстро, код не сильно красивый :)
Ну и естественно в начале нужно будет подправить настройки для своей сети

Кстати, если кто-то покажет, как можно переконнектиться к серверу после его перезагрузки, буду очень рад, потому что сейчас приходится делать reload squid'у

Сергей Дубров писал(а):А если пользователь залогинился с нескольких рабочих станций - одно имя, но несколько ip? В Network Address будет зафиксирован только последний ip, а быть как с другими вхождениями этого же юзера?

В этом случае в Network Address будут находится все адреса, с которых залогинился пользователь, проверить достаточно просто - залогинится с нескольких машин и посмотреть хотя бы в NWAdmin'е... по крайней мере у меня так.

Сергей Дубров писал(а):Или наоборот - с одной машины (терминальный сервер...

А вот для логина нескольких пользоавтелей с одного ip вообще и для терминального сервера в частности такое решение не подходит :(
Walery
 
Сообщения: 64
Зарегистрирован: 17 мар 2005, 15:54
Откуда: Киев


Вернуться в *nix

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

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

cron