Історія відвідування сайтів через журнали маршрутизатора 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

/ip proxy access add action=deny redirect-to=192.168.0.1/404 dst-host=:facebook

Далі постало питання, як же, власне, накопичувати і обробляти журнал відвідувань. Вбудованого чи іншого продукту від виробника не передбачено. Після читання документації та пошуку за тематичними форумами було знайдено продукт Webproxy-log. Продукт дещо незграбний, але підказує напрям (хоча для невеликого навантаження і він цілком пригодиться). Як це працює: 1. У налаштуванні призначення журналу додається розділ для передачі в syslog сервер.

/system logging action add name=proxylog target=remote remote=192.168.0.1 src-address=192.168.0.3

На цьому етапі роутер надсилатиме логі виду

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

Налаштування програми складнощів не викликає і досить описано в документації.

Врахувавши нескладний формат логів, не складно написати свій аналізатор журналів, що відправляються маршрутизатором і пізніше для власних цілей була написана невелика служба з веб-інтерфейсом, використовуючи Delphi та компоненти ICS, що зберігає журнали в бд на базі SQL server express.

Можливо все перераховане допоможе Вам заощадити час при вирішенні подібних завдань і трохи познайомить з можливостями маршрутизаторів даного виробника.