Представлен (http://bsd.ucd.uz/sistema-upravleniya-polzovatelyami-v-squid...) простой web-интерфейс для управления пользователями в Squid. Основные возможности:
- Учет пользователей в сети, управление пользователями.
- Аутентификация пользователей происходит по их IP адресам.
- Учет трафика пользователя. Учет ведется через ipfw и путем анализа трафика по логам squid.
- Просмотр набранной статистики. Отчет по выбранному пользователю (кто куда заходил).
- Также установлена и немного подредактирована программа sqstat. Данный скрипт показывает кто в данный момент пользуется интернетом.URL: http://bsd.ucd.uz/sistema-upravleniya-polzovatelyami-v-squid...
Новость: http://www.opennet.me/opennews/art.shtml?num=23226
"Сделано довольно всё коряво, очень много надо что довести до ума и переделать."(с) Если даже автор так говорит, зачем это рекламировать?
очевидно, хочет развивать проект и нужны соучаснеги (:
Во первых, это не рекламируется. Просто хотел показать как можно сделать простую просматривалку статистики по пользователям. Чтобы начальство, зайдя на страничку, могли сами кому надо вырубить интернет, посмотреть кто где лазяет... Лучше подскажите где, что и как правильнее сделать, буду очень благодарен...
лучше lightsquid допилите. я скажу вам спасибо. если хотите, нпишу список того что там надо доработать.
Я Вам честно скажу, я не програмист. Просто увлекаюсь иногда понемногу такой деятельностью.
Если вдруг освоите, будет хорошо. lightsquid - это просто перл скрипт для генерации статистики по сквиду в HTML
:D. Побежал учить перл.
Та контора где начальник САМ будет вырубать инет, а не давать указания службам IT или админу.. не гуд контора.. каждый должен заниматься своим делом )) а не на все руки мастер! imho конечно
>Та контора где начальник САМ будет вырубать инет, а не давать указания
>службам IT или админу.. не гуд контора.. каждый должен заниматься своим
>делом )) а не на все руки мастер! imho конечноВ основном стоял вопрос о просмотре статистики, так в принцыпе с Вами полностью согласен.
Совершенно с вами согласен. НО. Такого начальства - море. То ли им интересно находить новые порноресурсы, то ли элементарное любопытство, то ли забота о моральном облике, то ли пытаются контролировать сотрудников - не знаю, но тема очень актуальная.
Можно отключать пользователя средствами Squid,
например удалить из файла группы и
/etc/init.d/squid reloadОтключать пользователя будете по какому признаку?
>Можно отключать пользователя средствами Squid,
>например удалить из файла группы и
>/etc/init.d/squid reloadточнее squid -k reconfigure
>
>Отключать пользователя будете по какому признаку?захотел отключил, захотел включил.
Скоро сделаю скрипт, который будет выключать пользователей по лимиту трафика.
> Можно отключать пользователя средствами Squid,
> например удалить из файла группы и
> /etc/init.d/squid reloadбред.. я бы повешался делать это ради одного юзера.
группы squid умеет перечитывать, там выставляется таймаут.
статью не читал, давно юзаю ldap, и squid авторизует по группам, пользователей, комьпютеры, без всяких reload.
SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.
>SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.Я пробовал несколько раз, но то что я именно хотел, не получилось, тем более мне нужно было вести учет трафика через брандмауэр, чтобы точнее считался трафик, из-за этого возникла мысль писать с нуля.
>>SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.
>
>Я пробовал несколько раз, но то что я именно хотел, не получилось,У меня тоже многое что не получалось в SAMS по началу. Да и юникс я только-только начинал осваивать и имел глупость ставить все из исходников на SLES :).
Но когда допилил, получил полноценную систему с антивирусом и учетом трафика по логину (ncsa, домена не было). Авторизации по IP было мало - за одним компом могло работать несколько юзеров. Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).К счастью, я в этой конторе больше не работаю. :)
>тем более мне нужно было вести учет трафика через брандмауэр, чтобы
>точнее считался трафик, из-за этого возникла мысль писать с нуля.Здесь не понял. А Ваш скрипт умеет снимать статистику net-flow? :)
>[оверквотинг удален]
>трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с
>начальством почему так вышло (начальство могло посмотреть его полную статистику за
>месяц).
>
>К счастью, я в этой конторе больше не работаю. :)
>
>>тем более мне нужно было вести учет трафика через брандмауэр, чтобы
>>точнее считался трафик, из-за этого возникла мысль писать с нуля.
>
>Здесь не понял. А Ваш скрипт умеет снимать статистику net-flow? :)у нас в конторе стоит прозрачный прокси, на сколько я помню авторизация по логину в прозрачном режиме в сквиде не проходит... net-flow считать не умеет :). а на счет чтобы точнее, это я имел ввиду, кроме www трафика есть и другой, конечно вы скажите, вот можно настроить чтобы всё что нужно шло через squid, но этот вариант не подходит.
>>[оверквотинг удален]Извиняюсь, не заметил что ваш скрипт собирает статистику ipfw.
Ну тогда, классно :).>можно настроить чтобы всё что нужно шло через squid, но этот
>вариант не подходит.А разве через SQUID можно пропускать НЕ-http(s) трафик?
Да, можно ftp пропускать :)
>>>[оверквотинг удален]
>
>Извиняюсь, не заметил что ваш скрипт собирает статистику ipfw.
>Ну тогда, классно :).
>
>>можно настроить чтобы всё что нужно шло через squid, но этот
>>вариант не подходит.
>
>А разве через SQUID можно пропускать НЕ-http(s) трафик?я это и имел ввиду, всё через SQUID не пустиш.
>Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).А зачем объясняться с начальством? У нас лимит выделяется на день каждый день, и если ты его "съел" за час - твои проблемы. До следующего дня ты просто доступ не получишь.
>>Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).
>
>А зачем объясняться с начальством? У нас лимит выделяется на день каждый
>день, и если ты его "съел" за час - твои проблемы.
>До следующего дня ты просто доступ не получишь.Ну вот, если им был необходим доступ для работы, они начинали жаловаться админу. А админ отправлял к начальству, чтобы оно приняло решение давать доступ или нет.
PS: как хорошо жить, если в здании есть провайдер, предоставляющий корпоративный анлим :).
> PS: как хорошо жить, если в здании есть провайдер, предоставляющий корпоративный анлим :).Особенно когда начальство не против этот анлим покупать :)
Плох тот админ, что не написал считалку трафика :)
Каждый час проходим по логу squid и сравниваем с лимитом
пользователей, записанном в файле.
При превышении лимита удаляем пользователя из acl-файла Squid.
Для ускорения процесса начинать с последней обработанной строки лога.Написано на Perl.
а еще быстрее
cat access.log | sed -e 's/\"/\\\"/g' | sed -e "s/\'/\\\'/g" | awk ' {print strftime("%F",$1),strftime("%T",$1),$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$1 $2 $3 $4 $5 $6 $7 $8 $9 $10} ' | sed -e "s/ /\t/g" > prepare.log && \
mysql -h host -u user -ppassword -e "LOAD DATA INFILE \"prepare.log\" REPLACE INTO TABLE db.table;"
и встроенная функция в мускуль, и простейший bash скрипт, который дергает функцию
150к строк в минуту загоняет спокойно, подсчет статистики из баш скрипта занимает 0,3 сек за месяц (4 милиона строк в месяц).
развив тему, можно еще прикрутить вторую табличку с лимитами, еще одну функцию и из баша генерить список отключенных
На перле есть такая же подделка которая умеет все это и намного больше.
http://stc.nixdev.org/index.php
>На перле есть такая же подделка которая умеет все это и намного
>больше.
>http://stc.nixdev.org/index.phpв моем случае, я добился того что мне нужно было, и нацелено это было только для моих нужд. Просто поделился тем что я сделал, может быть кому-то такое же решение подойдет.
И это правильно, свой велосипед он как-то роднее :) Хотя, конечно, обычно лучше идти простым путем.
>Каждый час проходим по логу squid и сравниваем с лимитомНе, не гут :) Я сначала так и делал, а потом написал "демона":
tail -f access.log|megascript.pl &
Так намного лучше. А в скрипте - всё что угодно. У меня там была запись в скуль, в котором проводились разные махинации, а потом генерировался лог для лайтсквида.
а зачем tail -f? Есть же именнованные каналы... man mkfifo
>>Каждый час проходим по логу squid и сравниваем с лимитом
>
>Не, не гут :) Я сначала так и делал, а потом написал
>"демона":
>tail -f access.log|megascript.pl &
>Так намного лучше. А в скрипте - всё что угодно. У меня
>там была запись в скуль, в котором проводились разные махинации, а
>потом генерировался лог для лайтсквида.а потом попадаем на превышение размера буфера и здравствуй потеря данных (сделать pipe из access.log и его нюхать-тоже самое)
Посмотрите мои проекты:
http://phpal.sourceforge.net/alsamsbilling - биллинг для SAMS. Работает с базой логов в MySQL, которые туда заносит демон samsdaemon из файла access.log
http://phpal.sourceforge.net/allanbilling - биллинг для NetFLow. Работает с базой логов в MySQL, которые туда заносит flow-export из flows, созданных flow-capture, а на flow-capture можно слать через fprobe-ulog или с Cisco.
http://phpal.sourceforge.net/alsumbilling - биллинг объединяющий информацию из двух вышеуказанных биллингов в одной таблице (суммирует)Посмотрите. Есть скриншоты, инструкции. Вдруг пригодится.
http://phpal.sourceforge.net/usb-flash-drive-cleaner
> remove RECURCLE folderВсё остальное понравилось. :-)
Сабж не смотрел, но у себя на предприятии подобную фигню пользуем уже пару лет. Писал в пору молодости, на Перл. Показывает текущие сессии, логи, пользователей, объединяет их в группы, выставляет скорость и фильтрацию по контенту и времени доступа. Количество трафика не ограничиваем. Режем сквидой скорость. Еще и почтовыми аккаунтами заведует. Очень удобно, хотя и с колокольни нынешнего дня, весьма и весьма примитивно. Если буду переписывать -- то на каталисте.
Чутка поворчать. Многорукий, конечно, хорош, но http|https|ftp трафиком народ нонеча не довольствуется. Ему подавай smtp|pop3|imap, а также skype, icq, torrent и прочие `cat /etc/services`. Так что (вдогонку к аксиоме "плох тот админ, который не написал свой биллинг"), могу добавить, что самое вменямое (и с разделением на посещенные сайты, и на куда послана/откуда получена почта и т.д.) это связка из pptpd|mpd/freeradius/postfix|sendmail|qmail/squid/net-acct|firewall/pop3proxy/netflow/provider-billing
Плох тот админ, что не свяжет сие поделие воедино:)
ЗЫ: задарите инвайт на хабр-отпишу как срастить все это