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

How to Install and Configure Squid Proxy on Ubuntu 18.04

11 Марта 2021 | Ubuntu

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

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

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

Установка 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 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.

  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 .
 

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)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="http://SQUID_IP:3128"
 

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

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

Вывод

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

Squid - один из самых популярных кэширующих прокси-серверов. Это увеличивает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...