
Squid — это полнофункциональный кэширующий прокси-сервер, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера за счёт кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическими ограничениями.
В этом руководстве мы объясним, как настроить прокси-сервер Squid в Debian Buster. Мы также покажем, как настроить браузеры Firefox и Google Chrome для его использования.
Установка Squid на Debian
Пакет Squid входит в стандартный репозиторий Debian 10. Чтобы установить Squid, выполните следующие команды от имени пользователя sudo :
sudo apt updatesudo apt install squid
После завершения установки служба Squid запустится автоматически.
Убедитесь, что установка прошла успешно и служба Squid запущена, проверив состояние службы Squid:
sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; generated) Active: active (running) since Sat 2019-08-03 08:52:47 PDT; 3s ago ...
Настройка Squid
Squid можно настроить, отредактировав файл конфигурации /etc/squid/squid.conf . Отдельные файлы конфигурации можно включить с помощью директивы include.
Файл конфигурации squid.conf содержит комментарии, описывающие назначение каждого параметра конфигурации.
Прежде чем вносить какие-либо изменения, всегда рекомендуется создать резервную копию исходного файла:
sudo cp /etc/squid/squid.conf{,.orginal}
Чтобы изменить конфигурацию, откройте файл в текстовом редакторе :
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 на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.
Списки управления доступом (ACL) позволяют контролировать доступ клиентов к веб-ресурсам. По умолчанию Squid разрешает доступ только с локального хоста.
Если все клиенты, которые будут использовать прокси-сервер, имеют статический IP-адрес, то самым простым вариантом будет создание ACL, который будет включать разрешенные IP-адреса.
Вместо добавления 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
Squid может использовать различные бэкэнды, включая Samba, LDAP и базовую аутентификацию HTTP для аутентификации пользователей.
В этом примере мы настроим Squid на использование базовой аутентификации. Это простой метод аутентификации, встроенный в протокол HTTP.
Мы воспользуемся утилитой openssl для генерации паролей и добавим пару username:password в файл /etc/squid/htpasswd с помощью команды tee , как показано ниже:
printf "USERNAME: $( openssl passwd -crypt PASSWORD ) n" | sudo tee -a /etc/squid/htpasswd
Давайте создадим пользователя с именем «buster» и паролем « Sz$Zdg69 »:
printf "buster:$(openssl passwd -crypt 'Sz$Zdg69')n" | sudo tee -a /etc/squid/htpasswd
buster:RrvgO7NxY86VM
Следующий шаг — включить базовую HTTP-аутентификацию. Откройте основную конфигурацию и добавьте следующее:
/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
Настройка брандмауэра
Пользователи UFW могут открыть порт 3128 , включив профиль «Squid»:
sudo ufw allow 'Squid'
Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, выполнив следующую команду:
sudo nft add rule inet filter input tcp dport 3128 ct state new,established counter accept
Если Squid работает на другом порту, отличном от порта по умолчанию, вам необходимо разрешить трафик на этом порту.
Настройка браузера для использования прокси
В этом разделе мы покажем вам, как настроить браузер для использования прокси-сервера 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 в Debian 10 и настройки браузера для его использования.
Squid — один из самых популярных кэширующих прокси-серверов. Он повышает скорость работы веб-сервера и помогает ограничить доступ пользователей к интернету.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
proxy debian Не используете Debian 10?
Выберите другую ОС: центос 7 убунту 18.04 убунту 20.04
Связанные руководства
- Как установить TensorFlow на Debian 10
- Как установить Apache Cassandra на Debian 10 Linux
- Как установить Jenkins на Debian 10 Linux
- Как установить и использовать Docker Compose в Debian 10 Linux
- Как установить MongoDB на Debian 10 Linux
- Как установить и настроить Redis в Debian 10 Linux
- Защитите Nginx с помощью Let's Encrypt на Debian 10 Linux