Debian файрвол и прокси — 4 из 4. Рюшечки

Ну что же, после выполненных в статьях 1, 2 и 3 операциях, у нас должен был получиться функционирующий сервер, выполняющий роль кеширующего прокси и файрвола одновременно.

В двух словах, что мы тут будум делать:

  • Запретим юзерам ходить на [список сайтов] в рабочее время;
  • Реализуем статистику посещений пользователями ресурсов;


Начнем с запретов. Для начала нам нужно будет создать файл, в котором будут перечислены в столбик слова, которые у нас запрещены в 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. Всё вышеизложенное писалось почти по памяти, ибо проделывалось месяц назад. Если Вы найдете ошибки, или недописки — укажите, я исправлю и буду благодарен! Удачи Вам в администрировании!

15 Responses to “Debian файрвол и прокси — 4 из 4. Рюшечки”

  1. dandy 6 Март 2009 at 9:15 #

    Настроил всё как тут советовалось, не идет трафик через файрвол. Если указать в браузере прохи прямо на порт 3128, то http идет, а остальное — почта, ася не идут. Где искать?

    • Посмотрите по каким портам ходит почта (думаю, вы разберетесь) и добавьте в файрволе переадресацию и этих портов.

  2. Да, валидаторы и прочая фигня тут у меня как-то пока не очень работают )) Смиренно прошу простить и обещаю разобраться)

  3. dandy 11 Март 2009 at 9:24 #

    По каким портам почта ходит я знаю, но по идее почтовый трафик squid не считает и просто должен пропускать. И прозрачность не работает, приходится явно указывать proxy:3128 хотя и redirect в iptables настроил и squid transparent прописал. Всё настроил точно как в Ваших статьях и не работает, моск сломал уже.

    • У меня были такие проблемы с третим сквидом, но и они решались (правда не помню как). Как правило всё оборачивалось на файрвол и приходилось копаться в нем.
      К сожалению, я пока слабо считываю информацию с астрала и так вот помочь не смогу )
      Предлагаю создать тему на форуме http://ibash.org.ru/forum/

  4. voral 23 Апрель 2009 at 11:04 #

    спасибо. Отличные статьи. Все сходу получилось. Теперь можно в спокойном режиме конфигурить дальше

  5. Driver 30 Апрель 2009 at 13:35 #

    по сути сквид не умеет ничего другого кроме http(s) траффика.
    обычные почтовые клиенты, толком не умеют использовать прокси (не будем считать всякие костыльные тулзы, заворачивающие все и вся на прокси).
    собственно ИМХО в том, что описанная настройка была заточена под корпоративную сетку, со своим почтовым сервером.

    PS: сквид собственно и позиционируется как only-http(s) прокси
    PPS: всяким банк клиентам можно и проброс на иптаблесе сделать

  6. 363342 2 Май 2009 at 10:36 #

    deny_info можно использовать, чтобы странички сквида не править.
    lightsquid вместо sarg можно поюзать.
    squid -k reconfigure, после изменений в squid.conf

    • Спасибо, сарж я выбрал в силу некоторого знакомства, гляну как-нибудь и на альтернативы. За squid -k reconfigure — отдельный сенкс.

  7. mixali4 12 Август 2009 at 22:58 #

    Очень подробно изложили. Прочитал все, закинул rss-ку. Спасибо. Проделывал нечто подобное на убунте серверной, на днях собираюсь мигрировать с нее на дебиан. Надеюсь, Ваши статьи помогут =)

  8. shaman 12 Январь 2012 at 16:07 #

    Отличный материал! Все 4 части очень помогли в настройке! Автору огромное спасибо. Пишите еще!

  9. shaman 12 Январь 2012 at 16:12 #

    И поменяйте путь к конфигу sarg:
    Подгоняем конфигурацию (/etc/!!!squid!!!/sarg.conf) под себя. Вот главные строчки, на которые следует обратить внимание

  10. shaman 12 Январь 2012 at 17:13 #

    ой, прошу прощения, у меня же debian =)

Добавить комментарий