Поиск по сайту:

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


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

Читайте также: как создать HTTP-прокси с помощью Squid в CentOS 7

В этой статье мы объясним, как установить прокси-сервер squid в дистрибутивах Ubuntu и Debian и использовать его в качестве прокси-сервера HTTP.

Как установить Squid на Ubuntu

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

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

sudo apt update

Как только ваши пакеты будут обновлены, вы можете продолжить установку squid, запустить и включить его при запуске системы, используя следующие команды.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable 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 Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Ниже приведены некоторые важные местоположения файлов кальмаров, о которых вам следует знать:

  • Файл конфигурации Squid: /etc/squid/squid.conf
  • Журнал доступа Squid: /var/log/squid/access.log
  • Журнал кэша Squid: /var/log/squid/cache.log

Файл конфигурации по умолчанию содержит некоторые директивы конфигурации, которые необходимо настроить, чтобы повлиять на поведение Squid.

Теперь откройте этот файл для редактирования с помощью редактора Vi и внесите изменения, как показано ниже.

sudo vim /etc/squid/squid.conf

Теперь вы можете искать следующие строки и изменять их по запросу. В редакторе Vi вы можете искать эти строки, нажав 'ESC' и набрав «/» » ключ к написанию конкретных строк, которые нужно искать.

  • http_port: это порт по умолчанию для прокси-сервера HTTP, по умолчанию это 3128. Вы можете изменить его на любой другой порт по вашему желанию, вы также можете добавить Тег transparent в конце строки, например http_port 8888 Transparent, чтобы заставить прокси-сервер Squid действовать как прозрачный прокси-сервер, если хотите.
  • http_access Deny All: эта строка не позволит никому получить доступ к прокси-серверу HTTP, поэтому вам нужно изменить ее на http_access разрешить всем, чтобы начать использовать ваш прокси-сервер Squid. .
  • visible_hostname: эта директива используется для установки конкретного имени хоста для сервера squid. Вы можете дать Squid любое имя хоста.

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

sudo systemctl restart squid

Настройка Squid в качестве HTTP-прокси в Ubuntu

В этом разделе конфигурации squid мы объясним вам, как настроить squid в качестве HTTP-прокси, используя для аутентификации только IP-адрес клиента.

Добавить списки ACL Squid

Если вы хотите разрешить только одному IP-адресу доступ в Интернет через новый прокси-сервер, вам нужно будет определить новый acl (список управления доступом) в файле конфигурации.

sudo vim /etc/squid/squid.conf

Правило acl, которое вам следует добавить:

acl localnet src XX.XX.XX.XX

Где XX.XX.XX.XX — IP-адрес клиентского компьютера. Этот acl следует добавить в начало раздела ACL, как показано на следующем снимке экрана.

Всегда рекомендуется определять комментарий рядом с ACL, который будет описывать, например, кто использует этот IP-адрес.

acl localnet src 192.168.0.102  # Boss IP address

Вам нужно будет перезапустить службу Squid, чтобы новые изменения вступили в силу.

sudo systemctl restart squid

Открытие портов в прокси-сервере Squid

По умолчанию в конфигурации squid разрешены только определенные порты. Если вы хотите добавить больше, просто определите их в файле конфигурации, как показано.

acl Safe_ports port XXX

Где XXX — номер порта, который вы хотите разрешить. Опять же, полезно определить комментарий рядом с acl, который будет описывать, для чего будет использоваться порт.

Чтобы изменения вступили в силу, вам нужно будет перезапустить squid еще раз.

sudo systemctl restart squid

Аутентификация прокси-клиента Squid

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

sudo apt install apache2-utils

Теперь создайте файл с именем “passwd”, в котором позже будет храниться имя пользователя для аутентификации. Squid запускается от имени пользователя “proxy”, поэтому владельцем файла должен быть этот пользователь.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Теперь мы создадим нового пользователя с именем «tecmint» и установим для него пароль.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Теперь, чтобы включить базовую HTTP-аутентификацию, откройте файл конфигурации.

sudo vim /etc/squid/squid.conf

После ACL портов добавьте следующие строки:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Сохраните файл и перезапустите squid, чтобы новые изменения вступили в силу:

sudo systemctl restart squid

Блокировка веб-сайтов на прокси-сервере Squid

Чтобы заблокировать доступ к нежелательным веб-сайтам, сначала создайте файл с именем «blacklisted_sites.acl», в котором будут храниться сайты, занесенные в черный список.

sudo touch /etc/squid/blacklisted_sites.acl

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

.badsite1.com
.badsite2.com

Следующая точка сообщает squid о необходимости заблокировать все ссылки на эти сайты, включая www.badsite1, subsite.badsite1.com и т. д.

Теперь откройте файл конфигурации Squid.

sudo vim /etc/squid/squid.conf

Сразу после приведенных выше списков ACL добавьте следующие две строки:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Теперь сохраните файл и перезапустите Squid:

sudo systemctl restart squid

Блокировать определенное ключевое слово с помощью Squid

Чтобы заблокировать список ключевых слов, сначала создайте файл с именем «blockkeywords.lst», в котором будут храниться ключевые слова из черного списка.

sudo touch /etc/squid/blockkeywords.lst

Теперь добавьте, например, ключевые слова, доступ к которым вы хотите заблокировать.

facebook
instagram
gmail

Теперь откройте файл конфигурации Squid и добавьте следующее правило.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Теперь сохраните файл и перезапустите Squid:

sudo systemctl restart squid

После того, как все настроено точно, вы можете настроить локальный клиентский веб-браузер или сетевые настройки операционной системы для использования недавно настроенного HTTP-прокси squid.

Настройте клиент для использования прокси-сервера Squid

Теперь, чтобы проверить, работает ли ваш прокси-сервер или нет, вы можете открыть Firefox, перейти в Редактировать -> Настройки -> Дополнительно -> Сеть -> Настройки и выбрать «< Strong>Ручная настройка прокси» и введите IP-адрес и порт прокси-сервера, которые будут использоваться для всех подключений, как показано ниже.

После того, как вы заполните все необходимые данные прокси, вы сможете просматривать веб-страницы, используя прокси-сервер Squid. Вы можете делать то же самое в любом другом браузере или программе, которую захотите.

Чтобы убедиться, что вы просматриваете веб-страницы с помощью прокси-сервера, посетите http://www.ipaddresslocation.org/. В правом верхнем углу вы должны увидеть тот же IP-адрес, что и ваш сервер. Айпи адрес.

Дополнительные настройки конфигурации можно найти в официальной документации squid. Если у вас есть какие-либо вопросы или комментарии, оставьте их в разделе комментариев ниже.