Блог ИТ склеротика. Squid и SARG создание отчётности в Windows

Страницы

Расширенный поиск в статьях блога

30 марта 2012 г.

Squid и SARG создание отчётности в Windows

Вот возникла у меня задача такая, а именно есть в организации Firewall (железяка цисковая) даже 2, и мартрутизатор который рулит инетом когда основной канал пропадает он переключает на другой, и всё бы хорошо, но надо сделать статистику, то есть кто куда ходит. Тут само собой 2 варианта, либо пустая машина, тогда проблем нет вообще, туда Linux любой по вкусу, Apache ну или кто что любит, Squid для проксирования и редиректов запросов, ну и Sarg для создания отчётов, но вот в винде то не всё так просто.

В общем есть у меня сервак для антивирусной защиты, ну и ночью он бекапит, там ещё много чего есть, но факт в том что он на Windows само собой сервер, зачем не спрашивайте, работаю в немецкой фирме, стандарт такой, так вот забубенил я туда Squid, и Sarg сделал для отчётов, а в качесвте планировщика поставил Xstarter.

Теперь по подробнее о настройке!

 

  • Установка Squid само собой качаем порт для винды отсюда, далее ставим следующим образом:
  • Распаковываем дистрибутив в выбранный вами каталог. Автор рекомендует отказаться от использования в пути пробелов и использования длинных путей. Например: H:\Squid25
  • Установка Squid как системной службы. Соответственно: squid -i -f h:/squid25/etc/squid.conf -n Squid25_1 где h:/squid25/etc/squid.conf - путь к файлу конфигурации Squid, Squid25_1 - имя службы, можно использовать любое допустимое в NT. После этой команды служба будет сконфигурирована как автозагружаемая, рекомендую пока перевести ее в режим запуска вручную.
  • Редактируем файл squid.conf - особое внимание обращаем на то, что пути нужно писать как в Unix, "\" и "/" - не одно и то же.
  • Формируем кеш Squid. squid -z -f h:/squid25/etc/squid.confЗамечание: используйте awin32 или ufs
  • Проверяем что конфигурация кеша верна. start squid -f h:/squid25/etc/squid.conf Такой вариант запуска позволяет запустить Squid в виде консольного приложения. В случае каких либо ошибок они будут выведены и их следует исправить.
  • Переводим сервис Squid-а в автозапуск. Запускаем службу - можно работать.
  • Для своего удобства пишем три (можно и больше) bat-файлика: Старт squid-а: net start Squid25_1 Останов: net stop squid25_1 Переконфигурация: squid -n Squid25_1 -f h:/squid25/etc/squid.conf -k reconfigure

Несколько замечаний Squid.conf по умолчанию не создан копируме Squid.conf.sample и убираем Sample далее заходим в этот конфиг и правим его, нам нужно выствить порт по которому Squid будет слущать запросы, ищем строку http_port и раскоментируем её выставляя нужный нам порт. Далее ищем вот такой фрагмент:

#Recommended minimum configuration:

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT и добавляем к нему

acl our_networks src 192.168.1.0-192.168.1.1

Правило acl our_networks src указывает диапазон ИП для нашей сети от которых Squid будет принимать запросы, далее разрещаем принимать от этой сети запросы http_access allow our_networks далее http_access deny all в принципе для первоначальной настйроки это всё что нужно изменить для запуска прокси сервера.

Если хотим ограничить доступ Находим следующий параметр acl aclname srcdomain Пищем своё правило вот к примеру такое acl DOMD dstdomain "c:/squid/deny/domain.txt" это говорит о том что список доменов и соответсвенно поддоменов доступ к которым запрещён харниться в по следующему пути c:/squid/deny/domain.txt в этом файле, само правило называется DOMD, вы можете назвать его как захотите само собой. вот мой список доменов не разрещённых к показу в рабочее время:

.test.com

.sex.ru

.sex.com

.rufoto.com

.fuck.com

.fuck.ru

.xxxtriplexxx.com

.sparklingvids.com

.infocusteens.com

.ztod-movies.com

.getoffquick.com

.sexxxline.com

.officemilfsvids.com

.pantyhosedreamvids.com

.fetishglobe.com

.theonanistscorner.com

.teencumteen.com

.bluepistons.com

.loveplanet.ru

.analconfine.com

.lunka.com

.porevo.info

.naporno.ru

.kubikov.net

.bikinipageone.com

.greh.ru

.palevo.info

.dezinfo.net

.xtube.com

.erodrom.ru

.ben.ru

.2-3.ru

.sex-photo.ru

.mazda.ru

.e-xpedition.ru

.fion.ru

.mazda-major.ru

.gw-hover.ru

.huntwear.ru

.odnoklassniki.ru

.odnoklasniki.ru

.chinamobil.ru

.engine.t.rorer.ru

.mitsubishi-motors.ru

.ford.ru

.mymaika.ru

.chevrolet.ru

.hyundai.ru

.zod.ru

.primehouse.ru

.domproject.ru

.paddler.ru

.ozon.ru

.zagony.ru

.hunter-fish.ru

.energyfm.ru

.redtram.com

.hotlog.ru

