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

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

Введение

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

Это руководство проведет вас через процесс настройки прокси-сервера Squid в Ubuntu 18.04 и настройки веб-браузеров Firefox и Google Chrome для его использования.

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

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

sudo apt update
sudo apt install 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 Wed 2020-01-08 12:15:21 CET; 9h ago
 Docs: man:systemd-sysv-generator(8)
 Tasks: 5 (limit: 2299)
 CGroup: /system.slice/squid.service
 ├─23948 /usr/sbin/squid -YC -f /etc/squid/squid.conf
 ├─23950 (squid-1) -YC -f /etc/squid/squid.conf
 ├─23951 (logfile-daemon) /var/log/squid/access.log
 ├─23952 (pinger)
 └─23965 (basic_ncsa_auth) /etc/squid/htpasswd

 Jan 08 12:15:21 TEST-SERVER-1 systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
 Jan 08 12:15:21 TEST-SERVER-1 squid[23898]: * Starting Squid HTTP Proxy squid
 Jan 08 12:15:21 TEST-SERVER-1 squid[23898]:...done.....

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

Squid можно настроить, отредактировав файл /etc/squid/squid.conf. Вы также можете использовать отдельные файлы с параметрами конфигурации, которые можно включить с помощью директивы include.

Файл конфигурации содержит комментарии, описывающие, что делает каждый параметр конфигурации.

Перед внесением каких-либо изменений рекомендуется сделать резервную копию исходного файла конфигурации:

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

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

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

В Squid вы можете контролировать доступ клиентов к веб-ресурсам с помощью списков контроля доступа (ACL).

По умолчанию Squid разрешает доступ только с локального хоста.

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

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

sudo nano /etc/squid/allowed_ips.txt

Добавьте один или несколько IP-адресов:

192.168.22.22
 # All other allowed IPs

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

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

sudo nano /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
 http_access deny all

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

Порядок правил 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, как показано ниже.

Давайте создадим пользователя с именем « alice » с паролем « 1390fh19 »:

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

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

alice:HDWEnTTbcud1A

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

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

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

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

sudo systemctl restart squid

Настроить брандмауэр

Предполагая, что вы используете UFW для управления брандмауэром, вам необходимо открыть порт Squid. Для этого включите профиль « Squid », который включает правила для портов Squid по умолчанию.

sudo ufw allow 'Squid'

Чтобы проверить тип статуса:

sudo ufw status

Вывод будет выглядеть следующим образом:

Status: active

 To Action From
 -- ------ ----
 22/tcp ALLOW Anywhere
 Squid ALLOW Anywhere
 22/tcp (v6) ALLOW Anywhere (v6)
 Squid (v6) ALLOW Anywhere (v6)

Если 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, используйте следующую команду, введя IP-адрес сервера, на котором вы установили 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"

Если есть какие-либо проблемы, проверьте правильность пути к файлу запуска Google Chrome.

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

Чтобы убедиться, что прокси-сервер работает правильно, откройте google.com и введите « what is my ip ». IP-адрес, отображаемый в браузере, должен быть IP-адресом вашего сервера.

Вывод

Вы узнали, как установить Squid на Ubuntu 18.04 и как настроить браузер для его использования.

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.