
Squid — это полнофункциональный кэширующий прокси-сервер, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера за счёт кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическими ограничениями.
В этом руководстве объясняется, как настроить прокси-сервер Squid в Ubuntu 20.04 и настроить веб-браузеры Firefox и Google Chrome для его использования.
Установка Squid в Ubuntu
Пакет Squid входит в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующие команды от имени пользователя sudo :
sudo apt updatesudo apt install squid
После завершения установки служба Squid запустится автоматически. Чтобы убедиться в этом, проверьте статус службы:
sudo systemctl status squid
Вывод будет выглядеть примерно так:
● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago Docs: man:squid(8) ...
Настройка Squid
Службу Squid можно настроить, отредактировав файл /etc/squid/squid.conf . Этот файл конфигурации содержит комментарии, описывающие назначение каждого параметра. Вы также можете поместить свои параметры конфигурации в отдельные файлы, которые можно включить в основной файл конфигурации с помощью директивы include.
Перед внесением каких-либо изменений рекомендуется создать резервную копию исходного файла конфигурации:
sudo cp /etc/squid/squid.conf{,.orginal}
Чтобы начать настройку экземпляра Squid, откройте файл в текстовом редакторе :
sudo nano /etc/squid/squid.conf
По умолчанию Squid настроен на прослушивание порта 3128 на всех сетевых интерфейсах сервера.
Если вы хотите изменить порт и настроить прослушивающий интерфейс, найдите строку, начинающуюся с http_port , и укажите IP-адрес интерфейса и новый порт. Если интерфейс не указан, Squid будет прослушивать все интерфейсы.
/etc/squid/squid.conf
# Squid normally listens to port 3128 http_port IP_ADDR:PORT
Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.
Squid позволяет контролировать доступ клиентов к веб-ресурсам с помощью списков контроля доступа (ACL). По умолчанию доступ разрешён только с локального хоста.
Если все клиенты, использующие прокси-сервер, имеют статический IP-адрес, самый простой способ ограничить доступ к прокси-серверу — создать список контроля доступа (ACL), включающий разрешённые IP-адреса. В противном случае можно настроить Squid на использование аутентификации.
Вместо добавления IP-адресов в основной файл конфигурации создайте новый специальный файл, который будет содержать разрешенные IP-адреса:
/etc/squid/allowed_ips.txt
192.168.33.1 # All other allowed IPs
После этого откройте основной файл конфигурации и создайте новый ACL с именем allowed_ips (первая выделенная строка) и разрешите доступ к этому ACL с помощью директивы http_access (вторая выделенная строка):
/etc/squid/squid.conf
# ... acl allowed_ips src "/etc/squid/allowed_ips.txt" # ... #http_access allow localnet http_access allow localhost http_access allow allowed_ips # And finally deny all other access to this proxy http_access deny all
Порядок правил http_access важен. Убедитесь, что вы добавили строку перед http_access deny all .
Директива http_access работает аналогично правилам брандмауэра. Squid считывает правила сверху вниз, и если правило соответствует, последующие правила не обрабатываются.
После внесения изменений в файл конфигурации необходимо перезапустить службу Squid, чтобы изменения вступили в силу:
sudo systemctl restart squid
аутентификации Squid
Если ограничение доступа по IP-адресу не подходит для вашего случая, вы можете настроить Squid на использование бэкэнда для аутентификации пользователей. Squid поддерживает Samba , LDAP и базовую аутентификацию HTTP.
В этом руководстве мы будем использовать базовую аутентификацию. Это простой метод аутентификации, встроенный в протокол HTTP.
Для генерации зашифрованного пароля используйте инструмент openssl . Следующая команда добавляет пару USERNAME:PASSWORD в файл /etc/squid/htpasswd :
printf "USERNAME: $( openssl passwd -crypt PASSWORD ) n" | sudo tee -a /etc/squid/htpasswd
Например, чтобы создать пользователя «josh» с паролем « P@ssvv0rT », выполните:
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
Следующим шагом будет включение базовой HTTP-аутентификации и включение файла, содержащего учетные данные пользователя, в файл конфигурации Squid.
Откройте основную конфигурацию и добавьте следующее:
sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ... auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd auth_param basic realm proxy acl authenticated proxy_auth REQUIRED # ... #http_access allow localnet http_access allow localhost http_access allow authenticated # And finally deny all other access to this proxy http_access deny all
Первые три выделенные строки создают новый ACL с именем authenticated , а последняя выделенная строка разрешает доступ аутентифицированным пользователям.
Перезапустите службу Squid:
sudo systemctl restart squid
Настройка брандмауэра
Чтобы открыть порты Squid, включите профиль UFW «Squid»:
sudo ufw allow 'Squid'
Если Squid работает на другом порту, не являющемся портом по умолчанию, например, 8888 вы можете разрешить трафик на этом порту с помощью: sudo ufw allow 8888/tcp .
Настройка браузера для использования прокси
Теперь, когда Squid настроен, последний шаг — настроить предпочитаемый вами браузер для его использования.
Firefox
Описанные ниже шаги одинаковы для Windows, macOS и Linux.
-
В правом верхнем углу нажмите на значок гамбургера
☰, чтобы открыть меню Firefox: -
Нажмите на ссылку
⚙ Preferences. -
Прокрутите вниз до раздела
Network Settingsи нажмите кнопкуSettings.... -
Откроется новое окно.
- Выберите переключатель
Manual proxy configuration. - Введите IP-адрес вашего сервера Squid в поле
HTTP Hostи3128в полеPort. - Установите флажок
Use this proxy server for all protocols. - Нажмите кнопку
OK, чтобы сохранить настройки.

- Выберите переключатель
На этом этапе ваш Firefox настроен, и вы можете просматривать веб-страницы через прокси-сервер Squid. Чтобы проверить это, откройте google.com , введите «what is my ip» и вы увидите IP-адрес вашего сервера Squid.
Чтобы вернуться к настройкам по умолчанию, перейдите в Network Settings , выберите переключатель Use system proxy settings » и сохраните настройки.
Существует несколько плагинов, которые также могут помочь вам настроить параметры прокси-сервера Firefox, например, FoxyProxy .
Google Chrome
Google Chrome использует системные настройки прокси-сервера по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать дополнение, например SwitchyOmega , или запустить браузер Chrome из командной строки.
Чтобы запустить Chrome с использованием нового профиля и подключиться к серверу Squid, используйте следующую команду:
Linux:
/usr/bin/google-chrome --user-data-dir = " $HOME /proxy-profile" --proxy-server = "http://SQUID_IP:3128"
macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --user-data-dir = " $HOME /proxy-profile" --proxy-server = "http://SQUID_IP:3128"
Окна:
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" ^ --user-data-dir = "%USERPROFILE%proxy-profile" ^ --proxy-server = "http://SQUID_IP:3128"
Если профиль отсутствует, он будет создан автоматически. Таким образом, вы сможете запускать несколько экземпляров Chrome одновременно.
Чтобы убедиться, что прокси-сервер работает правильно, откройте google.com и введите «what is my ip». IP-адрес, отображаемый в браузере, должен соответствовать IP-адресу вашего сервера.
Заключение
Squid — один из самых популярных кэширующих прокси-серверов. Он повышает скорость работы веб-сервера и помогает ограничить доступ пользователей к интернету.
Мы показали вам, как установить и настроить Squid в Ubuntu 20.04, а также как настроить браузер для его использования.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
proxy ubuntu Не используете Ubuntu 20.04?
Выберите другую ОС: центос 7 дебиан 10 убунту 18.04
Связанные руководства