proxysquid_proxy

Squid — это полнофункциональное приложение кэш-сервера веб-прокси, которое предоставляет услуги прокси-сервера и кэширования для протокола передачи гипертекста (HTTP), протокола передачи файлов (FTP) и других популярных сетевых протоколов. Squid может реализовывать кэширование и проксирование запросов Secure Sockets Layer (SSL) и кэширование запросов сервера доменных имен (DNS), а также выполнять прозрачное кэширование. Squid также поддерживает широкий спектр протоколов кэширования, таких как протокол интернет-кэширования (ICP), протокол кэширования гипертекста (HTCP), протокол маршрутизации массива кэшей (CARP) и протокол координации веб-кэширования (WCCP).

Кэш-сервер прокси-сервера Squid является отличным решением для различных потребностей прокси-серверов и кеширующих серверов и масштабируется от сетей филиалов до сетей уровня предприятия, обеспечивая при этом обширные, детализированные механизмы контроля доступа и мониторинг критических параметров с помощью простого протокола управления сетью (Simple Network Management Protocol) SNMP. При выборе компьютерной системы для использования в качестве выделенного кэширующего прокси-сервера Squid для многих пользователей убедитесь, что она настроена на большой объем физической памяти, поскольку Squid поддерживает кэш в памяти для повышения производительности.

Монтаж

В командной строке терминала введите следующую команду для установки сервера Squid:

sudo apt install squid

Конфигурация

Squid настраивается путем редактирования директив, содержащихся в файле конфигурации /etc/squid/squid.conf. Следующие примеры иллюстрируют некоторые директивы, которые можно изменить, чтобы повлиять на поведение сервера Squid. Более подробную информацию о настройке Squid см. в разделе «Справочники».

Настройка

Перед редактированием файла конфигурации вы должны сделать копию исходного файла и защитить ее от записи, чтобы у Вас были исходные настройки в качестве эталона и для повторного использования по мере необходимости. Сделайте эту копию и защитите ее от записи с помощью следующих команд:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
  • Чтобы сервер Squid прослушивал TCP-порт 8888 вместо TCP-порта 3128 по умолчанию, измените директиву http_port следующим образом:
http_port 8888
  • Измените директиву visible_hostname, чтобы дать серверу Squid определенное имя хоста. Это имя хоста не обязательно должно быть именем хоста компьютера. В этом примере установлено значение weezie
visible_hostname weezie
  • Параметр cache_dir позволяет настроить кеш на диске, по умолчанию используется кеш в памяти. Директива cache_dir принимает следующие аргументы:
cache_dir <Type> <Directory-Name> <Fs-specific-data> [options]

В файле конфигурации вы можете найти закомментированную директиву cache_dir по умолчанию:

 # Uncomment and adjust the following to add a disk cache directory.
 #cache_dir ufs /var/spool/squid 100 16 256

Вы можете просто использовать параметры по умолчанию, но вы также можете настроить свой каталог кеша, в основном изменив настройку этого каталога, это может быть:

  1. ufs: старый известный формат хранения Squid, который всегда был там.
  2. aufs: использует тот же формат хранения, что и ufs, используя потоки POSIX, чтобы избежать блокировки основного процесса Squid при дисковом вводе-выводе. Раньше это было известно в Squid как async-io.
  3. diskd: использует тот же формат хранения, что и ufs, используя отдельный процесс, чтобы избежать блокировки основного процесса Squid при дисковом вводе-выводе.
  4. rock: это хранилище в стиле базы данных. Все кэшированные записи хранятся в файле «базы данных» с использованием слотов фиксированного размера. Одна запись занимает один или несколько слотов.

Если Вы хотите использовать другой тип каталога, взгляните на их различные варианты.

  • Используя контроль доступа Squid, Вы можете настроить использование Интернет-сервисов, проксируемых Squid, так, чтобы они были доступны только пользователям с определенными IP-адресами. Для примера проиллюстрируем доступ пользователей только из подсети 192.168.42.0/24:

Добавьте следующее в конец раздела ACL вашего файла /etc/squid/squid.conf:

acl fortytwo_network src 192.168.42.0/24

Затем добавьте следующее в начало раздела http_access вашего файла /etc/squid/squid.conf:

http_access allow fortytwo_network
  • Используя отличные функции контроля доступа Squid, вы можете настроить использование Интернет-сервисов, проксируемых Squid, так, чтобы они были доступны только в обычные рабочие часы. Например, мы проиллюстрируем доступ сотрудников компании, которая работает с 9:00 до 17:00 с понедельника по пятницу и использует подсеть 10.1.42.0/24:

Добавьте следующее в конец раздела ACL вашего файла /etc/squid/squid.conf:

acl biz_network src 10.1.42.0/24
acl biz_hours time M T W T F 9:00-17:00

Затем добавьте следующее в начало раздела http_access вашего файла /etc/squid/squid.conf:

http_access allow biz_network biz_hours

Примечание

После внесения изменений в файл /etc/squid/squid.conf сохраните файл и перезапустите приложение сервера squid, чтобы изменения вступили в силу, с помощью следующей команды, введенной в терминале:

sudo systemctl restart squid.service
Если раньше использовался настраиваемый squid3, который устанавливал спул в /var/log/squid3 как точку монтирования, но в остальном сохранял конфигурацию по умолчанию, обновление не удастся. Обновление пытается переименовать/переместить файлы по мере необходимости, но не может этого сделать для активной точки монтирования. В этом случае, пожалуйста, измените точку монтирования или конфигурацию в /etc/squid/squid.conf так, чтобы они совпадали.

То же самое применимо, если оператор include config использовался для извлечения дополнительных файлов из старого пути в /etc/squid3/. В таких случаях вам следует соответствующим образом переместить и адаптировать вашу конфигурацию.

От alex

Обучаемый.