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-адрес вашего сервера.
Есть вопрос по squid ни где не могу найти ответ. У меня настроенный сквид, все работает. Встала задача с черным списком, размер файла со списком запрещенных сайтов получился более 300 мегабайт и при подключении его сквид не запускается. Может какой параметр необходимо поправить?
вроде monitorsize и по умолчанию у него значение 0, т.е. без ограничений