Как установить и настроить прокси-сервер Squid

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

В этом руководстве мы объясним, как настроить прокси-сервер Squid на Debian Buster. Мы также покажем вам, как настроить браузеры Firefox и Google Chrome для его использования.

Установка Squid на Debian

Пакет Squid входит в стандартную комплектацию репозиториев Debian 10. Выполните следующие команды от имени пользователя sudo, чтобы установить Squid:

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

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

Запуск 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

Создадим пользователя с именем buster и паролем Sz$Zdg69 :

printf "buster:$(openssl passwd -crypt 'Sz$Zdg69')n" | sudo tee -a /etc/squid/htpasswd
buster:RrvgO7NxY86VM

Следующим шагом является включение базовой аутентификации HTTP. Откройте основную конфигурацию и добавьте следующее:

/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

Настройка межсетевого экрана

Пользователи 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 работает на другом порту, отличном от порта по умолчанию, вам необходимо разрешить трафик на этом порту.

Настройка вашего браузера для использования прокси

В этом разделе хорошо показано, как настроить ваш браузер для использования прокси-сервера Squid.

Fire Fox

Приведенные ниже шаги одинаковы для Windows, macOS и Linux.

  1. В верхнем правом углу щелкните значок гамбургера чтобы открыть меню Firefox:
  2. Щелкните ссылку ⚙ Preferences .
  3. Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings... .
  4. Откроется новое окно.
    • Установите переключатель « 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 — один из самых популярных кэширующих прокси-серверов. Это увеличивает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *