Как поднять https прокси сервер

Как поднять прокси-сервер

Многие люди, которые являются владельцами индивидуальных прокси-серверов, зачастую задаются вопросом о том, как поднять свой прокси-сервер в социальной сети, поисковиках либо в других целях. Большинство пытались сделать это собственными силами, однако по тем или иным причинам попытки не увенчались успехом. В обзоре будет приведен в пример один из тысячи возможных сервисов, при помощи которого можно поднять прокси для индивидуального использования.

Проведение регистрации прокси-сервера через сервис под названием Gigspace

Для того чтобы провести регистрацию и заказать дополнительные ip-адреса, необходимо выполнить несколько несложных этапов.

Цитата: Очень важно отыскать исключительно официальный сайт и внимательно изучить всю имеющуюся информацию на нем, чтобы не попасться на мошенников.

Пришло время ознакомиться подробнее с пошаговой инструкцией:

Для этого надо посетить сайт gigspace.ru и нажать на кнопку под названием «Заказ» (она размещена под VDS).

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

Как говорилось выше, вам надо указать тот тариф, который соответствует вашим требованиям. Касаемо типа клиента, то здесь надо выбрать вариант под названием «Новый пользователь».

Здесь ничего сложного нет, от вас требуется ввести ваши личные данные. После этого надо выбрать самый стандартный тариф.

Цитата: При регистрации желательно указать, что ваш сервер не будет иметь доменное имя, так будет намного легче поднять сервер. А касаемо оплаты стоит отметить, что ее лучше проводить на месяц вперед, так как за это может быть предоставлена неплохая скидка.

Если мы поднимаем прокси ipv4, поднимаем ipv6 прокси, то при оформлении заказа надо оставить комментарий по типу: «Здравствуйте. Дополнительный адрес планирую использовать в качестве прокси для работы в социальных сетях на мобильном телефоне». Если этого не писать, то придется выполнить несколько дополнительных шагов, чтобы его настроить.

Далее надо выбрать метод оплаты. Желательно остановить свой выбор на Вебмани, так как это один из удобных способов. После выполнения платежной операции в течение суток ваш сервис будет создан (оповещение о проделанных этапах придет на вашу электронную почту).

Поднятие прокси-сервера при помощи 3proxy

Не знаете, как поднять прокси-сервер на Windows? Мы подготовили для вас несколько советов о том, как настроить прокси-сервер под названием «3proxy», чтобы использовать его уже с другим адресом — ipv6.

Цитата: Протокол ipv6 набирает невероятную популярность, что обуславливается большим количеством адресов, которое в несколько миллионов раз больше, чем у его предшественника ipv4.

В хранилище популярной ОС Windows хранится программа (старые ее вариации). Именно по этой причине здесь будет рассмотрен вариант по инсталляции «3proxy» из исходных кодов. Загрузку можно произвести из официального хранилища разработчиков на github. Чтобы поднять ipv6, надо выполнить несколько пунктов:

Теперь узнаем подробнее обо всех этапах.

Для того чтобы скомпилировать коды, необходимо воспользоваться программами под названием «GCC» и «Make».

Цитата: Дополнительные приложения «GCC», «Мейк» не идут с дистрибутивом в стандартной версии, вследствие чего их придется инсталлировать самостоятельно.

После установки нужно подключиться к серверу (при условии использования операционной системы Windows), вы можете использовать Gigspace, например. Затем установите весь необходимый пакет сборок для «3proxy» при помощи кодов-исходников.

После того как прокси инсталлирован, надо в обязательном порядке провести подготовку файла к будущей конфигурации. Для этого специалисты рекомендуют применить связку «Note pad ++». Не забудьте определиться с адресом и портом. Предположим, что используется один адрес под названием ipv4 и два прокси-адреса ipv6.

Цитата: Запомните, что при условии использования клавиши «Alt» вместе с выделением курсоров, можно значительно ускорить рабочий процесс, связанный со списками.

Во время выполнения конфигурации не забудьте сменить стандартные данные своими:

Далее просто сохраните сконфигурированный файл в папку «Домашняя директория». Для того чтобы загрузить файл на конкретный сервер (выбранный заранее), у вас есть возможность использовать программу WinSCP (при условии использования операционной системы Windows).

Подведение итогов

Изучив все вышесказанное и воспользовавшись данными советами, вы сможете благополучно поднять прокси на Windows. Главное, сделать правильный выбор сервера, на который вы будете загружать сконфигурированные файлы. Стоит отметить, что хостингов, помимо Gigspace, существует большое количество других вариантов. Однако эти серверы получили признание многих пользователей благодаря таким преимуществам как:

Если же вы задаетесь вопросом о том, как поднять мобильные прокси при помощи другого хостера, то вы сможете воспользоваться этими советами. Однако вам придется обращать внимание на требования.

Источник

Поднимаем несколько мобильных прокси на windows

В этой статье расскажу о том, как легко поднять свои мобильные прокси на модемах с прошивкой hilink на windows. На одном компе с виндой можно поднять до 15 ти мобильных прокси (15 модемов), потом действует ограничение на кол-во подключённых usb интерфейсов и винда просто напросто не видит наши модемы! Но это нам не мешает, ведь мы можем масштабиться, купив несколько ПК.

Что нам нужно:
— комп на борту Windows 7/10
— 4G модем Huawei E3372h или кому ещё нужно бюджетнее вариант то 3G модемы Huawei E3531
— USB хаб с активным питанием (от розетки)
— симки само собой с активированным инетом

Роутер сгодиться любой, думаю он у вас есть. Он нужен всего лишь для подключения основного интернета со статическим ip и проброса портов, но опять же зависит от загруженности ваших проектов. Кстати есть возможность использовать 4G модем как основное подключение в связке со сторонним сервисом или купить симку уже со статическим белым ip. Для этого лучше купить роутер (тот же микротик например) с поддержкой USB порта.

К модемам главное требование, чтобы они были прошиты модифицированной прошивкой, где есть возможность замены IP адреса (шлюза) в настройках dhcp сервера!

Первым делом смотрите наличие этой функции в вашей прошивке. Если нету, то можете найти прошивку и перепрошить свой модем. Вот прошивка для модема Huawei E3372h.

Так же советую взять USB удлинители для разноса модема в разные стороны, чтобы они не грелись и не глушили друг друга. Хватит и 0,5 метров USB кабеля, самое главное не продешевите и не купите самые дешёвые.

Приступим непосредственно к самой настройке.

Настроили мы модемы. Подключаем все модемы к компу через USB хаб. Они должны все определиться в сетевых подключениях как сетевые карты NDIS

Ethernet 21 это моё основное подключение от роутера (проводной инет со статикой) с локальным ip 192.168.88.3
Ethernet 20 это первый модем с шлюзем 192.168.2.1
Ethernet 23 это второй модем с шлюзем 192.168.3.1
Ethernet 24 это третий модем с шлюзем 192.168.4.1

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

Если ip показал от одного из модемов. то нужно сделать следующее- перейти в сетевые подключения, нажать ПКМ на основное подключение (в моём случае Ethernet 21) и перейти в свойства.

Кстати я сразу задал компу статический локальный ip 192.168.88.3 (не путайте со статическим белым ip от провайдера), чтобы он не менялся при перезагрузке роутера (в данном случае у меня микротик с подсетью 192.168.88.0/24).

192.168.88.3 — статический локальный ip компа
255.255.255.0 — маска подсети (/24 подсеть)
192.168.88.1 — это шлюз и днс (он же ip от веб интерфейса вашего роутера)

Нажимаем на дополнительно и настраиваем метрику как на скрине

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

Устанавливаем 3proxy сервер на windows

В зависимости от разрядности ОС 64/32 bit скачиваем нужную версию 3proxy

Разархивируем архив у корень диска С и переименуем папку в «3proxy»

Переходим в папку C:\3proxy\bin64\ или если 32 битная версия то C:\3proxy\bin\

Создаём тестовый документ 3proxy.txt — это будет конфиг прокси

Открывает конфиг и вставляем следующее содержимое

Так же подредактируйте первую строку в зависимости от установленной версии 3Proxy.

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

192.168.88.3 — это локальный ip адрес компа
192.168.2.100 — это ip первого модема (шлюз 192.168.2.1)
192.168.3.100 — это ip второго модема (шлюз 192.168.3.1)
192.168.4.100 — это ip третьего модема (шлюз 192.168.4.1)

В данном примере мы создали 3 прокси протокола http/s с авторизацией по логину и паролю.
Где login1 это логин, pass1 пароль, можете поменять на свои, но имейте в виду логин прописывается в 2-х местах!

Осталось только запустить 3proxy как службу. Для этого открываем командную строку с правами администратора и забиваем команду
Для 32 бит

После этого мы можем проверять свои прокси на этом же компе.

192.168.88.3:8062:login1:pass1
192.168.88.3:8063:login1:pass1
192.168.88.3:8064:login1:pass1

Так же для проверки наличия интернета на модемах я использую команду ping из командной строки. Так можно прочекать есть ли инет на всех модемах!

Открываем CMD и забиваем след команды поочерёдно, должны пойти пинги. Если нет то смотрите тариф, симку, уровень сигнала, профиль на модеме и т.п.

Если хотите использовать эти прокси в локалке то нужно открыть порта в брандмауэре!

Указываем диапазон своих портов

После этого прокси будут работать и на других компах подключенные к вашему роутеру.

Смена ip по таймауту настраивается через сторонний софт MasterModems, разработанный специально для этих целей.

пример заполнения файла data.txt:
Формат:
IP3G/4GReconnect timeout (minutes)

где указывается шлюз модема, режим работы модема, таймаут смены ip в минутах

Для приобретения софта пишите мне в ЛС vk или tg

Обзор настройки мобильных прокси на виндовс (много модемов)

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как создать и настроить прокси-сервер Squid

Оглавление

Прокси-сервер Squid

В этой инструкции мы познакомимся с основами настройки Squid, то есть сможем поднять свой собственный прокси-сервер на своём сервере, научимся настраивать прокси-сервер Squid для работы с несколькими IP адресами, настроим различные способы аутентификации клиентов, узнаем нюансы функционирования Squid, которые могут иметь отношение к анонимности.

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

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

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

Команды установки Squid различаются на разных Linux, но последующая настройка одинакова во всех дистрибутивах. В этой статье мы будем использовать Squid в качестве HTTP/HTTPS прокси-сервера без кэширования.

Читайте также:  Что означает индукционное дно у кастрюли

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

Выбрать Squid или 3proxy?

Если для вас не важна такая функциональность как кэширование, а важно в первую очередь скрывать IP адрес или делать запросы с множества IP адресов, то функциональность Squid и 3proxy схожа в этом плане. Прокси-сервер 3proxy и создавался как замена Squid. На самом деле изначально эта инструкция задумывалась про 3proxy, но я не сумел запустить его: потратив несколько бесплодных часов я сдался и прекратил попытки запустить службу, которая просто завершает свою работу не выводя никаких сообщений ни в stderr, ни в системный журнал, ни в какой-либо файл. Да, я читал мануалы, читал официальную документацию на сайте, даже гуглил инструкции — не заработало…

С Squid всё получилось довольно быстро, поэтому сейчас вы читаете про прокси-сервер Squid.

Но 3proxy это тоже популярный прокси-сервер и я обязательно доразберусь с ним и ему будет посвящена отдельная статья. Что-то мне подсказывает, что не смотря на обилие документации на официальном сайте, не мне одному нужна рабочая и понятная инструкция по работе с 3proxy и его настройке ))

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

Как установить Squid на Debian, Linux Mint, Ubuntu, Kali Linux

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

После обновления информации о пакетах, вы можете продолжить установку squid:

Установка Squid в Arch Linux, Manjaro и их производные

Выполните обновление кэша информации об установочных пакетах и саму установку следующей командой:

Установка Squid в CentOS

Обновляем информацию о пакетах:

Запуск и добавление Squid в автозагрузку

Следующие команды одинаковы во всех дистрибутивах Linux для запуска Squid.

Чтобы запустить прокси-сервер выполните:

На этом этапе ваш веб-прокси Squid уже должен быть запущен, и вы можете проверить статус службы с помощью:

Для добавления службы Squid в автозагрузку выполните команду:

Далее мы будем вносить изменения в конфигурационный файл прокси-сервера, чтобы они вступили в силу выполните:

Для остановки и удаления службы прокси-сервера из автозагрузки используйте команды:

Установка Squid в Windows

Squid может компилироваться и запускаться в Windows как системная служба с использованием среды эмуляции Cygwin или может быть скомпилирован в собственном режиме Windows с использованием среды разработки MinGW + MSYS. Поддерживаются Windows NT 4 SP4 и более поздние версии.

Предварительно созданные двоичные пакеты Squid для Windows

Это самый простой способ получить Squid в Windows — проект с открытым исходным кодом https://github.com/diladele/squid-windows предоставляет файлы установщика MSI Windows для Squid Proxy Server. Он делает возможным установку Squid буквально в несколько кликов. Текущая сборка основана на последней сборки Squid 4.14 для Cygwin под Windows 64 bit.

Для скачивания установщика перейдите на сайт: https://squid.diladele.com/ и нажмите ссылку «MSI installer for SQUID FOR WINDOWS».

Запустите скаченный файл двойным кликом и следуйте подсказкам установщика.

Сразу после завершения работы установщика, рядом с часами появится иконка для управления службой Squid:

При клике на неё будут доступны следующие опции:

Путь до конфигурационного файла в Windows: C:\Squid\etc\squid\squid.conf. Имейте это ввиду, так как во всех последующих разделах настройка будет показана на примере Linux.

Чтобы сделанные в конфигурационном файле изменения вступили в силу, нужно перезапустить службу Squid, для этого остановите и запустите её снова.

Служба Squid будет автоматически запускаться при включении компьютера, а чтобы появилась иконка в трее для управления Squid нужно запустить файл C:\Squid\bin\Diladele.Squid.Tray.exe.

В конфигурационном файле вы можете увидеть пути вроде такого: «/cygdrive/d/squid/cache». Чтобы их понимать, посмотрите «Как получить доступ к дискам в Cygwin». В данном случае /cygdrive/d/squid/cache это D:\squid\cache.

Также там будут пути вроде такого: /var/cache/squid — это всё директории внутри папки C:\Squid. То есть, например, /var/cache/squid — это на самом деле C:\Squid\var\cache\squid\.

Чтобы проверить, действительно ли служба Squid прослушивает порт для подключения, вы можете выполнить следующее:

1. Нажмите Win+x и в открывшемся меню выберите «Windows PowerShell (администратор)».

2. Последовательно выполните команды:

Вы убедитесь, что Squid действительно прослушивает порт 3128.

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

Далее выполнение всех действий показано на примере Linux, поскольку Squid намного сильнее распространён именно на Linux, а не на Windows. Тем не менее, вы, пользователи Windows, можете использовать последующую информацию для настройки Squid на Windows. Но вам нужно иметь ввиду следующие нюансы:

1. Когда приводится команда на открытие файла, вы должны открывать свой конфигурационный файл, путь до которого дан чуть выше.

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

Если вы продвинутый пользователь, то можете управлять службой в командной строке (открытой с правами администратора):

Для управления автозапуском службы, смотрите статью «Как отключить автозапуск программ и служб в Windows».

3. Скорее всего (я не проверял) вы не сможете настроить авторизацию по логину и паролю на прокси-сервере, так как многие (или все) помощники не работают в Windows.

4. В конфигурационном файле пути до файлов в Linux и Windows могут совпадать, так как Cygwin эмулирует рабочее окружение Linux, но перепроверяйте.

Конфигурационный файл Squid

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

По умолчанию конфигурационный файл Squid не пустой — его содержимое различается в зависимости от дистрибутива Linux и в любом случае в нём довольно много директив с настройками. Не спешите их удалять — прокси-сервер Squid устроен так, что если подключение не разрешено явно в его настройках, то он отклоняет все подключения.

В дистрибутивах на основе Debian (Kali Linux, Linux Mint, Ubuntu) в файле /etc/squid/squid.conf содержится полная документация (8500 строк) среди которой есть вкрапления настроек — незакомментированные строки начинаются после 1200+ строки). В дистрибутивах на основе Arch Linux в файле /etc/squid/squid.conf содержится только рекомендуемая минимальная конфигурация, которая приведена ниже.

С помощью следующей команды вы можете посмотреть, какие директивы по умолчанию включены в Debian:

Кратко ознакомимся с содержимым конфигурационного файла по его комментариях.

ИМХО, удобнее делать настройку с нуля, особенно если у вас в этом файле целиком помещена документация. Поэтому сделаем резервную копию конфигурационного файла:

А в дальнейшем будем записывать конфигурационные директивы в новый пустой файл.

Настройка Squid в качестве HTTP-прокси в Linux. Как разрешить подключаться к прокси только определённым IP

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

Добавление ACL Squid

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

Вам следует добавить следующее правило acl:

Вы могли видеть примеры правил acl выше.

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

Пример минимальной конфигурации, когда к прокси-серверу разрешено подключение только с IP адреса 185.117.153.79, в качестве порта прокси-сервера используется 4080:

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

С помощью веб-браузера проверим подключение к прокси-серверу.

В первую попытку сделано подключение НЕ с 185.117.153.79 (единственный разрешённый IP адрес):

Мы получили ожидаемую ошибку:

После того, как я поменял свой IP адрес на 185.117.153.79 (единственный разрешённый IP адрес), подключение прошло нормально.

Посмотрим на журнал подключений прокси-сервера:

Как вы можете увидеть, все запросы с IP адреса 84.53.229.35 имеют статус «TCP_DENIED/403», то есть отклонены. А запросы с разрешённого IP адреса 185.117.153.79 имеют статус «TCP_TUNNEL/200» и «TCP_MISS/200».

Показан IPv6 адрес моего прокси-сервера.

Как скрыть, что используется прокси-сервер Squid

И прокси-сервер успешно обнаружен, меня выдал HTTP заголовок:

RFC2616 требует, чтобы прокси-сервера добавляли этот заголовок в запрос и ответ. Прокси-сервер Squid может быть скомпилирован с поддержкой нарушения HTTP стандартов. Ранее для этого требовалось при компиляции указать опцию —enable-http-violations, а теперь поддержка нарушения стандартов включена по умолчанию (для её отключения нужно скомпилировать с опцией —disable-http-violations). Вы можете добавить в файл настроек следующую директиву, в результате чего HTTP заголовок Via не будет добавляться:

Заголовок X-Forwarded-For не требуется стандартами и по умолчанию отключён, тем не менее, для большей уверенности вы можете отключить его явно:

Тег forwarded_for может иметь одно из следующих значений:

Если установлено значение «on», Squid будет добавлять IP-адрес вашего клиента в HTTP-запросы, которые он пересылает. По умолчанию это выглядит так:

Если установлено значение «off», Он будет отображаться как

Если установлено значение «transparent», Squid никоим образом не изменит заголовок X-Forwarded-For.

Если установлено значение «delete», Squid удалит весь заголовок X-Forwarded-For.

Если установлено значение «truncate», Squid удалит все существующие записи X-Forwarded-For и поместит IP-адрес клиента в качестве единственной записи.

После добавления «via off» и перезапуска прокси-сервера, этот HTTP заголовок исчез.

Но не удалось перехитрить сервисы, по поиску утечек:

Они смогли определить, что используется прокси по следующим признакам:

Но настоящий IP пользователя за прокси они узнать не смогли.

Обратите внимание, что выполнять какие-либо манипуляции с трафиком, в том числе с HTTP заголовками, прокси сервер может только если веб-сайт работает на протоколе HTTP, при использовании протокола HTTPS, любые изменения передаваемых данных невозможны, поскольку трафик зашифрован. То есть при обращении к сайтам на HTTPS протоколе заголовок Via не добавляется в любом случае.

Настройка подключения к прокси-серверу Squid по логину и паролю

Как настроить HTTP Basic аутентификацию в Squid

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

В Debian и производных это пакет apache2-utils, для его установки используйте следующую команду.

В Arch Linux и производных данная утилита содержится в пакете apache:

В CentOS нужный пакет называется httpd-tools, установите его:

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

Опция -c в предыдущей команде нужна для создания нового файла (или перезаписи существующего), если вы хотите модифицировать файл (изменить пароль для одного из пользователей или создать новую запись для другого пользователя), запускайте команду без этой опции:

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

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

Читайте также:  Сами знали на что шли мы и пусть

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

Несколько пояснений по данным директивам:

Обратите внимание, что в различных дистрибутивах Linux путь до файла basic_ncsa_auth может чуть различаться:

В некоторых системах файл расположен в обоих директориях (Arch Linux).

Вы можете проверить, где именно в вашей системе расположен файл:

На сервере, который я настраиваю путь до файла /usr/lib/squid/basic_ncsa_auth и прокси сервер использует порт 4080, тогда конфигурация следующая:

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

Попробуем открыть веб-сайт в веб-браузере, использующем наш прокси:

После ввода имени пользователя и пароля мы можем просматривать сайты через прокси.

Посмотрим журнал /var/log/squid/access.log:

Можно увидеть, что вначале статус TCP_DENIED, то есть запрос отклонён, но после ввода логина и пароля прокси стал принимать запросы. Также обратите внимание, что теперь запросы принимаются независимо от IP адреса пользователя.

Как настроить HTTP Digest аутентификацию в Squid

Basic аутентификация плоха тем, что пароль передаётся фактически в виде простого текста (кодирован в Base64). Подробности смотрите в статье «Атаки на HTTP Basic и Digest аутентификацию».

Поэтому предпочтительнее использовать Digest аутентификацию на проксе сервере Squid.

Начнём с создания файла с хешем пароля, это делается командой вида:

REALM — это область применения. В качестве REALM может быть любая строка, но помните, что эта же самая строка впоследствии будет показана в форме ввода имени пользователя и пароля.

Пример команды создающей файл с хешем пароля для пользователя mial:

Пример конфигурационного файла для HTTP Digest аутентификация в Squid:

Обратите внимание на строку «auth_param digest realm Squid proxy for HackWare.ru», в ней вместо «Squid proxy for HackWare.ru» впишите ту же строку, которую вы указали при использовании команды htdigest.

Пояснение по директивам смотрите выше в разделе «Настройка HTTP Basic аутентификации в Squid».

Обратите внимание, что не только изменена вспомогательная программа (digest_file_auth), но и после неё используется опция -c, за которой следует путь до файла с хешем пароля пользователя. Все остальные директивы схожи с HTTP Basic аутентификацией, за тем исключением, что слово «basic» в них заменено на слово «digest».

Как отключить кэширование в Squid

Кэширование полезная технология, плюсы которой описаны выше. Но если вы используете прокси-сервер для смены своего IP адреса, то в большинстве случаев кэширование не требуется. Но при этом кэш потребляет ресурсы сервера — оперативную память и место на диске.

Если вы хотите отключить кэширование в Squid, то добавьте следующую директиву:

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

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

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

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

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

И добавьте в него следующие строки:

Очень важен порядок http_access — если в вашем конфигурационном файле есть описанная выше директива для включения аутентификации на прокси-сервере по паролю («http_access allow auth_users»), то блокировка доменов должна идти перед ней, иначе не будет работать:

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

Эта блокировка работает для сайтов использующих протокол HTTP, а также для сайтов использующих протокол HTTPS. Но в зависимости от используемого протокола сообщение ошибки будет разным. Для сайтов на HTTP будет чёткое сообщение:

Также для сайтов на HTTP можно настроить свои собственные сообщения об ошибках, в том числе для каждого сайта в отдельности.

Для сайтов на HTTPS будет ошибка «Прокси-сервер отказывается принимать соединения». Различие из-за того, что протокол HTTP позволяет вмешиваться в передаваемый трафик и полностью менять страницу сайта, в данном случае показывая ошибку. Что касается HTTPS, то прокси-сервер не может как-либо модифицировать передаваемые данные, но всё ещё может заблокировать запрос от пользователя на этапе разрешения имён (DNS запрос) или на этапе SSL/TLS-рукопожатия, когда запрашиваемый домен передаётся в открытом виде. Поэтому других мер, кроме как прервать подключение, у прокси нет.

Кроме dstdomain, также имеются такие типы ACL как dstdom_regex (домены по регулярным выражениям), url_regex (поиск совпадение по регулярном выражениям в полном URL), urlpath_regex (поиск совпадение по регулярном выражениям в пути URL) и некоторые другие. Подробнее они рассмотрены в карточке программы:

Как работает ACL в Squid

Основы ACL в Squid

Остановимся теперь на том, как именно работают ACL.

Схема управления доступом веб-прокси-сервера Squid состоит из двух разных компонентов:

Вы также можете использовать списки определений, которые хранятся в файлах на вашем жёстком диске. Предположим, у вас есть список URL-адресов поисковых систем, которые вы хотите разрешить:

Тогда ACL для этого файла будет выглядеть так:

Кавычки здесь необходимы чтобы сообщить Squid, что ему нужно искать определения в этом файле.

Кроме уже упомянутых типов src, port, dstdomain, proxy_auth имеется десятки других типов, например:

Полный список вы найдёте в документации squid: http://www.squid-cache.org/Doc/config/acl/. Перевод здесь:

Сами по себе Элементы acl ничего не меняют в поведение прокси-сервера, это только списки для дальнейшего использования с Правилами списка доступа. Как витиевато сказано в документации, сами по себе эти тесты ничего не делают, например, слово «воскресенье» соответствует дню недели, но не указывает, в какой день недели вы это читаете.

Использование ACL: http_access

Если вы записали только списки управления доступом, то фактически ничего не блокируется — это всего лишь определения. ACL можно использовать в различных местах вашего squid.conf. Самая полезная функция, с которой они могут использоваться в паре, это инструкция http_access. Она работает аналогично тому, как брандмауэр обрабатывает правила. Для каждого запроса, который получает Squid, он будет просматривать все операторы http_access по порядку, пока не найдёт соответствующую строку. Затем он либо принимает, либо отклоняет запрос в зависимости от ваших настроек. Остальные правила, идущие после сработавшего, игнорируются.

Общий синтаксис http_access следующий:

То есть администраторы имеют доступ ко всем сайтам (даже porn) в любое время, а остальные пользователи имеют доступ в сеть только в обеденный перерыв.

Объединение ACL (И/ИЛИ)

Часто вам нужно комбинировать ACL. Допустим, вы хотите разрешить доступ к google.com только для бэк-офиса. Для этого нужно объединить два ACLS с помощью логического И. Это выглядело бы так:

Если вы хотите использовать ИЛИ и сказать, что либо доступ из бэк-офиса, либо доступ к google.com разрешён, правило будет выглядеть так:

Подводя итог: для И необходимо размещение условий в одной строке. Для ИЛИ необходимо использование отдельных строк.

Следующий набор правил неправильный, он никогда не сработает:

Чтобы разрешить доступ через прокси IP адресам 10.0.0.1 и 10.0.0.2 правило нужно записать так:

Другие правила списка доступа

Кроме http_access имеется пара десятков других типов, например:

Правило http_access по умолчанию

Если во всём конфигурационном файле отсутствуют строки с «http_access», то по умолчанию запрос отклоняется.

Если ни одна из строк «http_access» не приводит к совпадению, значение по умолчанию — противоположно последней строке в списке. Если последняя строка была deny, по умолчанию применяется значение allow. И наоборот, если последняя строка allow, по умолчанию будет применено deny. Мудрёно, да? По этим причинам рекомендуется иметь запись «deny all» в конце ваших списков доступа, чтобы избежать возможной путаницы. То есть после всех правил просто добавляйте строку:

Итак, вернёмся к нашей комбинации правил «блокировка сайтов + авторизация на прокси-сервере», почему следующий набор неправильный?

Дело в том, что вначале срабатывает правило требующее авторизации на сервере, а именно «http_access allow auth_users». Все последующие директивы http_access просто пропускаются, поэтому сайты не блокируются.

Рассмотрим следующий пример:

Поднятая блокировка сайтов срабатывает первой. Причём, ещё даже авторизации на прокси.

В этом случае правило срабатывает при соблюдении двух условий: аутентификация и сайт не включён в список заблокированных. Восклицательный знак означает логическое НЕ. Последний вариант является лучшим, логически он более понятный и он выполняет какие-либо действия (блокировку сайта) только после того, как пользователь ввёл логин и пароль прокси-сервера.

Как настроить Squid использовать различные IP адреса

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

Задача: использовать разные внешние IP адреса в зависимости от того, к какому порту прокси-сервера происходит обращение.

Итак, как вы можете видеть, на моём тестовом сервере 5 IP адресов, 1 IPv4 адрес и 4 IPv6 адресов:

Смотрите также:

Для решения указанной задачи содержимое файла /etc/squid/squid.conf следующее:

При обращении к странице https://w-e-b.site/ip/ показывается IP адрес клиента, сделавшего запрос. Проверим:

Теперь сделаем обращение к указанной странице через порты прокси-сервера от 24000 до 24003:

Как вы можете видеть, каждый раз выводится разный IPv6 адрес — в соответствии с тем, который из них привязан к определённому порту прокси-сервера.

Как вы думаете, какой IP адрес выведет следующая команда?

Напомню, что к порту 24004 привязан IPv4 185.117.153.79. Если ваш ответ «185.117.153.79», то вы ошибаетесь.

Выведено: 2a02:f680:1:1100::3d61 — это тот же самый IPv6 адрес, который используется по умолчанию.

Причина в том, что на самом деле привязка происходит не к IP адресу как к таковому, а к сетевому интерфейсу, на котором настроен данный IP. Кстати поэтому можно делать привязку и по MAC-адресу. При этом Squid работает следующим образом: если есть техническая возможность (локальный сервер и удалённый хост имеют IPv6 адреса), то по умолчанию используется именно IPv6.

У сайта w-e-b.site есть IPv4 и IPv6 адреса, Squid делает DNS запросы пытаясь получить A и AAAA записи, и если у удалённого хоста есть IPv6 адрес, то используется именно он. Чтобы подключиться к IPv6, сервер также должен использовать IPv6, поэтому выбирается один из доступных IPv6, а не привязанный к порту IPv4.

Можно ли было бы при привязке порта к IPv4 использовать именно IPv4 соединение даже если доступно IPv6? Технически для этого нет преград, но авторы Squid не сделали такой опции. Но вариант использовать IPv4 также есть, правда, не столь удобный.

Как заставить Squid использовать IPv4, а не IPv6

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

Опция «dns_v4_first on» меняет порядок предпочтений, чтобы Squid сначала связывался с веб-сайтами с двойным стеком через IPv4. Squid по-прежнему перед подключением будет выполнять запросы к DNS как IPv6, так и IPv4.

ПРЕДУПРЕЖДЕНИЕ. Этот параметр ограничивает ситуации, в которых используется (и проверяется) подключение IPv6. Это приводит к скрытию сетевых проблем, которые в противном случае были бы обнаружены и о которых было бы выведено предупреждение.

Читайте также:  passat b6 рейлинги на крышу

Итак, для переключения на IPv4 добавьте в конфигурационный файл следующую опцию:

Теперь запрос через порт 24004 выведет IPv4 адрес:

Но дело в том, что запросы к портам 24000-24003 также будут выводить IPv4 адреса, поскольку удалённый хост использует и те и другие, а по умолчанию теперь выбираются IPv4.

То есть по сути эта опция представляет собой переключение между IPv4 и IPv6. Это не совсем удобно и немного алогично. Нужно помнить об этом, поскольку используя различные IP адреса на одном прокси-сервере, вы можете заблуждаться о том, какой именно из них используется на самом деле.

Начиная с пятой версии Squid опция dns_v4_first будет удалена. Вместо того, чтобы подчиняться настройкам dns_v4_first, порядок использования семейства IP теперь в основном контролируется временем ответа DNS: если ответ DNS AAAA приходит первым, пока Squid ожидает IP-адреса, то Squid будет использовать сначала полученные IPv6-адреса. Для ранее кэшированных IP-адресов Squid сначала пробует адреса IPv6. Для управления семейством IP-адресов, используемых Squid, администраторы должны использовать межсетевые экраны, конфигурацию рекурсивного преобразователя DNS и/или —disable-ipv6. При планировании изменений конфигурации имейте в виду, что предстоящие улучшения Happy Eyeballs будут способствовать более быстрому установлению TCP-соединения, уменьшая влияние времени разрешения DNS.

В пятой версии реализован алгоритм «Happy Eyeballs», который использует полученный IP сразу же, как он понадобиться. Правила файерволов, запрещающие IPv6 TCP подключения, остаются предпочитаемым методом конфигурации для «отключения» подключений по IPv6, с конфигурацией рекурсивного преобразователя DNS.

Как добавлять, изменять и удалять HTTP заголовки в Squid

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

Важно: обратите внимание, что манипуляции с заголовками возможны ТОЛЬКО для HTTP подключений, в HTTPS трафике всё передаётся в зашифрованном виде и прокси-сервер не имеет доступ к заголовкам.

Директивы для обработки заголовков запросов:

Следующий пример удалит из всех запросов HTTP заголовки From, Referer и User-Agent.

В следующих правилах перечислены HTTP заголовки, которые должны быть сохранены, остальные будут удалены:

Пример подмены User-Agent:

Аналогичные директивы для манипуляции заголовков в ответах:

Вопросы и ответы по настройки и использованию Squid. Примеры конфигураций Squid

Как настроить веб-браузер (или Windows) для работы через прокси

Настройку Windows и Linux, а также веб-браузеров в этих операционных системах смотрите в статье «Настройка клиентов и операционных систем для работы через прокси».

Разрешение доступа на определённые сайты по паролю

Рассмотрим, как настроить разрешение доступа на определённые сайты только аутентифицированным пользователям. Допустим, мы хотим использовать прокси-сервер для ограничения доступа на некоторые сайты — но не просто для блокировки, а с возможностью ввести пароль и получить доступ к сайту.

В качестве пароля будем использовать аутентификацию на прокси сервере.

Список сайтов, доступ к которым доступен только по паролю, расположен в файле /etc/squid/restricted_sites.acl, тогда конфигурация следующая:

Как в URL блокировать определённые ключевые слова с помощью Squid

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

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

Теперь откройте файл конфигурации Squid и добавьте следующее правило — размещайте строки «http_access deny» (с блокировкой) выше строк с разрешением:

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

Обратите внимание, опять имеется разница в обработке сайтов на HTTPS и HTTP. Если поиск выполняется по части доменного имени, то данные правила будут работать в любом случае, но ошибки вновь будут отображаться по-разному. Поиск по пути URL за пределами доменного имени работает только для сайтов на HTTP. При использовании HTTPS весь трафик, в том числе адреса запрашиваемых страниц, передаётся в зашифрованном виде, поэтому возможность фильтровать отсутствует в принципе.

Конфигурация Squid для различных пользователей

Если вы предпочитаете делать настройки в отдельных файлах, то вы можете в основной конфигурационный файл (/etc/squid/squid.conf) добавить директиву include, например:

В результате будут импортированы настройки из указанного файла.

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

То в результате будут включены настройки из всех файлов, находящихся в директории /etc/squid/conf.d/.

Включаемые элементы могут быть вложены до 16 уровней глубины (ограничение установлено в исходном коде программы). Это произвольное ограничение не позволяет рекурсивным ссылкам include заставлять Squid входить в бесконечный цикл при попытке загрузить файлы конфигурации.

Запуск Squid без перевода в фон

Выше показано, как запустить Squid как службу. Но вы можете запустить прокси-сервер как обычную программу, без перевода в фон. Чтобы процесс не уходил в фон, используйте опцию -N:

Другие опции, которые вам могут пригодиться в командной строке:

Как заблокировать все адреса назначения кроме одного

Эта настройка разрешит доступ только к IP адресу 10.0.0.1:

Аналогичное правило вы можете настроить для доменов, используя такие типы acl как dstdomain и url_regex.

Как только одному адресу разрешить доступ к определённому URL

В этом примере только special_client разрешается доступ к special_url. Любой другой клиент, который пытается получить доступ к special_url, отклоняется.

Почему в Squid рекомендуется блокировать некоторые порты

Имеются номера портов, к которым опасно разрешать Squid подключаться. Например, было продемонстрировано, что кто-то может использовать Squid в качестве ретранслятора SMTP (электронной почты). Как я уверен, вы знаете, ретрансляторы SMTP — это один из способов, с помощью которых спамеры отсылают свои письма. Чтобы предотвратить ретрансляцию почты, Squid отклоняет запросы, когда номер порта URL равен 25. Другие порты также должны быть заблокированы в качестве меры предосторожности против других менее распространённых атак.

Есть два способа фильтрации по номеру порта: разрешить определённые порты или запретить определённые порты. По умолчанию Squid использует первый вариант. Это запись ACL в файле squid.conf по умолчанию:

Для краткости её можно было бы записать так:

Приведённая выше конфигурация отклоняет запросы, когда номер порта URL отсутствует в списке. Список позволяет подключаться к стандартным портам для HTTP, FTP, Gopher, SSL, WAIS и всем непривилегированным портам.

Другой подход — запретить опасные порты. Список опасных портов должен выглядеть примерно так:

…и, вероятно, многие другие.

Пожалуйста, обратитесь к файлу /etc/services в вашей системе для получения списка известных портов и протоколов.

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

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

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

Как посмотреть, какие IP адреса прослушивает прокси-сервер Squid

Следующая команда выведет список портов и интерфейсов, которые прослушивают процессы Squid:

Как сделать так, чтобы прокси-сервер Squid прослушивал только локальный порт

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

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

Пример, когда с прокси-сервером должны работать только локальные приложения-пользователи:

Почему Squid открывает UDP порты

Если посмотреть, какие-порты открывает прокси сервер Squid

то можно увидеть, что кроме TCP порта, который указан в конфигурации Squid, также присутствуют 2 UDP порта.

Прокси-сервер Squid открывает 2 произвольных UDP порта во время своей работы. Причём открывает их на всех интерфейсах, в том числе на доступных для внешнего подключения. Зачем это делается? Официальное объяснение можно прочитать здесь: http://www.squid-cache.org/mail-archive/squid-users/200009/0750.html. Суть в том, что для своей работы Squid делает DNS запросы и открытые UDP порты ему нужны чтобы принимать DNS ответы.

Как настроить кэширование в прокси-сервере Squid

Поддерживает ли Squid SOCKS4 или SOCKS5

Нет, протокол SOCKS не поддерживается. Разработчики пишут, что для этого нет технических преград и, в принципе, реализация поддержки SOCKS должна быть не сложной, но не делают этого. Видимо, им это неинтересно.

Директивы из минимальной рекомендуемой конфигурации

В этой статье показаны примеры настройки прокси-сервера с нуля, чтобы уже имеющиеся директивы не приводили к непредвиденным результатам.

Тем не менее, некоторые настройки, такие как рассмотренные выше блокировки портов, важны. В рекомендуемой минимальной конфигурации имеются директивы, которые не стоит терять:

На самом деле, защита от пользователей нужна только в том случае, если вы создаёте публичный прокси-сервер, а не только для личного использования.

Как настроить работы прокси Squid с множеством пользователей

К примеру, задача организовать работу Squid с несколькими пользователями, каждый из которых в качестве настроек прокси получил IP адрес (одинаковый у всех) и номер порта (индивидуален у каждого пользователя). Также у пользователей индивидуальны логин и пароль. Сервер имеет несколько внешних IP (в данном случае IPv6) адресов, необходимо сделать так, чтобы каждый из пользователей выходил по индивидуальному IP адресу.

Допустим на входе имеем 127.0.0.1:1000:test1:pass1, а на выходе 2a02:f680:1:1100::3d60.

И на входе 127.0.0.1:1001:test2:pass2 и на выходе 2a02:f680:1:1100::3d61.

В последующем конфигурационном файле вам нужно заменить:

Содержимое моего файла /etc/squid/squid.conf:

Настройка Squid для работы с OpenVPN

Вы можете использовать прокси Squid для подключение через него к OpenVPN.

Настройка прокси-сервера Squid для работы с OpenVPN не требует каких-то специальных опций. Например, для использования Squid в качестве прокси-сервера для подключения к OpenVPN без аутентификации достаточно указать следующие строки в конфигурационном файле (замените порт 45600 любой другой):

Дополнительно вы можете настроить Basic или Digest аутентификацию — OpenVPN поддерживает их обе.

Помните, что того, чтобы работало подключение к OpenVPN через HTTP прокси необходимо, чтобы OpenVPN сервер использовал протокол TCP.

Возможные ошибки и проблемы при использовании прокси-сервера

Ошибка «Прокси-сервер отказывается принимать соединения»

Данная ошибка возникает если:

Squid может открыть сайты по HTTP протоколу, но не может открыть HTTPS

Если вы столкнулись с ситуацией, когда HTTP сайты открываются нормально, а для HTTPS сайтов показывается сообщение:

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

По умолчанию Squid выступает и в роли HTTP прокси, и в роли HTTPS прокси, а клиенты должны настраивать оба этих типа.

Ошибка «Authentication helper program /usr/lib64/squid/basic_ncsa_auth: (2) No such file or directory»

Если при настройки входа по паролю ваш прокси-сервер не запускается и при проверки статуса службы выдаёт ошибку:

то вам нужно проверить путь до файла basic_ncsa_auth.

Возможно вместо пути /usr/lib64/squid/basic_ncsa_auth вам следует использовать /usr/lib/squid/basic_ncsa_auth.

Ошибка «Authentication helper program /usr/lib/squid/basic_ncsa_auth: (2) No such file or directory»

Ошибка аналогичная предыдущей, но вместо пути /usr/lib/squid/basic_ncsa_auth попробуйте использовать /usr/lib64/squid/basic_ncsa_auth.

VPS для прокси-сервера

Если вы хотите настроить прокси-сервер на VPS сервере, то я могу порекомендовать парочку хостингов:

Источник

Познавательно-развлекательный портал