Как установить и настроить Squid Proxy в Linux Debian 10

12 set 2022 4 min di lettura
Как установить и настроить Squid Proxy в Linux Debian 10
Indice dei contenuti

Введение

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

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

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

Пакет Squid входит в стандартную комплектацию репозиториев Debian 10. Выполните следующие команды от имени пользователя sudo, чтобы установить Squid.

Обновите список пакетов Debian 10:

sudo apt update

Установить Сквид:

sudo apt install squid

После завершения установки служба Squid запустится автоматически.

Убедитесь, что установка прошла успешно и служба 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 Sat 2019-09-07 16:28:25 CEST; 2min 10s ago
 Docs: man:squid(8)
 Process: 2287 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
 Process: 2290 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
 Main PID: 2291 (squid)
 Tasks: 4 (limit: 2301)
 Memory: 15.8M
 CGroup: /system.slice/squid.service
 ├─2291 /usr/sbin/squid -sYC
 ├─2294 (squid-1) --kid squid-1 -sYC
 ├─2295 (logfile-daemon) /var/log/squid/access.log
 └─2296 (pinger)...

Настроить Сквид

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 будет прослушивать все интерфейсы.

# Squid normally listens to port 3128
 http_port IP_ADDR:PORT

Запуск Squid на всех интерфейсах и порт по умолчанию подойдет большинству пользователей.

Списки контроля доступа (ACL) позволяют контролировать доступ клиентов к веб-ресурсам.По умолчанию Squid разрешает доступ только с локального хоста.

Если все клиенты, которые будут использовать прокси, имеют статический IP-адрес, самый простой вариант — создать ACL, который будет включать разрешенные IP-адреса.

Вместо добавления IP-адресов в основной файл конфигурации мы создадим новый включаемый файл, в котором будут храниться IP-адреса.

Создайте конфигурационный файл allow_ips.txt:

sudo nano /etc/squid/allowed_ips.txt

Введите IP-адреса:

192.168.30.1
 # All other allowed IPs

После этого откройте основной файл конфигурации. Создал новый ACL с именем allow_ips, разрешить доступ к этому ACL с помощью директивы http_access.

Снова откройте основной файл конфигурации:

sudo nano /etc/squid/squid.conf

Включите следующие строки:

  • acl allow_ips src "/etc/squid/allowed_ips.txt"
  • http_access разрешить разрешённые_ips
#...
 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 deny all.

Директива http_access работает аналогично правилам брандмауэра. Squid читает правила сверху вниз, и когда правило соответствует следующим правилам, они не обрабатываются.

Всякий раз, когда в файл конфигурации вносятся изменения, сервис Squid должен быть перезапущен, чтобы изменения вступили в силу:

sudo systemctl restart squid

Squid-аутентификация

Squid может использовать различные серверные части, включая базовую аутентификацию Samba, LDAP и HTTP для аутентифицированных пользователей.

В этом примере мы настроим Squid для использования базовой аутентификации — простого метода аутентификации, встроенного в протокол HTTP.

Мы будем использовать утилиту openssl для генерации паролей и добавления имени пользователя: пароль в файл /etc/squid/htpasswd с помощью команды tee, как показано ниже:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Создадим пользователя «buster» с паролем « 1dk232_Z »:

printf "buster:$(openssl passwd -crypt '1dk232_Z')\n" | sudo tee -a /etc/squid/htpasswd

Вы должны получить выходное сообщение, подобное следующему:

buster:iWTMPC8kxGssA

Следующим шагом является включение базовой аутентификации HTTP. Снова откройте основной файл конфигурации:

sudo nano /etc/squid/squid.conf

Включите следующие строки:

  • auth_param основная программа /usr/lib/squid3/basic_ncsa_auth/etc/squid/htpasswd
  • auth_param основной прокси области
  • acl аутентифицированный proxy_auth ТРЕБУЕТСЯ
  • http_access разрешить аутентифицированный

Следовательно:

#...
 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 с именем « аутентифицированный», а последняя строка разрешает доступ для аутентифицированных пользователей.

Перезапустите службу Squid:

sudo systemctl restart squid

Конфигурация брандмауэра

Если вы не используете брандмауэр, пропустите эти шаги и перейдите к следующему абзацу.

Пользователи UFW могут открыть порт 3128, включив профиль Squid:

sudo ufw allow 'Squid'

Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, выполнив следующую команду:

Если Squid работает на другом порту, отличном от порта по умолчанию, вам необходимо разрешить трафик на этом порту.

Настройка браузера для использования прокси

В этом разделе мы увидим, как настроить ваш браузер для использования прокси-сервера Squid.

Fire Fox

Следующие шаги одинаковы для Windows, macOS и Linux.

  • В правом верхнем углу щелкните значок гамбургера , чтобы открыть меню Firefox:
  • Щелкните ссылку ⚙ Настройки.
  • Прокрутите вниз до раздела « Настройки сети » и нажмите кнопку « Настройки… ».

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

  • Выберите опцию Ручная кнопка настройки прокси.
  • Введите IP-адрес сервера Squid в поле хоста HTTP и 3128 в поле Порт.
  • Установите флажок Использовать этот прокси-сервер для всех протоколов.
  • Нажмите кнопку ОК, чтобы сохранить настройки.

На этом этапе Firefox настроен, и вы можете выходить в Интернет через прокси-сервер Squid. Чтобы проверить это, откройте google.com, введите « find is my ip », и вы должны увидеть IP-адрес своего сервера Squid.

Чтобы восстановить настройки по умолчанию, снова перейдите в « Настройки сети», нажмите кнопку « Использовать настройки системного прокси» и сохраните настройки.

Гугл Хром

Google Chrome использует системные настройки прокси-сервера по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить веб-браузер Chrome из командной строки.

Чтобы запустить Chrome с новым профилем и подключиться к серверу Squid, используйте следующую команду:

Линукс:

/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)\Google\Chrome\Application\chrome.exe" ^
 --user-data-dir="%USERPROFILE%\proxy-profile" ^
 --proxy-server="http://SQUID_IP:3128"

Профиль будет создан автоматически, если он не существует. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.

Чтобы проверить это, откройте google.com, введите « find is my ip », и вы должны увидеть IP-адрес своего сервера Squid.

Вывод

Мы рассмотрели основы того, как установить и настроить Squid в Debian 10 и как использовать его в вашем браузере.

Squid — один из самых популярных прокси-кэш-серверов. Это повышает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.