26.08.2022

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

Введение

Squid — известное решение управления сетевым трафиком. Существует множество ипостасей его применения, самые популярные из которых - улучшение конфиденциальности (анонимизация), повышение безопасности или скорости соединения. Например, вы можете воспользоваться squid чтобы парсить содержимое сайта не «выдавая» свой IP-адрес. Прокси может быть полезен, чтобы избежать «географических» блокировок или исследовать различия в «поведении» целевого хоста в зависимости от местоположения клиента.

Подготовка

Перед началом работ стоит убедиться, что у вас есть компьютер с Ubuntu 20.04, с полномочиями root (sudo тоже сгодится). «Внешний» доступ по доменному имени возможен и удобен, но если его нет – не страшно, достаточно только знать IP сервера.

Настройка службы

Во-первых, авторизуйтесь как root и обновите кэш системных пакетов.

sudo -s
apt-get update

Squid уже давно является частью большинства "мейнстримных" репозиториев Ubuntu, разработчики скомпилировали готовый пакет и есть возможность не собирая его из исходного кода самостоятельно провести установку «в один клик».

apt-get -y install squid

Для того, чтобы свежеустановленный squid стартовал как системный демон, при каждой перезагрузке машины, дайте в терминале команду:

systemctl enable squid

Кастомизация

Squid будет "считывать" параметры работы из файла /etc/squid/squid.conf. Стоит несколько подредактировать данный конфиг, найдите параметр http_port и вместо предустановленного значения подставьте любой неиспользуемый сетевой порт, предпочтительно номером выше 1024.

Затем перейдите к строчке http_access deny all. Дальнейшие действия зависят от того, что вы хотите в итоге увидеть. Чтобы просто предоставить доступ всем, установите для этого параметра значение "allow all". Несколько более разумным будет проксировать соединения только с некоторых "доверенных" IP-адресов. Для этого вставьте директиву acl whitelist src "/etc/squid/whitelist" перед "http_access deny all".

Не забудьте разрешить пропуск трафика squid через системный брандмауэр:

ufw allow squid

Затем добавьте свой настоящий IP в файл /etc/squid/whitelist и перезагрузите сервис.

curl ifconfig.me >> /etc/squid/whitelist
service squid restart

Допуск только авторизованных пользователей
Большинство прокси-сервисов с одной стороны, и многие клиентские приложения, (например, веб-браузеры), с другой стороны, поддерживают тот или иной механизм авторизации. Это могут быть токены или выделенные серверы авторизации, но в основном используется парольный доступ. Устойчивый пароль для squid можно создать с помощью внутренних механизмов операционной системы. Создайте файл с именем /etc/squid/pswds и затем «внесите» его в конфигурацию прокси-сервиса. Первый шаг - установка необходимого инструментария

apt-get install apache2-utils -y

Затем нужно будет создать учетные данные для последующей авторизации. Введите в терминале строку:

htpasswd -c /etc/squid/pswds <имя_пользователя>

 Утилита запросит создаваемый пароль. Придумайте его, затем введите дважды.

Впоследствии нужно «интегрировать» только что созданную пару с демоном squid. Снова откройте файл с настройками squid текстовым редактором, раскомментируйте (или создайте, если их не существует) директивы:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/pswds
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated


Помните, что система будет "читать" свои конфиг-файлы "сверху вниз", данные параметры необходимо поместить выше опции "http_access deny all". Следует перезапустить сервис как только закончите редактирование:

service squid restart

Тест сервиса

Самый быстрый способ проверить что в итоге получилось - утилита curl. Просто выполните команду:

curl -v -x http://<имя пользователя>:<пароль>@:<порт> https://google.com

Полученный в итоге "код 200" свидетельствует об успехе:


Настройка клиента

Если предыдущий шаг прошел успешно, вы готовы к настройке более "удобного" в использовании клиента. Например, популярный кейс - использование прокси в браузере. Покажу на примере Google Chrome. Чтобы «научить» его работать через прокси, выполните следующие действия:
Откройте настройки браузера (3 точки справа вверху окна, затем Настройки):


Перейдите на вкладку «Система» и нажмите "Открыть настройки прокси-сервера для компьютера":


Откроются общесистемные настройки. Нажмите "Настройка вручную", затем введите IP-адрес сервера, где вы устанавливали squid, а также порт прокси в соответствующие поля:


Запустите Google Chrome и посетите адрес https://whoer.net. Вместо вашего реального IP должен отобразиться IP-адрес squid.

Итоги

Из этого материала вы узнали, как можно легко развернуть стабильный сервис для проксирования трафика практически без накладных расходов. Теперь вы знаете, как защитить его и отклонять подключения от неизвестных пользователей. Также вы умеете использовать веб-браузер в роли прокси-клиента и можете «скрыть» свой реальный IP за собственным анонимайзером.