Squid — это полнофункциональный прокси-сервер для кеширования, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера путем кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическим ограничением.
В этом руководстве объясняется, как настроить прокси-сервер Squid на Ubuntu 20.04 и настроить веб-браузеры Firefox и Google Chrome для его использования.
Содержание
Установка Squid на Ubuntu
Пакет squid включен в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующие команды от имени пользователя 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 Fri 2020-10-23 19:02:43 UTC; 14s ago
Docs: man:squid(8)
...
Настройка Squid
Сервис 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
Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.
Squid позволяет вам контролировать, как клиенты могут получать доступ к веб-ресурсам, используя списки контроля доступа (ACL). По умолчанию доступ разрешен только с локального хоста.
Если все клиенты, использующие прокси-сервер, имеют статический IP-адрес, простейшим вариантом ограничения доступа к прокси-серверу является создание ACL, который будет включать разрешенные IP-адреса. В противном случае вы можете настроить squid на использование аутентификации.
Вместо добавления IP-адресов в основной файл конфигурации создайте новый выделенный файл, который будет содержать разрешенные IP-адреса:
192.168.33.1
# All other allowed IPs
После этого откройте основной файл конфигурации и создайте новый ACL с именем allowed_ips
(первая выделенная строка) и разрешите доступ к этому ACL с помощью директивы http_access
(вторая выделенная строка):
# ...
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
Например, чтобы создать пользователя «josh» с паролем « P@ssvv0rT
», вы должны запустить:
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
Следующим шагом является включение базовой аутентификации 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
Первые три выделенные строки создают новый список контроля доступа с именем « 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.
-
В верхнем правом углу щелкните значок гамбургера
☰
чтобы открыть меню 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 использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например 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"
Windows:
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" ^
--user-data-dir="%USERPROFILE%proxy-profile" ^
--proxy-server="http://SQUID_IP:3128"
Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.
Чтобы убедиться, что прокси-сервер работает правильно, откройте google.com
и введите «какой у меня IP». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.
Выводы
Squid — один из самых популярных кэширующих прокси-серверов. Это увеличивает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.
Мы показали вам, как установить и настроить Squid в Ubuntu 20.04 и настроить ваш браузер для его использования.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Бестолковая настройка, копипастить все умеют. Вы покажите где узнать какие зависимости нужны для прозрачного сквида
Авторы копипасты не умеют даже в экранирование бэкслешей.
Что это за путь такой, спрашивается?
«C:Program Files (x86)GoogleChromeApplicationchrome.exe»