URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 4146
[ Назад ]

Исходное сообщение
"squid+sarg отключение по mac адресам"

Отправлено creapt , 21-Июн-06 00:40 
Сервер на freebsd 6.0
стоит squid+sarg в sarg.conf стоит лимит на скачивание определенного объема информации. Создается файл с IP адресами, которые превысили лимит, squid запрещает доступ этим адресам.
Также имеется привязка IP-MAC. Определенный интервал IP адресов выдается DHCP, у которого нет привязки IP-MAC.
Цель:
необходим скрипт, который бы из файла, созданным SARG, с IP с адресами, сопоставлял бы эти IP адреса, MAC адресам и создавал бы файл, в котором присутствовали бы только MAC адреса. Проще говоря, чтобы вместо файла с IP адресами был файл с MAC адресами.

Может, кто чего-нибудь может посоветовать на эту тему?


Содержание

Сообщения в этом обсуждении
"squid+sarg отключение по mac адресам"
Отправлено JavaScript , 25-Июн-06 15:15 
а если злобные юзвери начнут менять MAC-адреса ?

"squid+sarg отключение по mac адресам"
Отправлено creapt , 28-Июн-06 16:28 
>а если злобные юзвери начнут менять MAC-адреса ?

Пока что никто до этого не додумался.


"squid+sarg отключение по mac адресам"
Отправлено Sloboda , 26-Июн-06 13:03 
Проще всего, на DHCP закрепить за маками ай-пи адреса.
Если нет, либо писать свой sarg, либо попробовать пройтись sed-ом.
Если к тому же один ай-пи адрес в разное время может быть выдан разным макам, то задача становиться ещё интереснее.



"squid+sarg отключение по mac адресам"
Отправлено creapt , 28-Июн-06 16:46 
>Проще всего, на DHCP закрепить за маками ай-пи адреса.
>Если нет, либо писать свой sarg, либо попробовать пройтись sed-ом.
>Если к тому же один ай-пи адрес в разное время может быть
>выдан разным макам, то задача становиться ещё интереснее.

Все привязанные IP адреса к MAC в DHCP.conf прописаны. НО есть диапазон IP адресов, без привязки к MAC и DHCP этот диапазон выдает только новым компьютерам.
Так вот, если даже squid запретит доступ какого-то привязанного IP адреса к MAC, то владелец может себе выставить IP адрес из диапазона, который не имеет привязки IP MAC. Вот почему мне именно по MAC адресу нужно доступ запрещать. К сожалению я не знаю как реализовать это при помощи sarg, без скрипта, о действии которого я писал.

Спасибо за подсказку попробую посмотреть, что можно там с помощью sed сделать.


"squid+sarg отключение по mac адресам"
Отправлено Sloboda , 28-Июн-06 18:11 
>не имеет привязки IP MAC. Вот почему мне именно по MAC
>адресу нужно доступ запрещать. К сожалению я не знаю как реализовать

Подожди, тебе учет нужно сделать или запрет?

Жестко связать mac+IP можно либо arpwatch, либо фаерволом, либо сам squid собрать с поддержкой mac-acl-ей. Так что запрет сделать несложно.

А вот учет, при котором выдаются разные ай-пи-адреса, а потом по ним считать саргом...

На мой взгляд, проще и правильнее сделать авторизацию, тогда изменения mac-ов и ip-адресов не имеют значения. А sarg умеет по именам юзеров работать.


"squid+sarg отключение по mac адресам"
Отправлено universite , 28-Июн-06 21:49 

>На мой взгляд, проще и правильнее сделать авторизацию, тогда изменения mac-ов и
>ip-адресов не имеют значения. А sarg умеет по именам юзеров работать.

Не проще. Юзеры не смогут запомнить пароль.



"squid+sarg отключение по mac адресам"
Отправлено creapt , 28-Июн-06 22:50 
>
>>На мой взгляд, проще и правильнее сделать авторизацию, тогда изменения mac-ов и
>>ip-адресов не имеют значения. А sarg умеет по именам юзеров работать.
>
>Не проще. Юзеры не смогут запомнить пароль.


Тут я полностью согласен, к тому же раньше у нас была такая система, куча проблем с этими паролями. Приходили через день и спрашивали свой пароль.


"squid+sarg отключение по mac адресам"
Отправлено universite , 29-Июн-06 15:19 
Тогда надо настроить что-то типа VPN для подключения по локалке и на него повесить логин/пароль.
Тогда точно подмены никакой не будет.
А считать лучше связку mac-ip.
Да и в squid'e есть списки доступа по mac'у.


"squid+sarg отключение по mac адресам"
Отправлено creapt , 28-Июн-06 22:47 
>>не имеет привязки IP MAC. Вот почему мне именно по MAC
>>адресу нужно доступ запрещать. К сожалению я не знаю как реализовать
>
>Подожди, тебе учет нужно сделать или запрет?
>
>Жестко связать mac+IP можно либо arpwatch, либо фаерволом, либо сам squid собрать
>с поддержкой mac-acl-ей. Так что запрет сделать несложно.
>
>А вот учет, при котором выдаются разные ай-пи-адреса, а потом по ним
>считать саргом...
>
>На мой взгляд, проще и правильнее сделать авторизацию, тогда изменения mac-ов и
>ip-адресов не имеют значения. А sarg умеет по именам юзеров работать.
>
Мне наверное надо было более подробно описать ситуацию.
Привязка сделана через arp, диапазон IP адресов без привязки к MAC просто исключен из файла, где прописаны IP-MAC.
arpwatch стоит, но он отслеживает только смену адресов и не более того, на сколько я знаю.
squid собран как надо т.е. с mac-acl.
sarg считает статистику со всех адресов, но значение имеют только IP привязанные к MAC. IP адреса без привязки к MAC не интересуют, т.к. на них стоит ограничение по скорости.
В связи с этим мне нужно, чтобы только IP адреса, которые привязаны к MAC отключались при достижении заданного ограничения на закачку и при этом чтобы клиент не мог присвоить себе другой IP адрес.
На данный момент все работает почти как надо, но отключает только по IP адресу.
На сколько я знаю, хотя могу ошибаться, sarg не может генерировать файл с MAC адресами.

"squid+sarg отключение по mac адресам"
Отправлено creapt , 15-Июл-06 01:10 
Я все таки реализовал задуманное, следующим образом.
Может кому пригодиться.

Имеем:

файл1, следующего содержания
192.168.1.2 00:01:са:03:fa:fd
192.168.1.3 00:0f:са:cc:a5:12
192.................и т.д.

файл2 - генерируется sarg, следующего содержания:

192.168.1.2
192.168.1.5
......... и т.д.

цель: сравнить соответствия в файл1 и файл2, записать результат в файл3, который будет содержать только мас адреса, т.е

00:01:са:03:fa:fd
и т.д.

скрипт, который будет это делать, содержание скрипта:

sed -e 's/^/^/' -e 's/$/ /' < файл2 | grep -f - файл1 |awk '{print $2}' > файл3

примечание:
файл1

192.168.1.2 00:01:са:03:fa:fd

между 192.168.1.2 и 00:01:са:03:fa:fd должен быть обязательно пробел, а не tab. В случае, если вместо пробела будет стоять tab, то этот скрипт работать не будет.