mikrotik история посещения сайтов
Статистика посещений на Mikrotik
WebProxy-Log являет собой приложение, которое собирает логи с маршрутизатора Mikrotik для последующей обработки. Также данная программа имеет интерфейс просмотра журналов. Самое важное получить данный файл логов, а потом уже, с помощью созданного скрипта, можно выводить статистику в нужном нам формате.
Открываем панель управления маршрутизатором Mikrotik через Winbox. Далее вкладку «IP => Web Proxy«. На вкладке General устанавливаем галку рядом с Enabled и вводим параметры точно так же, как на изображении:
Далее заходим в «System => Logging«. На вкладке Action нажимаем на «+«. Поле «Name» изменяем на «WebProxyLog«, «Type» изменяем на «remote«. В поле «Remote Address» пишем адрес компьютера на котором установлена программа WebProxy-Log.
Переходим во вкладку «Rules«, нажимаем на «+«. В поле «Topics» выбираем «web-proxy«, в поле «Prefix» пишем «Proxy«, а на вкладке «Action» выбираем «WebProxyLog«.
Теперь открываем New Termenal и пишем правило для NAT:
И открываем UDP порт под номером 514.
На данном этапе настройка Mikrotik завершена. Теперь передаем эстафету программе WebProxy-Log.
Устанавливаем и запускаем программу, после чего в окне «General settings» указываем IP address: 192.168.1.50. «UDP Port» указываем 514, «Buffer» указываем «400«, «Write log to» Указываем путь на каталог, где будет лежать файл журнала, в параметре «Import from» указываем путь на каталог, откуда будет импортироваться файл журнала, путь «DB location» оставляем по умолчанию.
Если файлы логов не создаются, проверьте параметры брандмауэра. Должен быть разрешен для входящих соединений 514 порт по протоколу UDP.
Далее с помощью программы мы можем получать статистику посещений, но, самое главное, у нас каждый день формируются текстовые файлы с записями логов, которые мы можем разбирать в любом необходимом нам формате.
История посещения сайтов через журналы маршрутизатора Mikrotik
В своей работе мне часто приходится использовать данные маршрутизаторы для решения своих задач. В данном случае, необходимо было предоставить доступ в интернет через роутер RB450G, имея возможность блокировать определенные сайты по маске имени и сохранять историю посещений. Далее будет показан пример решения такой задачи с использованием бесплатного ПО.
Для начала было решено настроить прозрачный прокси. В роутере есть свой Web-proxy, чтобы сделать его прозрачным выполняем согласно примеру в документации
code>ip firewall nat add in-interface=ether1 dst-port=80 protocol=tcp action=redirect to-ports=8080 chain=dstnat
ip proxy set enabled=yes port=8080
что перебрасывает запросы по 80(HTTP) порту на порт прокси сервера 8080. Теперь можно добавить блокируемые адреса, например так
/ip proxy access add action=deny redirect-to=192.168.0.1/404 dst-host=:facebook
В данном случае будут блокироваться запросы содержащие слово «facebook» и переадресовываться на внутреннюю страницу 192.168.0.1/404 (что конечно же необязательно). После двоеточия в параметре dst-host можно использовать и регулярные выражения.
Далее встал вопрос, как же, собственно накапливать и обрабатывать журнал посещений. Встроенного или иного продукта от производителя предусмотрено не было. После чтения документации и поиска по тематическим форумам был найден продукт Webproxy-log. Продукт несколько топорный, но подсказывающий направление (хотя для небольшой нагрузки и он вполне сгодится). Как это работает:
1. В настройке назначения журналирования добавляется раздел для предачи в syslog сервер.
/system logging action add name=proxylog target=remote remote=192.168.0.1 src-address=192.168.0.3
192.168.0.1 — адрес syslog сервера, в который мы будем направлять журнал. 192.168.0.3 — внутренний адрес маршрутизатора.
2. Создадим раздел самого журнала, который будет использовать созданное назначение и направлять туда логи прокси сервера
.
/system logging add topics=web-proxy action=proxylog
На этом этапе роутер будет отсылать логи вида
web-proxy,account 192.168.0.59 GET imgcdn.ptvcdn.net/pan_img/appDownload/PandoraService/Service_Info.
xml action=allow cache=MISS
web-proxy,debug GET /pan_img/appDownload/PandoraService/Service_Info.xml HTTP/1.1
web-proxy,debug Cache-control: no-cache
web-proxy,debug Pragma: no-cache
web-proxy,debug Host: imgcdn.ptvcdn.net
web-proxy,debug Accept: text/html, */*
web-proxy,debug Accept-Encoding: identity
web-proxy,debug User-Agent: Mozilla/3.0 (compatible; Indy Library)
web-proxy,debug X-Proxy-ID: 1074695054
web-proxy,debug X-Forwarded-For: 192.168.0.59
web-proxy,debug Via: 1.1 192.168.0.3 (Mikrotik HttpProxy)
web-proxy,debug
где с префикса web-proxy,account будет записан адрес пользователя пославшего запрос, и сам запрос.
3. В качестве сервера можно использовать вышеуказанный продукт, который состоит из двух частей:
WebProxy Log Catcher — приложение (как служба не устанавливается) сам простой syslog сервер, собирающий логи для последующей обработки и добавляющий метки времени.
WebProxy Log — интерфейс просмотра журналов, при каждом запуске импортирующий накопленные сборщиком логи в локальную БД.
Настройка приложения сложностей не вызывает и достаточно описана в документации.
Учтя несложный формат логов, не сложно написать свой анализатор журналов отправляемых маршрутизатором и позже для собственных целей была написана небольшая служба с вэб-интерфейсом, используя Delphi и компоненты ICS, сохраняющая журналы в бд на базе SQL server express.
Возможно, всё перечисленное поможет Вам сэкономить время при решении подобных задач и немного познакомит с возможностями маршрутизаторов данного производителя.
Статистика посещений на Mikrotik с помощью WebProxy-Log
После чего наша настройка отразится во вкладке Action.
Переходим во вкладку Rules
mikrotik при формировании логов делает очень много записей которые нам не нужны, мы добавим исключения. Добавим аналогично правило со значением! debug (знак! определяет исключение).
После чего наша настройка отразится во вкладке Rules.
Теперь открываем New Termenal и пишем правило для NAT:
— /ip firewall nat
add action=redirect chain=dstnat comment=«Redirect port 80 request to Web Proxy» disabled=no =80 protocol=tcp =8080
— Открываем UDP порт под номером 514.
— chain=dstnat protocol=udp =514 action= = =514
— Далее заходим в File => Import logs.
— Снимаем галочку на Archive imported *.log files.
— Выбираем путь к файлу.
— Нажимаем Import.
— Соглашаемся со всем.
— Выбираем IP адрес в Select user:
— Выбираем дату с какого по какое в Select date range:
— Нажимаем кнопку Generate.
Получаем статистику, как показано ниже:
СТАТИСТИКА ПОСЕЩЕНИЙ НА MIKROTIK С ПОМОЩЬЮ WEBPROXY-LOG
После чего наша настройка отразится во вкладке Action.
Переходим во вкладку Rules
mikrotik при формировании логов делает очень много записей которые нам не нужны, мы добавим исключения. Добавим аналогично правило со значением! debug (знак! определяет исключение).
После чего наша настройка отразится во вкладке Rules.
Теперь открываем New Termenal и пишем правило для NAT:
— /ip firewall nat
add action=redirect chain=dstnat comment=«Redirect port 80 request to Web Proxy» disabled=no =80 protocol=tcp =8080
— Открываем UDP порт под номером 514.
— chain=dstnat protocol=udp =514 action= = =514
— Далее заходим в File => Import logs.
— Снимаем галочку на Archive imported *.log files.
— Выбираем путь к файлу.
— Нажимаем Import.
— Соглашаемся со всем.
— Выбираем IP адрес в Select user:
— Выбираем дату с какого по какое в Select date range:
— Нажимаем кнопку Generate.
Получаем статистику, как показано ниже:
Анализ посещаемости интернета через Mikrotik
[admin@MikroTik] > ip firewall address-list print
Flags: X — disabled, D — dynamic
# LIST ADDRESS TIMEOUT
1 local 192.168.13.0/24
[admin@MikroTik] > ip firewall filter print
Flags: X — disabled, I — invalid, D — dynamic
0 chain=forward action=drop src-address=192.168.44.0/24
dst-address=!10.7.8.38 dst-address-list=local log=no log-prefix=»»
После того, как WebProxy на Mikrotik настроен и используется переходим в элемент логирования:
windox — IP&MAC — user&pass — System — Logging — вкладка Actions — Add
А после нажимаем Apply — OK, затем все также находясь в элементе логирования Logging переходим на вкладку Rules (Правила) — Add
А после нажимаем Apply — OK
После чего нужно добавить еще одно правило в NAT для пересылки всех сообщений генерируемых Mikrotik на систему в частности это будет рабочая станция под управлением Windows 7 Professional SP1 на которую в последствии будет развернута программа по сбору и обработке логов именуемая, как WebProxy-Log:
windox — IP&MAC — user&pass — IP — Firewall — вкладка NAT — Add
А после нажимаем Apply — OK, где 10.7.8.38 — это IP-адрес рабочей станции (W7X86) на которую я сейчас поставлю приложение WebProxy-Log предварительно скачав его с официального сайта:
Отключаю брандмауэр на системе прежде чем запустить установщик:
C:\Windows\system32>NetSh Advfirewall set allprofiles state off
Создаю каталог для хранения логов:
C:\Users\aollo>mkdir c:\logs\daily
Права доступа у этого каталога должны быть следующими:
C:\Windows\system32>icacls c:\logs
NT AUTHORITY\Прошедшие проверку:(OI)(CI)(M)
Если по-русски, то отключено наследование, и у всех пользователей прошедших проверку на запись полный доступ в данный каталог.
Запускаю установщик скачанного приложения (webproxy-log-setup-1504b).
Select the language to use during the installation: English
Select Components: Full db access, log catching and import
После запускаю с рабочего стола ярлык: WebProxy Log (wplog.exe) и тут ну в прочем как обычно чего-то в системе Windows 7 x86 не хватает, а именно: Macromedia Flash ActiveX Control 6.0.0.0 ( https://get.adobe.com/ru/flashplayer/ ), можно прервать установку и устранить, а можно проигнорировать — я выбрал пока второй вариант, следом появилось запущенное окно настроек программы где нужно указать:
C:\logs\
и не забываем сохранить и применить внесенные изменения нажатием по кнопке Apply — Да — Да — OK (надпись: Settings are successfully saved!) — Да, окно настроек можно закрыть крестиком.
Проверяю, что система ожидает прием логов на порт 514:
Все отлично двигаюсь дальше.
После в окне программы (WebProxy Log * 1.5.0.4 BETA) проделываем следующее:
File — Import Logs —
*.log files source location: C:\logs\
Archive import *.log files: снимаем галочку, т. к. хотим видеть статистику посещений за больший период.
Следом нажимаем Import
После чего уже в основном интерфейсе программы WebProxy Log (1.5.0.4 BETA),
выбираю пользователя (Select user: 192.168.44.254), у меня один тестовый компьютер который подключен к сети 192.168.44.0/24, затем выбираю дату или диапазон (From: 25.06.2016 To: 25.06.2016) и нажимаю Generate.
Вот она статистика
На заметку: может так случиться что Ваша система не будет подхватывать логи посылаемые ей другими системами, в этом случае попробуйте просто ее перезагрузить и после зайдя в каталог c:\logs\ обнаружите сформированные файлы:
Чтобы подгрузить новую статистику порядок действий следующий:
На заметку: Порой Вам будет казать, что все это не работает, но я хочу разубедить Вас — оно работает, просто по большей части большинство популярных ресурсов переходят с http на https префикс в доступе к своим ресурсам, а данный web proxy это не понимает и потому и не логирует.
Пуск — Все программы — WebProxy Log —File — Import logs, проверяю, что
*.log files source location: c:\logs\
и галочки сняты с настроек: Backup database & Archive imported *.log files
а после нажимаем кнопку Import, если же файл текущей даты не изменился, к примеру как у меня: C:\logs\daily2016-06-25.log. То нужно завершить процесс организации syslog-сервера на этот системе и запустить все заново, к примеру через bat-файл запущенный с правами Администратора:
taskkill /F /IM wplcatcher.exe /T
taskkill /F /IM wplog.exe /T
После запускаем все по новой или же подождать и снова попробовать Import.
На заметку: При перезагрузке системы WebProxy Log запуститься автоматически, т. к. он прописан в меню «Автозагрузка»: «C:\Users\aollo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\WebProxy Log Catcher.lnk»
Итак, я смог самое главное для себя разобрать как сформировывать отчеты включенной настройки прокси на Mikrotik’е, вот только они не особо информативны и вызывают стойкое желание вообще забросить эту идею, сюда бы sarg было бы более информативно. На кого рассчитана эта программа не известно. Вообще я просто хотел опробовать многочисленные упоминания встречаемые мною в интернете дабы потом уже на основе этого усовершенствовать формирование логов хождения пользователями по всемирной паутине. Ладно хватит шутить на эту тему, более или менее заметка работоспособна и цель поставленная в самом начале данной заметки выполнена. А пока собственно и все, с уважением автор блога — ekzorchik.

























