Как установить и настроить Squid Proxy на CentOS 7

Как установить и настроить Squid Proxy на CentOS 7

3 Января 2020 | CentOS

В этом руководстве объясняется, как настроить Squid на CentOS 7 и настроить браузеры Firefox и Google Chrome для использования прокси.

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


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

Пакет Squid включен в стандартные репозитории CentOS 7. Для установки выполните следующую команду от имени пользователя sudo :


sudo yum install squid


После завершения установки запустите и включите службу Squid:


sudo systemctl start squidsudo systemctl enable squid


Чтобы убедиться, что установка прошла успешно, введите следующую команду, которая выведет статус службы:


sudo systemctl status squid
● squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago
...


Конфигурирование Squid 

Squid можно настроить, отредактировав /etc/squid/squid.conf файл. Дополнительные файлы с параметрами конфигурации могут быть включены с помощью директивы include.

Прежде чем вносить какие-либо изменения, создайте резервную копию исходного файла конфигурации с помощью cp команды:


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 разрешает доступ только из localhost и localnet.

Если все клиенты, которые будут использовать прокси-сервер, имеют статический 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

Например, чтобы создать пользователя с именем «mike» и паролем « Pz$lPk76», вы должны выполнить:


printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo


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

Откройте основную конфигурацию и добавьте следующее:


/etc/squid/squid.conf
# ...
auth_param basic program /usr/lib64/squid/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


Настройка брандмауэра 

Если вы используете брандмауэр, вам нужно открыть порт 3128. Для этого выполните следующие команды:


sudo firewall-cmd --permanent --add-port=3128/tcpfirewall-cmd --reload


Если Squid работает на другом порту, отличном от порта по умолчанию, вам нужно разрешить трафик через этот порт.


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

Теперь, когда у вас настроен 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, введите «узнать свой 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"

Windows:

"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 на CentOS 7 и настроить свой браузер для его использования.

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


    Комментарии

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

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