у что же, после выполненных в предыдущих статьях операциях, у нас должен был получиться функционирующий сервер, выполняющий роль кеширующего прокси и файрвола одновременно.
В двух словах, что мы тут будум делать:
- Запретим юзерам ходить на [список сайтов] в рабочее время;
- Реализуем статистику посещений пользователями ресурсов;
Начнем с запретов. Для начала нам нужно будет создать файл, в котором будут перечислены в столбик слова, которые у нас запрещены в http-запросах. Возможно использование регулярных выражений, однако ваш покорный слуга пока только пытается в них разобраться. Гуглим, это интересно (=
У меня файл называется deny_hosts_access и лежит в /etc/squid. Вот его содержимое:
odnoklassniki
vkontakte
Собственно, здесь может быть что угодно — вы хозяин!
Далее, в squid.conf после строчек, декларирующих безопасные порты (Safe_ports), добавляем строки
acl deny_hosts_access url_regex "/etc/squid/deny_hosts_access"
acl morning time MTWHF 08:00-12:30
acl evening time MTWHF 13:30-17:00
В первой строке мы указали путь к файлу, содержащему запрещенные строки. В следующих двух определили отрезки времени «morning» и «evening», которые являются «рабочим временем».
Теперь же нужно это самое рабочее время сделать наиболее продуктивным. (= Добавляем перед строчками
http_access allow full_access
http_access allow lim_access
строки
http_access deny deny_hosts_access morning
http_access deny deny_hosts_access evening
Итак, мы запретили лазить по одноклассникам и вконтакту утром (до обеда) и вечером (после обеда и до конца рабочего дня). Какие же мы злые ]:->
Однако, на этом мы не остановимся. Возможно следующее будет реализовано через Ж, однако оно работает. Итак, мы будем показывать нашим бедным пользователям определенную страницу/картинку если они лезут на запрещенные нами сайты. Сделаем эдакое перенаправление.
Что же нам для этого потребуется? А потребуется нам своя страничка ошибки!
Для начала, укажем какую папку с ошибками мы используем (разница в языках и кодировках). В squid.conf добавим строку
error_directory /usr/share/squid/errors/Ukrainian-utf8
(в самой папке errors можно посмотреть доступные Вам варианты)
Ну и в конце концов, отредактируем файл ошибки. Для начала бекапните его, потому что потому. В случае невыполнения правил http_access, вызывается ошибка ERR_ACCESS_DENIED. Заменим ее содержимое на перенаправление (или просто заменим стандартный текст; мне по душе первое)
$ sudo nano /usr/share/squid/errors/Ukrainian-utf8/ERR_ACCESS_DENIED
Перенаправление выглядит так:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://mysite.com.ua/image.gif">
(Ссылку укажите свою, желаемую)
Всё! Перезапускаем сквид!
$ sudo /etc/init.d/squid restart
Ждем немножко и наслаждаемся примененными правилами. Теперь НИКТО не лазит на одноклассников в рабочее время (=
Ну, и второй пункт нашей статьи — статистика посещений ресурсов. Для этого я использую программу sarg. Установим её:
$ sudo apt-get install sarg
Она потянет за собой целую братию пакетов, и немудрено, ибо для показа результатов ему необходим веб-сервер.
Подгоняем конфигурацию (/etc/squid/sarg.conf) под себя. Вот главные строчки, на которые следует обратить внимание:
access_log /var/log/squid/access.log
...
output_dir /var/www/squid-reports
Создаем последний каталог, ежели его нет.
Запускаем сарж (неплохо б было его запуск пихануть в крон, здесь я не буду это описывать… пока что)
$ sudo sarg
Ура! Заходим изнутри сети на наш сервер, любуемся отчетами по адресу http://server/squid-reports/
P.S. Всё вышеизложенное писалось почти по памяти, ибо проделывалось месяц назад. Если Вы найдете ошибки, или недописки — укажите, я исправлю и буду благодарен! Удачи Вам в администрировании!
Комментариев нет:
Отправить комментарий