Веб-прокси уже давно существуют и используются миллионами пользователей по всему миру.
Они имеют широкий спектр целей, наиболее популярными являются онлайн-анонимность, но есть и другие способы использования веб-прокси.
Вот несколько идей:
- Интернет-анонимность
- Улучшение безопасности в Интернете
- Увеличение времени загрузки
- Блокировать вредоносный трафик
- Зарегистрировать свою онлайн-активность
- Чтобы обойти региональные ограничения
- В некоторых случаях можно уменьшить использование полосы пропускания
Как работает прокси-сервер
Прокси-сервер – это компьютер, который используется в качестве посредника между клиентом и другими серверами, из которых клиент может запрашивать ресурсы. Простым примером этого является то, что клиент делает онлайн-запросы (например, хочет открыть веб-страницу), он сначала подключается к прокси-серверу.
Затем прокси-сервер проверяет свой локальный кеш диска и, если данные могут быть найдены там, он будет возвращать данные клиенту, если он не кэширован, он сделает запрос от имени клиента, используя IP-адрес прокси (отличный от клиентов), а затем вернет данные клиенту.
Прокси-сервер попытается кэшировать новые данные и будет использовать их для будущих запросов, сделанных на тот же сервер.
Что такое Squid Proxy
Прежде чем мы начнем, вы должны знать, что Squid не имеет минимальных требований, но объем использования ОЗУ может варьироваться в зависимости от клиентов, просматривающих Интернет через прокси-сервер.
Squid включен в базовый репозиторий, и, таким образом, установка проста и понятна.
Однако перед установкой убедитесь, что ваши пакеты обновлены, запустив.
# yum -y update
Продолжайте установку squid, запустите и включите его при запуске системы, используя следующие команды.
# yum -y install squid # systemctl start squid # systemctl enable squid
В этот момент ваш веб-прокси Squid уже должен быть запущен, и вы можете проверить статус службы.
# systemctl status squid
Пример вывода:
squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago Main PID: 2005 (squid) CGroup: /system.slice/squid.service ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf ├─2007 (squid-1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy... Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.
Вот некоторые важные местоположения файлов, о которых вам следует знать:
- Squid конфиг: /etc/squid/squid.conf
- Squid Логи доступа: /var/log/squid/access.log
- Squid Логи кэша: /var/log/squid/cache.log
Минимальный файл конфигурации squid.conf (без комментариев в нем) выглядит так:
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all http_port 3128 coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320
Настройка Squid как HTTP-прокси
Здесь мы покажем вам, как настроить squid как HTTP-прокси, используя только IP-адрес клиента для аутентификации.
Добавить ACL Squid
Если вы хотите разрешить IP-адрес для доступа к сети через ваш новый прокси-сервер, вам нужно будет добавить новую строку acl (список контроля доступа) в файле конфигурации.
# vim /etc/squid/squid.conf
Сама строчка:
acl localnet src XX.XX.XX.XX
де XX.XX.XX.XX – это фактический IP-адрес клиента, который вы хотите добавить.
Строку следует добавить в начале файла, в котором определены списки ACL.
Рекомендуется добавить комментарий рядом с ACL, который будет описывать, кто использует этот IP-адрес.
Важно отметить, что если Squid находится за пределами вашей локальной сети, вы должны добавить публичный IP-адрес клиента.
Вам нужно будет перезапустить Squid, чтобы новые изменения вступили в силу.
# systemctl restart squid
Открыть прокси-порты Squid
Как вы могли видеть в файле конфигурации, для подключения разрешены только определенные порты.
Вы можете добавить больше, отредактировав файл конфигурации.
acl Safe_ports port XXX
Где XXX – фактический порт, который вы хотите разрешить.
Опять же, неплохо оставить комментарий рядом с описанием того, для чего будет использоваться порт.
Чтобы изменения вступили в силу, вам нужно снова запустить squid.
# systemctl restart squid
Аутентификация клиента прокси-сервера Squid
Скорее всего, вы захотите, чтобы ваши пользователи прошли аутентификацию перед использованием прокси.
С этой целью вы можете включить базовую HTTP-аутентификацию.
Его легко и быстро настроить.
Сначала вам понадобятся httpd-tools.
# yum -y install httpd-tools
Теперь давайте создадим файл, который позже сохранит имя пользователя для аутентификации.
Squid работает с пользователем «squid», поэтому файл должен принадлежать этому пользователю.
# touch /etc/squid/passwd # chown squid: /etc/squid/passwd
Теперь мы создадим нового пользователя под названием «proxyclient» и настроим его пароль.
# htpasswd /etc/squid/passwd proxyclient New password: Re-type new password: Adding password for user proxyclient
Чтобы настроить аутентификацию, откройте файл конфигурации.
# 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, чтобы новые изменения вступили в силу:
# systemctl restart squid
Блокировать веб-сайты на Squid Proxy
Наконец, мы создадим один последний ACL, который поможет нам заблокировать нежелательные сайты.
Сначала создайте файл, в котором будут храниться сайты с черным списком.
# touch /etc/squid/blacklisted_sites.acl
Вы можете добавить некоторые домены, которые хотите заблокировать. Например:
.tsarev.org .code.by
Контрольная точка указывает squid, чтобы блокировать все ссылки на эти сайты, включая www.tsarev, oleg.tsarev.org и т. д.
Теперь откройте файл конфигурации Squid.
# vim /etc/squid/squid.conf
После ACL портов добавьте следующие две строки:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access deny bad_urls
Теперь сохраните файл и перезапустите squid:
# systemctl restart squid
После правильной настройки настройте теперь свой локальный клиентский браузер или сетевые настройки операционной системы, чтобы использовать прокси-сервер HTTP-squid.
Вывод
В этом уроке вы узнали, как устанавливать, защищать и настраивать собственный сервер Squid HTTP Proxy.
С информацией, которую вы только что получили, теперь вы можете добавить базовую фильтрацию для входящего и исходящего трафика через Squid.
См. также:
- Аутентификация NTLM Squid (NTLM_Auth)
- Squid Cache refresh_pattern для антивирусных обновлений Windows
- Настроить Squid, чтобы он не кэшировал определенный домен или веб-сайт
- Как заблокировать домен с помощью squid в Windows 7
- Как установить Squid в Windows 7
- Как ограничить сайты для пользователя прокси-сервера squid в определенное время