Как установить и настроить прокси-сервер Squid в Ubuntu 20.04

Squid Proxy Ubuntu

Squid — это полнофункциональный кэширующий прокси-сервер, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера за счёт кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическими ограничениями.

В этом руководстве объясняется, как настроить прокси-сервер Squid в Ubuntu 20.04 и настроить веб-браузеры Firefox и Google Chrome для его использования.

Установка Squid в Ubuntu

Пакет Squid входит в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующие команды от имени пользователя sudo :

 sudo apt update sudo 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.

  1. В правом верхнем углу нажмите на значок гамбургера , чтобы открыть меню Firefox:

  2. Нажмите на ссылку ⚙ Preferences .

  3. Прокрутите вниз до раздела Network Settings и нажмите кнопку Settings... .

  4. Откроется новое окно.

    • Выберите переключатель Manual proxy configuration .
    • Введите IP-адрес вашего сервера Squid в поле HTTP Host и 3128 в поле Port .
    • Установите флажок Use this proxy server for all protocols .
    • Нажмите кнопку OK , чтобы сохранить настройки.
    Прокси-сервер Firefox Squid

На этом этапе ваш 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

Связанные руководства

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *