Как настроить сервер Squid Proxy на Ubuntu и Debian |

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

Мануал

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

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

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

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

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

$ sudo apt update

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

$ 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, о которых вы должны знать:

  • Файл конфигурации 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 proxy действовать, как прозрачный прокси, если хотите.
  • http_access deny all: эта строка не позволит никому получить доступ к прокси-серверу HTTP, поэтому вам нужно изменить его на http_access, чтобы все могли начать использовать ваш прокси-сервер Squid.
  • visible_hostname: эта директива используется для установки конкретного имени хоста на сервер 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 Proxy

По умолчанию в конфигурации 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 Proxy

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

Теперь, чтобы проверить, работает ли ваш прокси-сервер или нет, вы можете открыть Firefox и перейти в Edit -> Preferences -> Advanced -> Network -> Settings и выбрать «Manual proxy configuration» и ввести IP-адрес и порт вашего прокси-сервера, который используется для всех соединений.

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

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

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Дмитрий

    Есть вопрос по squid ни где не могу найти ответ. У меня настроенный сквид, все работает. Встала задача с черным списком, размер файла со списком запрещенных сайтов получился более 300 мегабайт и при подключении его сквид не запускается. Может какой параметр необходимо поправить?

    Ответить
    1. cryptoparty автор

      вроде monitorsize и по умолчанию у него значение 0, т.е. без ограничений

      Ответить