Переживаю сейчас жуткий завал на работе, поэтому нет времени на написание статей. Но есть кое-что, о чём хотелось бы рассказать. Прокси-сервер Squid, применение которому можно найти практически везде!
Будем ставить его на Debian, а потом потренируемся создавать списки доступа для гибкой фильтрации и кэширования трафика.
Установка
Итак, тестовая виртуальная машина с Debian 7 на борту. 2 сетевых интерфейса, 192.168.1.8 – смотрит в мою родную локалку. 192.168.0.1 – смотрит в виртуальную локалку, там будем создавать сеть демонстрацию из машины WinXP.
Ставим сквид весьма банально:
Процесс установки протекает без особых проблем. Вот уже и готово!
Чуть не забыл! Нам нужно заворачивать весь HTTP-трафик через сквид прозрачно от пользователя, поэтому создадим правило файрволла (которые я переписал в файл /etc/iptables.rules):
Затем файл сделан исполняемым и выполнен:
# chmod +x /etc/iptables.rules
# /etc/iptables.rules
Теперь все пакеты, приходящие с интерфейса eth1, с адресом источника из сети 192.168.0.0/24, протокол tcp, любой адрес назначения а порт назначения 80 (http) перенаправлять на порт 3128 сервера, где слушает squid.
Ну и врубаем маскарадинг, чтобы разные хосты могли работать с одним сервером.
Таким образом для пользователя всё будет прозрачно.
Настройка
Конфигурационный файл находится в /etc/squid/squid.conf, открываем его любым текстовым редактором на борту.
Ищем строку http_port и прописываем там наш адрес и ключ transparent. Таким образом мы сделаем доступ прозрачным таким образом, чтобы пользователям не нужно было прописывать этот прокси в настройках обозревателя.
Далее, завидим другую виртуальную машину в эту же сеть (с адресом 192.168.0.2), указывая ей адрес основного шлюза 192.168.0.1
Ой-ой. Какие-то проблемы. Ну да ничего! Сейчас мы создадим разрешающее правило!
Находим местечко с надписью INSERT YOUR OWN RULE……
и допишем следующее:
Мы создали ACL с источником 192.168.0.2 и назвали его PC1. Далее, создали разрешающее правило для PC1, и запрещающее для всех остальных. Правила применяются сверху вниз, важно не перепутать!
Перезагружаем сквид
# /etc/init.d/squid restart
(в дальнейшем для применения конфига можно выполнить squid -k reconfigure), это ускорит применение и не допустит откол клиентов.
Пробуем обновить WinXP:
Есть! Загружается! Всё получилось как надо. Теперь немного уточним правило:
Обратите внимание, я создал ACL с именем IMAGES и присвоил ему фрагменты URL-а, описываемые регулярными выражениями без чувствительности регистра. Будем фильтровать строки, оканчивающиеся на jpg, jpeg, gif, png. Следом описываем правило блокирования (deny) этого ACL-а.
Здесь главное не перепутать порядок. Если вписать deny IMAGES после allow PC1, то правило не сработает, поскольку сработает правило allow PC1 и клиент получит весь трафик.
Вообще, в Squid можно много чего интересного сделать. На наших тестовых машинках мы ещё попрактикуемся.
Comments: