
Squid — это полнофункциональный кэширующий прокси-сервер, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Squid в основном используется для повышения производительности веб-сервера за счёт кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическими ограничениями.
В этом руководстве вы узнаете, как настроить прокси-сервер Squid в Ubuntu 18.04, а также настроить веб-браузеры Firefox и Google Chrome для его использования.
Установка Squid в Ubuntu
Пакет Squid входит в стандартные репозитории Ubuntu 18.04. Чтобы установить его, выполните следующие команды от имени пользователя sudo :
sudo apt updatesudo 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 Thu 2019-06-27 11:45:17 UTC ...
Настройка Squid
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 будет прослушивать все интерфейсы.
/etc/squid/squid.conf
# Squid normally listens to port 3128 http_port IP_ADDR:PORT
Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.
В 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
Давайте создадим пользователя с именем «josh» и паролем « Sz$Zdg69 »:
printf "josh:$(openssl passwd -crypt 'Sz$Zdg69')n" | sudo tee -a /etc/squid/htpasswd
josh:RrvgO7NxY86VM
Теперь, когда пользователь создан, следующим шагом будет включение базовой HTTP-аутентификации и включение файла htpasswd .
Откройте основную конфигурацию и добавьте следующее:
/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 для управления брандмауэром, вам потребуется открыть порт 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 настроен, последний шаг — настроить предпочитаемый вами браузер для его использования.
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 в Ubuntu 18.04 и настроить браузер для его использования.
Squid — один из самых популярных кэширующих прокси-серверов. Он повышает скорость работы веб-сервера и помогает ограничить доступ пользователей к интернету.
Если у вас возникла проблема или вы хотите оставить отзыв, оставьте комментарий ниже.
proxy ubuntu Не используете Ubuntu 18.04?
Выберите другую ОС: центос 7 дебиан 10 убунту 20.04
Связанные руководства