The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Система управления пользователями в Squid

31.08.2009 12:50

Представлен простой web-интерфейс для управления пользователями в Squid. Основные возможности:

  • Учет пользователей в сети, управление пользователями.
  • Аутентификация пользователей происходит по их IP адресам.
  • Учет трафика пользователя. Учет ведется через ipfw и путем анализа трафика по логам squid.
  • Просмотр набранной статистики. Отчет по выбранному пользователю (кто куда заходил).
  • Также установлена и немного подредактирована программа sqstat. Данный скрипт показывает кто в данный момент пользуется интернетом.


  1. Главная ссылка к новости (http://bsd.ucd.uz/sistema-upra...)
Автор новости: anonymous
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/23226-squid
Ключевые слова: squid, traffic
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, loukash (ok), 13:44, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Сделано довольно всё коряво, очень много надо что довести до ума и переделать."(с) Если даже автор так говорит, зачем это рекламировать?
     
     
  • 2.2, NameName (?), 13:54, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно, хочет развивать проект и нужны соучаснеги (:
     
  • 2.3, anonymous (??), 14:01, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Во первых, это не рекламируется. Просто хотел показать как можно сделать простую просматривалку статистики по пользователям. Чтобы начальство, зайдя на страничку, могли сами кому надо вырубить интернет, посмотреть кто где лазяет... Лучше подскажите где, что и как правильнее сделать, буду очень благодарен...
     

  • 1.4, ононим (?), 14:19, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    лучше lightsquid допилите. я скажу вам спасибо. если хотите, нпишу список того что там надо доработать.
     
     
  • 2.5, anonymous (??), 14:23, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Я Вам честно скажу, я не програмист. Просто увлекаюсь иногда понемногу такой деятельностью.
     
     
  • 3.6, ононим (?), 14:25, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Если вдруг освоите, будет хорошо. lightsquid - это просто перл скрипт для генерации статистики по сквиду в HTML
     
     
  • 4.7, anonymous (??), 14:53, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    :D. Побежал учить перл.
     

  • 1.8, Аноним (-), 15:16, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Та контора где начальник САМ будет вырубать инет, а не давать указания службам IT или админу.. не гуд контора.. каждый должен заниматься своим делом )) а не на все руки мастер! imho конечно
     
     
  • 2.9, anonymous (??), 15:50, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Та контора где начальник САМ будет вырубать инет, а не давать указания
    >службам IT или админу.. не гуд контора.. каждый должен заниматься своим
    >делом )) а не на все руки мастер! imho конечно

    В основном стоял вопрос о просмотре статистики, так в принцыпе с Вами полностью согласен.

     
  • 2.22, ra (??), 05:43, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Совершенно с вами согласен. НО. Такого начальства - море. То ли им интересно находить новые порноресурсы, то ли элементарное любопытство, то ли забота о моральном облике, то ли пытаются контролировать сотрудников - не знаю, но тема очень актуальная.
     

  • 1.10, Аноним (-), 17:07, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно отключать пользователя средствами Squid,
    например удалить из файла группы и
    /etc/init.d/squid reload

    Отключать пользователя будете по какому признаку?

     
     
  • 2.12, anonymous (??), 17:26, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Можно отключать пользователя средствами Squid,
    >например удалить из файла группы и
    >/etc/init.d/squid reload

    точнее squid -k reconfigure
    >
    >Отключать пользователя будете по какому признаку?

    захотел отключил, захотел включил.
    Скоро сделаю скрипт, который будет выключать пользователей по лимиту трафика.

     
  • 2.29, хакир (?), 16:15, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Можно отключать пользователя средствами Squid,
    > например удалить из файла группы и
    > /etc/init.d/squid reload

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

     

  • 1.11, Nas_tradamus (ok), 17:21, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.
     
     
  • 2.13, anonymous (??), 17:29, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.

    Я пробовал несколько раз, но то что я именно хотел, не получилось, тем более мне нужно было вести учет трафика через брандмауэр, чтобы точнее считался трафик, из-за этого возникла мысль писать с нуля.

     
     
  • 3.15, Nas_tradamus (ok), 17:51, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>SAMS юзал для этих целей. Приходилось допиливать напильником, но работало.
    >
    >Я пробовал несколько раз, но то что я именно хотел, не получилось,

    У меня тоже многое что не получалось в SAMS по началу. Да и юникс я только-только начинал осваивать и имел глупость ставить все из исходников на SLES :).
    Но когда допилил, получил полноценную систему с антивирусом и учетом трафика по логину (ncsa, домена не было). Авторизации по IP было мало - за одним компом могло работать несколько юзеров. Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).

    К счастью, я в этой конторе больше не работаю. :)

    >тем более мне нужно было вести учет трафика через брандмауэр, чтобы
    >точнее считался трафик, из-за этого возникла мысль писать с нуля.

    Здесь не понял. А Ваш скрипт умеет снимать статистику net-flow? :)

     
     
  • 4.17, anonymous (??), 19:10, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с
    >начальством почему так вышло (начальство могло посмотреть его полную статистику за
    >месяц).
    >
    >К счастью, я в этой конторе больше не работаю. :)
    >
    >>тем более мне нужно было вести учет трафика через брандмауэр, чтобы
    >>точнее считался трафик, из-за этого возникла мысль писать с нуля.
    >
    >Здесь не понял. А Ваш скрипт умеет снимать статистику net-flow? :)

    у нас в конторе стоит прозрачный прокси, на сколько я помню авторизация по логину в прозрачном режиме в сквиде не проходит... net-flow считать не умеет :). а на счет чтобы точнее, это я имел ввиду, кроме www трафика есть и другой, конечно вы скажите, вот можно настроить чтобы всё что нужно шло через squid, но этот вариант не подходит.

     
     
  • 5.20, Nas_tradamus (ok), 19:23, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>[оверквотинг удален]

    Извиняюсь, не заметил что ваш скрипт собирает статистику ipfw.
    Ну тогда, классно :).

    >можно настроить чтобы всё что нужно шло через squid, но этот
    >вариант не подходит.

    А разве через SQUID можно пропускать НЕ-http(s) трафик?

     
     
  • 6.25, Руслан (?), 09:08, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Да, можно ftp пропускать :)
     
  • 6.35, anonymous (??), 08:51, 02/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>>[оверквотинг удален]
    >
    >Извиняюсь, не заметил что ваш скрипт собирает статистику ipfw.
    >Ну тогда, классно :).
    >
    >>можно настроить чтобы всё что нужно шло через squid, но этот
    >>вариант не подходит.
    >
    >А разве через SQUID можно пропускать НЕ-http(s) трафик?

    я это и имел ввиду, всё через SQUID не пустиш.

     
  • 4.27, dq0s4y71 (?), 12:28, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).

    А зачем объясняться с начальством? У нас лимит выделяется на день каждый день, и если ты его "съел" за час - твои проблемы. До следующего дня ты просто доступ не получишь.

     
     
  • 5.28, Nas_tradamus (ok), 13:12, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Когда юзер превышал разрешенный трафик на месяц, его "интернет" блокировался и ему приходилось объясняться с начальством почему так вышло (начальство могло посмотреть его полную статистику за месяц).
    >
    >А зачем объясняться с начальством? У нас лимит выделяется на день каждый
    >день, и если ты его "съел" за час - твои проблемы.
    >До следующего дня ты просто доступ не получишь.

    Ну вот, если им был необходим доступ для работы, они начинали жаловаться админу. А админ отправлял к начальству, чтобы оно приняло решение давать доступ или нет.

    PS: как хорошо жить, если в здании есть провайдер, предоставляющий корпоративный анлим  :).

     
     
  • 6.30, dq0s4y71 (?), 17:23, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > PS: как хорошо жить, если в здании есть провайдер, предоставляющий корпоративный анлим  :).

    Особенно когда начальство не против этот анлим покупать :)

     

  • 1.14, Аноним (-), 17:42, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плох тот админ, что не написал считалку трафика :)
    Каждый час проходим по логу squid и сравниваем с лимитом
    пользователей, записанном в файле.
    При превышении лимита удаляем пользователя из acl-файла Squid.
    Для ускорения процесса начинать с последней обработанной строки лога.

    Написано на Perl.

     
     
  • 2.31, вломписатьникинабратьпароль (?), 20:32, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а еще быстрее
    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 милиона строк в месяц).
    развив тему, можно еще прикрутить вторую табличку с лимитами, еще одну функцию и из баша генерить список отключенных
     

  • 1.16, Аноним (-), 19:03, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На перле есть такая же подделка которая умеет все это и намного больше.
    http://stc.nixdev.org/index.php

     
     
  • 2.18, anonymous (??), 19:12, 31/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >На перле есть такая же подделка которая умеет все это и намного
    >больше.
    >http://stc.nixdev.org/index.php

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

     
     
  • 3.21, Aleksey (??), 01:16, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    И это правильно, свой велосипед он как-то роднее :) Хотя, конечно, обычно лучше идти простым путем.
     

  • 1.19, anonymous (??), 19:20, 31/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Каждый час проходим по логу squid и сравниваем с лимитом

    Не, не гут :) Я сначала так и делал, а потом написал "демона":
    tail -f access.log|megascript.pl &
    Так намного лучше. А в скрипте - всё что угодно. У меня там была запись в скуль, в котором проводились разные махинации, а потом генерировался лог для лайтсквида.

     
     
  • 2.23, Vitaly_loki (ok), 07:53, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем tail -f? Есть же именнованные каналы... man mkfifo
     
  • 2.32, вломписатьникинабратьпароль (?), 20:43, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Каждый час проходим по логу squid и сравниваем с лимитом
    >
    >Не, не гут :) Я сначала так и делал, а потом написал
    >"демона":
    >tail -f access.log|megascript.pl &
    >Так намного лучше. А в скрипте - всё что угодно. У меня
    >там была запись в скуль, в котором проводились разные махинации, а
    >потом генерировался лог для лайтсквида.

    а потом попадаем на превышение размера буфера и здравствуй потеря данных (сделать pipe из access.log и его нюхать-тоже самое)

     

  • 1.24, altuhov (ok), 08:25, 01/09/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Посмотрите мои проекты:
    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 - биллинг объединяющий информацию из двух вышеуказанных биллингов в одной таблице (суммирует)

    Посмотрите. Есть скриншоты, инструкции. Вдруг пригодится.

     
     
  • 2.26, Руслан (?), 09:16, 01/09/2009 [^] [^^] [^^^] [ответить]  
  • +/
    http://phpal.sourceforge.net/usb-flash-drive-cleaner
    > remove RECURCLE folder

    Всё остальное понравилось. :-)

     

  • 1.33, bliss (?), 23:15, 01/09/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сабж не смотрел, но у себя на предприятии подобную фигню пользуем уже пару лет. Писал в пору молодости, на Перл. Показывает текущие сессии, логи, пользователей, объединяет их в группы, выставляет скорость и фильтрацию по контенту и времени доступа. Количество трафика не ограничиваем. Режем сквидой скорость. Еще и почтовыми аккаунтами заведует. Очень удобно, хотя и с колокольни нынешнего дня, весьма и весьма примитивно. Если буду переписывать -- то на каталисте.
     
  • 1.34, вломписатьникинабратьпароль (?), 00:31, 02/09/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чутка поворчать. Многорукий, конечно, хорош, но 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
    Плох тот админ, что не свяжет сие поделие воедино:)
    ЗЫ: задарите инвайт на хабр-отпишу как срастить все это
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру