Squid — это полнофункциональный прокси-сервер для кеширования, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера путем кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическим ограничением.
В этом руководстве мы объясним, как настроить прокси-сервер Squid на Debian Buster. Мы также покажем вам, как настроить браузеры Firefox и Google Chrome для его использования.
Установка Squid на Debian
Пакет Squid входит в стандартную комплектацию репозиториев Debian 10. Выполните следующие команды от имени пользователя sudo, чтобы установить Squid:
sudo apt update
sudo apt install squid
После завершения установки служба 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 Sat 2019-08-03 08:52:47 PDT; 3s ago
...
Настройка Squid
Squid можно настроить, отредактировав /etc/squid/squid.conf
конфигурации /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-адреса:
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 аутентификация
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
Создадим пользователя с именем buster и паролем Sz$Zdg69
:
printf "buster:$(openssl passwd -crypt 'Sz$Zdg69')n" | sudo tee -a /etc/squid/htpasswd
buster:RrvgO7NxY86VM
Следующим шагом является включение базовой аутентификации HTTP. Откройте основную конфигурацию и добавьте следующее:
# ...
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
Настройка межсетевого экрана
Пользователи UFW могут открыть порт 3128
, включив профиль Squid:
sudo ufw allow 'Squid'
Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, выполнив следующую команду:
sudo nft add rule inet filter input tcp dport 3128 ct state new,established counter accept
Настройка вашего браузера для использования прокси
В этом разделе хорошо показано, как настроить ваш браузер для использования прокси-сервера 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 на Debian 10 и настроить ваш браузер для его использования.
Squid — один из самых популярных кэширующих прокси-серверов. Это увеличивает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.
Добавить комментарий