В процессе моего внедрения ubuntu и freeBSD на предприятии возникла таки необходимость отслеживать насколько рационально используется интернет канал: куда и сколько ходят в интернет. Настроить систему я решил на давно и исправно работающем компьютере под управлением freeBSD 7.1, единственная функция которого до этого была шлюз интернета для локальной сети.
Итак, в качестве исходных данных —
— freeBSD 7.1;
— локальная сеть 192.168.0.0/24;
— желание смотреть кто и сколько ходит в интернет.:) Пока только смотреть — меры по ограничению и запретам можно будет прикрутить позже.
Для этого мне понадобятся:
1. прозрачный прокси squid;
2. веб сервер apache;
3. анализатор логов прокси сервера sarg.
Перед установкой я скачал и установил новое дерево портов, удалив старое:
cd /usr
wget 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz'
rm -rf ./ports
tar xvfz ports.tar.gz
1. Установка squid:
cd /usr/ports/www/squid
make install clean
Чтоб получить минимальный конфиг squid, который позволит мне собирать статистику пользования интернет без дополнительных настроек браузеров пользователей (т.е. прокси — прозрачный), я так отредактировал файл /usr/local/etc/squid/squid.conf
:
vi /usr/local/etc/squid/squid.conf
visible_hostname localhost.localdomain
http_port 3128 transparent
cache_effective_user squid
cache_effective_group squid
cache_dir ufs /usr/local/squid/cache 220000 64 512
#директория для кеша где 220000 - количество мегабайт для него,
#64 - количество каталогов первого уровня, 512 - второго
cache_access_log /var/log/squid/access.log squid
#собственно файл статистики
acl LocalNet src 192.168.0.0/24
acl all src 0.0.0.0/0.0.0.0
http_access allow LocalNet
http_access deny all
Потом создал директорию для кеша:
cd /usr/local
mkdir ./squid
cd ./squid
mkdir ./cache
Затем в файле фаервола (у меня — /etc/ipfw.rules
) создал правило перед форвардингом NAT:
vi /etc/ipfw.rules
...
ipfw -q add 081 fwd 127.0.0.1,3128 tcp from $netin to any 80 via $oif
...
где
netin="192.168.0.0/24"
— моя локальная сеть;
oif="age0"
— сетевая, в которую включен провайдер интернета.
Для применения правила перезапустил фаервол:
/etc/rc.d/ipfw restart
и добавил в /etc/rc.conf
строки:
squid_enable="YES"
#для сквида
apache22_enable="YES"
accf_http_load="YES"
#для веб сервера apache
2. Установка apache22:
cd /usr/ports/www/apache22
make install clean
В ходе установки, в появившемся окошке с выбором опций я пометил крестиками все пункты с упоминанием mod_proxy
и mod_cgid
— без них не хотел стартовать apache. После установки отредактировал в файле /usr/local/etc/apache22/httpd.conf
параметр ServerName
до такого вида:
vi /usr/local/etc/apache22/httpd.conf
...
ServerName www.hostname:80
...
где hostname
— параметр записанный в файле /etc/rc.conf
Затем выполнил в оболочке:
kldload accf_http
— загрузка модуля для работы apache.
Для запуска, перезапуска и остановки веб сервера используются команды:
apachectl start, apachectl restart, apachectl stop
соответственно.
Запустил apache:
apachectl start
После выполнения, если нет ошибок, можно посмотреть запустился ли процесс httpd и если нет, то смотреть логи запуска:
vi /var/log/messages
vi /var/log/httpd-error.log
3. Установка Sarg:
cd /usr/ports/www/sarg
make install clean
После установки сначала создал на локальном сервере папку, куда sarg выведет аналитику логов squid:
cd /usr/local/www/
mkdir ./squid_reports
потом поправил конфиг sarg, где редактировал строки:
vi /usr/local/etc/sarg/sarg.conf
access_log /var/log/squid/access.log
#из настроек squid - файл статистики
temporary_dir /tmp
#временная директория
output_dir /usr/local/www/squid_reports
#сюда сарг сложит аналитику
Аналитика логов прокси сервера будет представлять из себя несколько связанных веб страничек — мини-сайт. Чтобы apache при обращении к себе понимал, куда ему перенаправлять пользователя — в моем случае меня на просмотр статистики, нужно либо по имени, либо по порту идентифицировать мою веб страницу со статистикой. Для этого я в файле конфига апача добавил порт для прослушивания и строку включения конфига «виртуального хоста» моей веб страницы со статистикой:
vi /usr/local/etc/apache22/httpd.conf
...
Listen 80
Listen 8001
...
Include /usr/local/etc/apache22/Includes/squid_reports.conf
#здесь положим конфиг виртуального хоста статистики
Т.е. теперь при обращении из браузера компьютера локальной сети по адресу http://локальный_IP_адрес_веб_сервера:8001 я должен попадать на гланую страницу своей статистики, осталось только создать сам конфиг виртуального хоста в моем случае такой:
vi /usr/local/etc/apache22/Includes/squid_reports.conf
DocumentRoot /usr/local/www/squid_reports
ServerName 192.168.0.1
#локальный IP адрес моего веб сервера
AddHandler cgi-script .cgi
AllowOverride All
order allow,deny
Allow from 192.168.0.223
Allow from 192.168.0.140
#доступ к просмотру будет только у тех, кому задам явно:)
Ну вот и все:)
Перезагрузил веб сервер, запустил в шелле:
sarg
и пошел из браузера смотреть кто сколько налазил по интеренетам и где:)
Статья не претендует на звание мануала а лишь описывает частный случай минимальной установки и настройки. для дальнейших манипуляций рекомендую читать мануалы и гуглить)
Всё это конечно прекрасно, но вопрос такой: как удалить её с компьютера?? В какой она папке??:))) А то обнаружила у себя тут чисто случайно…
что удалить то????
достаточно сделать
#portsnap fetch extract ; portsnap fetch update
вместо скачивания
а сарг очунь уж тугой парсер и если юзверей около 300 как в моём случае то он за неделю уже вылетает с ошибкой
рекомендую lightsquid ))
ttys — портснапом вы кажется лишь обновите порты, при чем тут удаление сквида или сарг?
Может я консервативен, но мне больше по душе nat с нарезкой скоростей если нужно)