Squid — это популярный прокси-сервер, который используется в основном для кэширования часто запрашиваемого веб-контента, чтобы уменьшить время отклика страниц, а также для фильтрации сетевого трафика. Он поддерживает множество различных протоколов таких как HTTP, FTP, TLS, SSL, Internet Gopher и HTTPS. А еще эта штука может быть очень полезной при медленном интернет-соединении. Первоначально Squid был разработан как Unix демон, но потом было выпущено несколько портов для WIndows. Squid распространяется под лицензией GNU General Public License.
В этой инструкции вы узнаете как установить Squid в Ubuntu 16.04. Просто последовательно выполняйте эти инструкции и установка squid ubuntu не вызовет никаких проблем. Squid это довольно многофункциональная программа и мы не сможем охватить в этой статье все ее функции, но попытаемся рассмотреть основные, чтобы вы смогли ее полностью настроить и использовать. Начнем с установки.
Содержание страницы
Установка Squid в Ubuntu
Есть несколько способов установки Squid в Ubuntu, один из самых распространенных — установка из официальных репозиториев с помощью утилиты apt.
Сначала откройте терминал сочетанием клавиш Ctrl+Alt+T и обновите индекс пакетов:
sudo apt update
После обновления списка пакетов можно переходить к установке прокси-сервера просто выполните команду:
sudo apt install squid
Затем утилита спросит нужно ли продолжать установку, введите Y и дождитесь окончания загрузки и установки:
Затем можно переходить к настройке.
Настройка Squid
Конфигурационный файл сервера находится в директории /etc/squid. В зависимости от версии Squid название папки и самого файла может отличаться, например, /etc/squid3/squid.conf или /etc/squid/squid.conf. Все настройки находятся в этом файле. Давайте его рассмотрим.
vim /etc/squid3/squid.conf
Когда откроется файл вы увидите что то похожее:
Файл содержит несколько опций настроек, а также очень много документации по их использованию. Мы не будем трогать многие из них, но основные рассмотрим.
Контроль доступа
Сначала нам нужно настроить правила доступа клиентов к нашему прокси-серверу. Squid проектировался как программа для организаций и даже если вы используете его дома, настройка squid 3 тоже должна быть выполнена.
Для это используется acl список. это обычный список объектов, сейчас он вообще ничего не значит. Это могут быть ip адреса, порты и т д. Потом мы укажем программе что нужно делать с этим списком, разрешать или запрещать доступ. Синтаксис создания acl списка такой:
acl имя_списка тип_списка элемент_списка
Таких строк может быть несколько с одним именем и типом, из них получается список. Имя списка может быть произвольным, мы его еще будем использовать. Тип списка это намного интереснее. Может быть одним из:
- src — ip адрес откуда исходит соединение, адрес клиента;
- dst — ip адрес назначения соединения, адрес сервера, к которому хочет получить доступ клиент;
- dstdomain — домен назначения соединения;
- srcdomain — домен клиента;
- arp — MAC адрес сетевой карты клиента;
- time — время, когда выполняется соединение;
- port — порт, к которому пытается получить доступ клиент;
- proto — протокол, по которому устанавливается соединение;
- method — метод передачи данных, например, GET — передача данных HTTP, POST — передача данных форм в HTTP, CONNECT — запрос соединения с сервером;
- http_status — ответ сервера;
- browser — браузер клиента;
- url_regex — url адрес, к которому пытаются получить доступ.
Это далеко не все типы списков, но для начала хватит, а более подробная информация есть в том же конфигурационном файле.
Добавим список, для доступа к серверу из локальной сети:
Создадим список Safe_ports, чтобы разрешить трафик на порты основных сетевых служб, а также незарегистрированные порты выше 1024:
Создадим еще два списка — SSL_ports и connect, чтобы разрешить использовать метод connect только для ssl соединений. Это запретит клиенту использовать другие прокси-серверы поверх нашего:
Как я уже говорил, эти списки сами по себе ничего не значат и никак не влияют на работу сервера. Чтобы применить список нужно использовать директиву http_access. Ее синтаксис:
Действие может быть allow (разрешить) или deny (запретить). теперь запретим доступ ко всем портам, кроме заданных в Safe_ports:
Дальше запретим использование метода CONNECT кроме SSL соединений:
Теперь разрешим доступ из этого компьютера (acl список localhos предопределен):
Разрешим доступ из локальной сети:
И запретим все остальное:
Другие настройки
Контроль доступа, это один из самых важных компонентов, но настройка squid ubuntu на этом незакончена. Есть еще много интересных параметров, мы рассмотрим только несколько из них:
http_port — задает ip адрес и порт, на котором будет работать программа. Можно запускать прокси только на этом компьютере такой конструкцией:
Или в локальной сети:
https_port — задает ip адрес и порт, на котором будут приниматься https соединения. Мы не рассматриваем работу с https в этой статье.
cache_mem — количество памяти, которая выделяется для кэширования объектов.
cache_dir — позволяет задать папку для хранения кэша. По умолчанию весь кэш хранится в оперативной памяти. Синтаксис:
cache_dir файловая_система папка размер_в_мб L1 L2
L1 и L2 — количество подпапок первого и второго уровня. Файловая система определяет каким образом данные будут писаться на диск. Например:
coredump_dir — директория, в которую будет сохранен дамп памяти в случае ошибки.
refresh_pattern — очень интересный параметр, который позволяет продлить время жизни объектов в кэше. Синтаксис такой:
refresh_pattern -i регулярное_выражение минимальное_время процент максимальное_время параметры
- регулярное выражение — задает объекты, к которым нужно применять параметр;
- минимальное_время — время в минутах пока объект считается свежим;
- максимальное_время — максимальное время в минутах, пока объект будет свежим;
параметры могут быть такие:
- override-expire — игнорировать заголовок expire;
- override-lastmod — игнорировать последнюю дату изменения файла;
- reload-into-ims — вместо не кэшировать отправлять запрос If-Modified-Since;
- ignore-reload — игнорировать запросы клиента не кэшировать.
Например:
Вам могут понадобиться и другие настройки после того, как установка squid ubuntu Будет завершена. Но они выходят за рамки этой статьи. Теперь сохраните изменения, закройте файл и перезагрузите Squid:
sudo service squid3 restart
Если эта команда вернет ошибку, попробуйте другую:
sudo service squid restart
Осталось проверить работу нашего прокси-сервера. Это можно сделать с помощью любого браузера. Откройте настройки браузера и выполните настройку прокси. Я покажу как это сделать в Mozilla Firefox. Если у вас другой браузер, например, Google Chrome думаю вы разберетесь как там настраивается прокси.
Настройка клиентской стороны
Откройте браузер, перейдите в Настройка —> Дополнительно —> Сеть. Затем нажмите Настройки в разделе Подключение и выберите настроить прокси вручную:
В поле HTTP прокси укажите IP адрес машины, на которой выполнялась установка Squid сервера, а в поле порт — номер порта 3128. Этот порт используется по умолчанию в Squid, но вы можете изменить номер порта с помощью /etc/squid/squid.conf
Нажмите ОК, и прокси начнет работать.
Выводы
В этой статье была рассмотрена установка и настройка squid ubuntu 16.04. Мы рассматривали только основные моменты, которые могут понадобиться каждому пользователю. Если вам нужна более тонкая настройка, такая как ограничение скорости и так далее, вам придется обратиться к документации программы. Если у вас остались вопросы, спрашивайте в комментариях!
Источник: losst.ru