Прокси сервер сквид линукс

Боевой прокси-сервер Squid 5.2 с нуля

Всем привет. Появилась необходимость сменить в компании старичка Squid 3.5 с NTLM на FreeBSD, трудящегося с лохматых годов, так как как он не управлял скоростями и функционал работал криво. Было решено ставить Squid 5.2 с авторизацией по Kerberos на Ubuntu 22.04. Конфиг от 3.5 не подходит для 5 версии, поэтому все писалось с нуля. Для удобства чтения настройка будет разбита не несколько статей:

  1. Серверная часть и настройка авторизации Kerberos (Active Directory)
  2. Настройка файла конфигурации Squid
  3. Настройка доступов и скоростей

Немного теории для тех, кто вообще не знает, что это и с чем «едят» кальмара..

Гугл говорит нам замысловато..

Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS. Разработан сообществом как программа с открытым исходным кодом. Все запросы выполняет как один неблокируемый процесс ввода-вывода.

Для новичка может быть вообще ничего непонятно. Проще говоря прокси-сервер встраивается между конечным сайтом и пользователем. Кэширует данные с сайтов, «режет» скорость и позволяет правильно распределить нагрузки на интернет-канал, предоставляет или наоборот закрывает доступы к разным сайтам, например соц.сетям, магазинам и т.п., чтобы ничего не отвлекало наших сотрудников от выполнения их обязанностей 😊

Hidden text

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

Обозначения:

yourdomain.com – вместо этого подставляйте свой домен.

user-px – пользователь от которого запускается squid.

proxy_comp — имя прокси сервера в DNS.

proxy_k – пользователь для Squid в Active Directory.

dc01 – Active Directory 1 сервер.

dc02 — Active Directory 2 сервер (может и не быть в компании).

Читайте также:  Docker engine linux mint

192.168.10.100 – сервер прокси (у вас будет свой).

192.168.10.1 – шлюз (у вас будет свой).

192.168.10.9 — DNS (у вас будет свой).

192.168.10.10 – DNS (у вас будет свой).

192.168.10.222 — IP нашего админского компа.

Переходим к базовой настройке сервера Ubuntu 22.04

Устанавливаем актуальную версию Ubuntu server LTS отсюда:

Настраиваем статический ip адрес в sudo vim /etc/netplan/00-installer-config.yaml

# This is the network config written by ‘subiquity’

Источник

Установка и настройка Squid на Ubuntu

Обновлено

Обновлено: 11.11.2021 Опубликовано: 30.07.2020

Используемые термины: Squid, Ubuntu. Данную инструкцию можно также применять для установки SQUID на Debian. В качестве клиентов могут использоваться Windows, Linux, Mac OS и любые браузеры.

Установка и базовая настройка

Если сеть клиентских компьютеров отличается от стандартной (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), необходимо ее добавить в acl, например:

* кавычки обязательны
** после необходимо создать файл /etc/squid/acl_localnet и с каждой строчки перечислить разрешенные IP-адреса.
С точки зрения безопасности, лучше закомментировать все подсети, которые не используются в нашей локальной сети, например:

# TAG: acl
.
#acl localnet src 0.0.0.1-0.255.255.255
#acl localnet src 10.0.0.0/8
#acl localnet src 100.64.0.0/10
#acl localnet src 169.254.0.0/16
#acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
#acl localnet src fc00::/7
#acl localnet src fe80::/10

* в данном примере мы оставили только подсеть 192.168.0.0/16. Разрешаем доступ для локальных сетей, которые заданы опцией acl localnet:

* данную опцию нужно либо раскомментировать, либо вставить выше опции http_access deny all. Настраиваем директорию для кэша:

* где ufs — файловая система (ufs для SQUID является самой подходящей); /var/spool/squid — директория хранения кэша; 4096 — объем пространства в мегабайтах, которое будет выделено под кэш; 32 — количество каталогов первого уровня, которое будет создано для размещение кэша; 256 — количество каталогов второго уровня, которое будет создано для размещение кэша. Останавливаем squid:

Проверка

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

Заходим в настройки браузера и настраиваем использование прокси-сервера. Например, в Mozilla Firefox настройки нужно выставить такими: * где 192.168.163.166 — IP-адрес моего прокси-сервера. Теперь открываем сайт 2ip.ru. После его загрузки мы увидим внешний IP-адрес — он должен соответствовать той сети, от которой работает настроенный SQUID.

Читайте также:  Линукс минт форматирование флешки

Прозрачный прокси

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

* порт 3128 будет для прозрачного проксирования. Порт 3129 должен быть указан в качестве прокси. И перезапускаем конфигурацию squid:

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

Авторизация по логину и паролю

# TAG: auth_param
.
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/auth_users
auth_param basic children 25
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 3 hours

* где /usr/lib/squid/basic_ncsa_auth — расположение ncsa_auth (в зависимости от системы может находиться в другом каталоге); /etc/squid/auth_users — файл с логинами и паролями; children 25 разрешает 25 одновременных подключений; SQUID PROXY — произвольная фраза для приветствия; credentialsttl 3 hours будет держать сессию 3 часа, после потребуется повторный ввод логина и пароля. Создаем acl для пользователей, которые прошли регистрацию. Сделаем регистрацию обязательной:

Слушаем на определенном интерфейсе

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

* в данном примере squid будет слушать на адресе 192.168.1.15. И перечитываем конфигурацию squid:

Исходящий сетевой интерфейс

На нашем сервере может быть несколько внешний IP-адресов. По умолчанию, все исходящие запросы будут работать через интерфейс со шлюзом по умолчанию. Чтобы иметь возможность работы со squid через разные интерфейсы в настройку вносим:

acl 217_66_157_33 localip 217.66.157.33
tcp_outgoing_address 217.66.157.33 217_66_157_33

acl 217_66_157_34 localip 217.66.157.34
tcp_outgoing_address 217.66.157.34 217_66_157_34

* в данном примере, при подключении к прокси через IP 217.66.157.33, исходящие пакеты будут от IP 217.66.157.33; аналогично для IP 217.66.157.34. Перечитываем конфигурацию squid:

Настройка цепочки прокси-серверов

  • hostname — другой сервер, на который мы будем передавать запрос.
  • type — тип «родства» другого сервера. Могут быть варианты:
    • parent
    • sibling
    • multicast

    * более подробное описание можно найти в самом конфигурационном файле SQUID.

    Если на прокси, к которому мы подключаемся, необходима авторизация, добавляем опцию login:

    cache_peer 10.11.12.13 parent 3128 3128 proxy-only login=loginname:password

    Запрещаем использование нашего прокси-сервера напрямую (не через cache_peer):

    # TAG: never_direct
    .
    never_direct allow all

    Перечитываем конфигурацию squid:

    Источник

    About Squid proxy servers

    Squid is a proxy cache server which provides proxy and cache services for Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP), and other popular network protocols.

    It acts as an intermediary between web servers and clients. When a client sends a request for content, Squid fetches the content from the web server and creates a local copy. Then, if a request is made again, it shows the local, cached copy instead of making another request to the web server. In this way, performance is improved and network bandwidth is optimised. It can also filter web traffic, helping to improve security.

    Features

    The Squid proxy cache server scales from the branch office to enterprise level networks. It provides extensive, granular access controls, and monitoring of critical parameters via the Simple Network Management Protocol (SNMP).

    When selecting a computer system for use as a dedicated Squid caching proxy server, it is helpful to configure it with a large amount of physical memory as Squid maintains an in-memory cache for increased performance.

    Caching

    Squid can implement caching and proxying of Secure Sockets Layer (SSL) requests and caching of Domain Name Server (DNS) lookups, and perform transparent caching. Squid also supports a wide variety of caching protocols, such as Internet Cache Protocol (ICP), the Hyper Text Caching Protocol (HTCP), the Cache Array Routing Protocol (CARP), and the Web Cache Coordination Protocol (WCCP).

    If you would like to know how to install and configure your own Squid server, refer to our installation guide.

    Further reading

    Источник

Оцените статью
Adblock
detector