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

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

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

Установка 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, последний шаг — настроить предпочитаемый вами браузер для его использования.

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

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

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

Оставьте комментарий