Как установить и настроить Squid Proxy на CentOS 7
Как установить и настроить Squid Proxy на CentOS 7
How to Install and Configure Squid Proxy on CentOS 7
В этом руководстве объясняется, как настроить Squid на CentOS 7 и настроить браузеры Firefox и Google Chrome для использования прокси.

Установка Squid на CentOS
Пакет Squid включен в стандартные репозитории CentOS 7. Для установки выполните следующую команду от имени пользователя sudo :
sudo yum install squid
После завершения установки запустите и включите службу Squid:
sudo systemctl start squid
sudo 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 будет прослушивать все интерфейсы.
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Запуск Squid на всех интерфейсах и на порте по умолчанию должен подойти большинству пользователей.
Вы можете контролировать доступ к серверу Squid, используя списки контроля доступа (ACL).
По умолчанию Squid разрешает доступ только из localhost и localnet.
Если все клиенты, которые будут использовать прокси-сервер, имеют статический 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
Например, чтобы создать пользователя с именем «mike» и паролем « Pz$lPk76
», вы должны выполнить:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
Следующим шагом является настройка Squid для включения базовой аутентификации HTTP и использования файла.
Откройте основную конфигурацию и добавьте следующее:
# ...
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/tcp
firewall-cmd --reload
Если Squid работает на другом порту, отличном от порта по умолчанию, вам нужно разрешить трафик через этот порт.
Настройка вашего браузера для использования прокси
Теперь, когда у вас настроен Squid, последний шаг - настроить предпочитаемый браузер для его использования.
FireFox
Шаги ниже одинаковы для 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
, введите «узнать свой 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 является одним из самых популярных прокси кеширующих серверов. Это повышает скорость работы веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.