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

12 set 2022 5 min di lettura
Как установить и настроить Squid Proxy в Ubuntu 20.04
Indice dei contenuti

Введение

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

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

Если вы хотите установить Squid Proxy на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установите Squid на Ubuntu

Пакет squid включен в стандартные репозитории Ubuntu 20.04 LTS. Чтобы установить его, выполните следующие команды от имени пользователя 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 Sat 2020-10-24 12:49:04 CEST; 15s ago
 Docs: man:squid(8)
 Main PID: 166072 (squid)
 Tasks: 4 (limit: 2286)
 Memory: 15.9M...

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

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

# Squid normally listens to port 3128
 http_port IP_ADDR:PORT
/etc/squid/squid.conf

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

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

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

Вместо добавления IP-адресов в основной файл конфигурации создайте новый выделенный файл, который будет содержать разрешенные IP-адреса:

sudo nano /etc/squid/allowed_ips.txt
192.168.11.11
 # All other allowed IPs
allow_ips.txt

После этого откройте основной конфигурационный файл и создайте новый ACL с именем allowed_ips, добавив acl allowed_ips src "/etc/squid/allowed_ips.txt" и разрешите доступ к этому ACL с помощью директивы http_access, добавив http_access allow allowed_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 важен. Убедитесь, что вы добавили первую строку 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

Например, чтобы создать пользователя alice с паролем 1390fh19, вы должны запустить:

printf "alice:$(openssl passwd -crypt '1390fh19')\n" | sudo tee -a /etc/squid/htpasswd
alice:6cUiorPyrNGN6

Следующим шагом является включение базовой HTTP-аутентификации и включение файла, содержащего учетные данные пользователя, в файл конфигурации squid.

Откройте основную конфигурацию и добавьте или отредактируйте следующие выделенные строки:

sudo nano /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, последний шаг — настроить ваш любимый браузер для его использования.

Fire Fox

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

  1. В правом верхнем углу щелкните значок гамбургера , чтобы открыть меню Firefox:
  2. Щелкните ссылку ⚙ Preferences.
  3. Прокрутите вниз до раздела « 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 использует системные настройки прокси-сервера по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить веб-браузер Chrome из командной строки.

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

Линукс:

/usr/bin/google-chrome \
 --user-data-dir="$HOME/proxy-profile" \
 --proxy-server="http://SQUID_IP:3128"

Mac ОС:

"/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 и введите «what is my ip». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.

Вывод

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

Мы показали вам, как установить и настроить Squid на Ubuntu 20.04 LTS Focal Fossa и как настроить браузер для его использования.

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.