.cars.auto.ru

.gmsn.ru

.proektservis.ru

.inosmi.ru

.mosdoma.ru

.irr.ru

.km.ru

.miel.ru

.phoenixcontact.com

.pik-estate.ru

.smart60.ru

.kiavostok.ru

.dnepropetrovskaya18.ru

.narod.ru

.forum.logan.ru

.playground.ru

.mobilchips.com

.drugasmuga.com

.renault.ru

.millertime.com

.akella.com

.vkontakte.ru

.yadro.ru

.list.ru

.novostroy.su

.nhl.com

.xuk.ru

.hitlist.ru

.begun.ru

.poselkispb.ru

.atwola.com

.icq.com

.rian.ru

.bannerhouse.ru

.su155.ru

.kmapjs.ru

.content.medialand.ru

.engine.adland.ru

.foto.ru

.shopfoto.ru

.lenspecsmu.ru

.m-industry.ru

.djv.ru

.esprit.fr

.esprit.de

.esprit.com

.esprit.ru

.allcafe.info

.elki-palki.ru

Далее если ва это нужно возможно определить время работы, то есть время в которое будет действовать то или иное правило находим следующую строку # acl aclname time [day-abbrevs] [h1:m1-h2:m2] и создаём к примеру такое правило acl worktime time MTWHF 09:30-18:30 это значит что с понедельнику по пятницу во время с 9.30 до 18.30 мы может ограничить или разрешить доступ вот к примеру я запретил доступ к своим запрещённым сайтам из списка domain.txt в рабочее время следующим образом:

http_access deny DOMD worktime http_access allow DOMD

Будьте внимательны эти строки должны быть вставлены до

http_access allow our_networks

Далее возможно запретить ещё и загрузку различного рода контента, для этого находим

#acl urld urlpath_regex [-i] \.sex$ ... # regex matching on URL path и пишем своё правило, вот к примеру acl media urlpath_regex .\mp3$ .\avi$ .\mpeg$ .\iso$ .\mpg$ .\avi$ .\wmv$ думаю тут всё понятно, записаны те типы файлов которые запрещены к загрузке

Далее запрещаем их Будьте внимательны эти строки должны быть вставлены до

http_access allow our_networks

http_access deny media

также можно запретить доступ одному хосту из вашей сети, сделать это можно так:

acl bad_host src 192.168.1.50

Будьте внимательны эти строки должны быть вставлены до

http_access allow our_networks

http_access deny bad_host

Вот собственно самый простой конфиг.

  1. Далее создаём статистику с Sarg
  2. Тут есть 2 способа или поднять IIS, а тогда встаёт вопрос лицензий или использовать Apache в связке с Mysql, нам ведь нужно только чтобы логи были доступны из браузера, тут выбор за вами, или можно просто иметь отчёты локально это проще всего.
  3. Я захотел иметь веб сервер, удобнее и офисы видят что статистика ведётся и могут её смотреть, так что по лишним местам перестали лазить быстро.
  4. Для этого качаем Sarg порт для Windows
  5. Далее распаковываем его и правим sarg.conf в sarg\etc\sarg.conf
  6. Первое выставляем язык я поставил language Russian_koi8
  7. Далее пишем где лежат файл с логами access_log c:/squid/var/logs/access.log
  8. Далее идут настройки с цветами и логотипами, это каждому своё
  9. После прописываем путь к бинарникам bin_dir c:/sarg/bin
  10. Далее путь куда будут класться отчёты output_dir C:\AppServ\www\report, это каталог откуда Ваш веб сервер берет данные
  11. Можно их сразу отправлять на E-MAil это как кому угодно
  12. Далее я прописал user_ip yes это говорит о том что заместо имени юзера будет выставляться его ИП, далее мы сможем используя файл user_names.txt задать для ип какие угодно имена, можно не выставлять этот параметр и он будет искать их в ДНС

Далее я ничего не менял, там в принципе и так всё прозрачно, из интересного только использование файла exclude-hosts.txt который говорит какие хосты надо исключить из отчёта, и типы отчётов какие создавать report_type

  • topusers
  • topsites
  • sites_users
  • users_sites
  • date_time denied
  • auth_failures
  • site_user_time_date
  • downloads

более ничего интересного я там не увидел для себя.

Создание ежедневных отчётов

Если вы попробовали создать отчёт то вы увидите что по умолчанию Sarg создаёт только общий отчёт с начала ведения логов до его конца, но вот мне надо было чтобы он создавал отчёты за день и вывешивал их на общее обозрение, для этого и я использовал Xstarter

Он абсолютно бесплатен для русскоязычных пользователей, так что можете юзать как хотите. То есть после установки я ввёл регулярное задание выполняющееся в 22,30 каждый день на выполнение поставил сам SARG а в параметрах запуска указал -d [DAY]/[MONTH]/[YEAR]-[DAY]/[MONTH]/[YEAR] таким образом получил аргументы текущего дня , которые указываются при запуске SARG с ключём -d Вот вроде и всё пишите если у кого возникнут трудности, с радостью отвечу При создании статьи частично использованы материалы с http://squid.opennet.ru

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free