Настройка прокси-сервера в Убунту

Содержание

Установка и настройка прокси-сервера 3proxy на Debian/Ubuntu

Настройка прокси-сервера в Убунту

В этой статье мы расскажем, как установить и настроить прокси-сервер.

Прокси-сервер (от англ. proxy — «представитель, уполномоченный»)
выступает в роли посредника в коммуникациях между вашим ПК/мобильным и Интернетом.

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

  • Обход ограничений доступа к определенным веб-ресурсам установленным администратором локальной сети.
  • Обход региональных ограничений доступа у определённых веб-ресурсов.
  • Анонимный доступ к веб-ресурсам путём сокрытия реального IP-адреса.

Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере от Владимира '3APA3A' Дубровина – 3proxy опубликованный под BSD-подобной лицензией. Текст лицензии.

Официальный сайт – http://3proxy.ru/
Исходный код на GitHub – https://github.com/z3APA3A/3proxy

Среди альтернатив можно выделить Squid, но он:

  • Сложен в настройках.
  • Потребляет больше ресурсов.
  • Не скомпилирован с поддержкой SSL по умолчанию и сложен для компиляции.

Также внимание заслуживает tinyproxy.

Он включает в себя:

  • HTTP прокси с поддержкой HTTPS и FTP.
  • SOCKSv4/SOCKSv4.5/SOCKSv5 прокси.
  • POP3 прокси.
  • SMTP прокси.
  • AIM/ICQ прокси.
  • MSN messenger / Live messenger прокси.
  • FTP прокси.
  • Кэширующий DNS прокси.
  • TCP и UDP портмапперы.

Так же доступны дополнительные возможности, такие как:

  • Управление доступом.
  • Ограничение ширины потребляемого канала.
  • Ограничение трафика на день, неделю и месяц.
  • Перенаправление соединений.
  • Построение цепочек соединений.
  • Ротация лог-файлов.
  • Ведение журналов через ODBC и syslog.
  • Поддержка IPv6.
  • и ряд других.

К недостаткам можно отнести:

  • Отсутствие поддержки кеширования веб-страниц.
  • Отсутствие в официальных репозиториях некоторых linux-дистрибутивов (включая Debian и Ubuntu), но в репозиториях Gentoo, RedHat, Alt Linux присутствует.

Технические требования

  • Операционная система Debian GNU/Linux (версии с 7 по 9) или Ubuntu (версии с 14.04 по 17.04) любой разрядности (32/64 бита).
  • Пользователь с привилегиями root (как вариант доступ через sudo).

Шаг 1. Подготавливаем инструментарий

В связи с тем что он отсутствует в официальных репозиториях Debian и Ubuntu, мы будем устанавливать его из исходников.

Но перед этим установим всё необходимое для дальнейшей работы.

sudo apt-get updatesudo apt-get install -y build-essential nano wget tar gzip

Шаг 2. Скачиваем и распаковываем исходники

Последняя версия 0.8.10 (на момент написания руководства).
Узнать последнюю версию можно на официальном сайте, при необходимости просто замените цифры на необходимые в следующих парах команд:

cd ~wget –no-check-certificate https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz

tar xzf 0.8.10.tar.gz

Шаг 4. Устанавливаем

Копируем получившийся бинарный файл:

sudo mkdir /etc/3proxycd ~/3proxy-0.8.10/src

sudo cp 3proxy /usr/bin/

Создадим отдельного системного пользователя proxy3 от имени которого и будет работать сервер:

sudo adduser –system –no-create-home –disabled-login –group proxy3

Узнаём UID и GID пользователя командой:

id proxy3

В ответ, например, получим:

uid=109(proxy3) gid=115(proxy3) groups=115(proxy3)

Создаём файл настроек:

sudo nano /etc/3proxy/3proxy.cfg

Вставляем в него следующий код:

(вставка из буфера обмена возможна по клику правой кнопки мыши или Ctrl+U или F10)

# Запускаем сервер от пользователя proxy3# (возможно в вашей ОС uid и gid пользователя proxy3# будут другими. Для их определения воспользуйтесь командой id proxy3)setgid 115setuid 109## Пропишите правильные серверы имен посмотрев их# на своем сервере в /etc/resolv.confnserver 8.8.8.8nserver 77.88.8.8## Оставьте размер кэша для запросов DNS по умолчаниюnscache 65536## Равно как и таймаутыtimeouts 1 5 30 60 180 1800 15 60## Если несколько IP на одном сервере, указываем тот,# через который ходить во внешний мир.# Иначе эту строку игнорируем#external # Тоже самое, только указываем IP, который надо слушать# Если проигнорировать, то прокси слушает все адреса на сервере#internal ## Указываем на расположение файла с пользователями и паролямиusers $/etc/3proxy/.proxyauth## укажите режим запуска как deamondaemon## путь к логам и формат лога, к имени лога будет добавляться дата созданияlog /var/log/3proxy/3proxy.log Dlogformat “- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T”## Включаем авторизацию по логинам и паролямauth cache strong## Конфигурация http(s) proxy# Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и# c отключенной NTLM-авторизацией (-n)

proxy -n -p3128 -a

(Для сохранения и закрытия нажмите CTRL+X затем Y)

Источник: https://community.vscale.io/hc/ru/community/posts/115001609005/comments/115001539545

Прозрачный прокси сервер SQUID на Ubuntu

Настройка прокси-сервера в Убунту

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

Основной файл с настройками содержит около 4 000 строк. Конфигурация «squid прозрачный прокси» является популярной администраторской задачей — процесс будет рассмотрен в рамках данного материала.

Режимы работы SQUID и идентификация

Режимы работы: обычный, анонимный прокси сервер, SQUID прозрачный прокси

Прозрачный прокси (transparent) подразумевает отсутствие необходимости указывать на использование прокси со стороны клиента (в интернет-браузерах на клиентских компьютерах). Трафик со стандартных портов (80, 8080, 443) переадресуется на порт, на котором работает  SQUID.

Анонимный прокси сервер не предполагает авторизации. т.е. его может использовать кто-угодно в Интернете, знающий IP сервера, на котором установлено и сконфигурировано ПО.

SQUID поддерживает насколько способов идентификации пользователей — самый распространенный способ — по IP адресам

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

Сложность конфигурации squid, упомянутая ранее проявляется при необходимости выполнения программным продуктом специфических задач — многоуровневой фильтрации трафика по множеству правил.

Настройка же базового функционала довольно проста. Она и будет рассмотрена в рамках данного материала.

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

apt-get install squid squid-common

После установки с дефолтным конфигурационным файлом squid блокирует доступ в Интернет полностью.

В этом можно убедиться обратившись к какому-либо ресурсу в Интернете через браузер

Обращаемся к файлу, запускающему squid из консоли с ключом -v, таким образом мы сможем увидеть установленную версию программного пакета, в данном случае 3.2

/usr/sbin/squid -v

Делаем бэкап конфигурационного файла

cp /etc/sqid/squid.conf /etc/sqid/squid.conf.backup

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

mcedit /etc/sqid/squid.conf

Находим закомментированную строку #TAG: visible_hostname, копируем visible_hostname и вставляем в тело конфига

#TAG: visible_hostname
visible_hostname remote-tech-support-ProxyServer

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

Аналогичным образом поступаем с переменной, определяющей e-mail администратора прокси сервера, он также будет отображаться на странице с ошибкой, клиенты компании смогут направить на него письма с вопросами относительно разумности ограничения доступа к определенному веб-сайту)

#TAG: cache-mgr
cache-mgr admin@example.com

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

acl localnet 192.168.0.0/24

Маску можно задавать непосредственно как это показано строкой выше, можно задавать в виде нулей

Например, при указании следующего адреса к прокси смогут использовать клиенты из всей сети 192.Х.Х.Х

acl localnet 192.0.0.0

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

acl hours time S M T W H F A 2:00-20:00

После задания правила — его нужно активировать используя директивы allow или deny

http_access allow network hours

Включение кэширования в SQUID

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

cache_dir ufs /var/spool/squid 100 16 256

100 здесь — размер буфера под кэш в Мб, его можно изменить, максимальное адекватное значение параметра 1/3 объема жесткого диска

Кэш будет храниться в /var/spool/squid. Необходимо убедиться в том, что каталог существует и SQUID имеет достаточно прав для того чтобы записывать в файлы, в нем размещающиеся информацию

Останавливаем прокси

/etc/init.d/squid stop

Даем команду на создание дерева директорий

squid -z

Снова запускаем сервис

/etc/init.d/squid start

du -sh /var/spool/squid

Если все сделано правильно вывод последней команды изначально должен показывать приблизительно 70 Мб, в дальнейшем размер каталога с кэшем, естественно, должен увеличиваться

Чтобы изображения на сайтах, посещаемых пользователями, обновлялись несколько быстрее используем следующую директиву — в ее синтаксисе зададим форматы файлов, которые будут считаться изображениями и будут обновляться чаще

refresh_pattern -i \.{gif|png|jpg|jpeg|ico}$ 3600    90%    43200

Также в конфиге присутствуют настройки безопасных портов — safe ports — портов, с которыми будет производиться работа и  SSL портов (настройка squid для работы по https является несколько более сложной задачей, чем разбираемая сейчас — она будет рассмотрена в рамках другой статьи). Настройки портов можно изменить.

acl SSL_ports port 443

Следующая директива запрещает доступ со всех портов, которые не определены в качестве безопасных

http_access deny !Safe_ports

Аналогично можно установить обязательность использования защищенного соединения — сейчас в тестовой среде директиву не применяем — здесь они приведена для примера

http_access deny CONNECT !SSL_ports

Разрешаем доступ служебному пользователю manager, это сделает возможным, в частности,  для него читать статистику — доступ даем только к localhost

http_access allow localhost manager

http_access deny manager

http_access allow localhost

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

#http_access allow localnet

#http_access allow all

Раскомментировав forwarded_for off

Источник: https://server-gu.ru/transparent-proxy-squid-ubuntu/

3proxy на Ubuntu. Установка и настройка прокси-сервера

Настройка прокси-сервера в Убунту

: 08.06.2019

Тематические термины: 3proxy, Ubuntu, прокси-сервер, SOCKS.

Установка и запуск 3proxy

3proxy отсутствует в репозиториях Ubuntu, поэтому для установки сначала необходимо скачать его исходник.

Для начала устанавливаем пакет программ для компиляции пакетов:

apt-get install build-essential

Переходим на официальную страницу загрузки 3proxy и копируем ссылку на версию пакета для Linux:

… используя ссылку, скачиваем пакет:

wget https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz

* в моем случае скачена версия 0.8.12.

Распакуем скачанный архив:

Переходим в распакованный каталог:

Запускаем компиляцию 3proxy:

Создаем системную учетную запись:

adduser –system –disabled-login –no-create-home –group proxy3

Создаем каталоги и копируем файл 3proxy в /usr/bin:

Задаем права на созданные каталоги:

chown proxy3:proxy3 -R /etc/3proxy

chown proxy3:proxy3 /usr/bin/3proxy

chown proxy3:proxy3 /var/log/3proxy

Смотрим uid и gid созданной учетной записи:

Получим, примерно, такой результат:

uid=109(proxy3) gid=113(proxy3) groups=113(proxy3)

Создаем конфигурационный файл:

vi /etc/3proxy/3proxy.cfg

setgid 113 setuid 109 nserver 77.88.8.8 nserver 8.8.8.8 nscache 65536 timeouts 1 5 30 60 180 1800 15 60 external 111.111.111.111 internal 111.111.111.111 daemon log /var/log/3proxy/3proxy.log D logformat “- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T” auth none allow * * * 80-88,8080-8088 HTTP allow * * * 443,8443 HTTPS

proxy -n

* необходимо обратить внимание на настройки setgid и setuid — это должны быть значения для созданной нами учетной записи; external и internal — внешний и внутренний интерфейсы (если наш прокси работает на одном адресе, то IP-адреса должны совпадать). 

Запускаем 3proxy:

/usr/bin/3proxy /etc/3proxy/3proxy.cfg

Настройка браузера

Проверяем работоспособность нашего 3proxy. Для этого настраиваем браузер для работы через прокси-сервер, например, Mozilla Firefox:

… пробуем открыть сайты.

Настройка автозапуска

Для автозагрузки 3proxy настроим его как сервис. Создаем файл в systemd:

vi /etc/systemd/system/3proxy.service

[Unit] Description=3proxy Proxy Server [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3` RemainAfterExit=yes Restart=on-failure [Install]

WantedBy=multi-user.target

Обновляем конфигурацию systemd:

Разрешаем запуск сервиса и стартуем его:

Настройка аутентификации

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

vi /etc/3proxy/3proxy.cfg

Добавляем опции users и добавляем пользователей:

users 3APA3A:CL:3apa3a “test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1” users dmosk1:CL:password

users “dmosk2:CR:$1$UsbY5l$ufEATFfFVL3xZieuMtmqC0”

* в данном примере мы добавили 3-х пользователей: 3APA3A с паролем 3apa3admosk1 с открытым паролем password и dmosk2 с паролем dmosk2 в виде md5 и солью UsbY5l (Для получения хэша пароля можно воспользоваться командой openssl passwd -1 -salt UsbY5l, где в качестве соли можно использовать любую комбинацию).
* обратите внимание, при использовании знака $, строчка пишется в кавычках.

* возможные типы паролей:

  • CL — текстовый пароль
  • CR — зашифрованный пароль (md5)
  • NT — пароль в формате NT.

Чтобы включить запрос логина, необходимо поменять значение для опции auth на strong:

* возможные варианты для auth:

  • none — без авторизации.
  • iponly — авторизация по IP-адресу клиента.
  • nbname — по Netbios имени.
  • strong — по логину и паролю.

Также можно использовать двойную авторизацию, например:

После внесения изменений, перезапускаем службу:

SOCKS

Для прозрачного прохождения пакетов через прокси можно настроить SOCKS5. В конфигурационном файле добавляем:

vi /etc/3proxy/3proxy.cfg

* запускаем socks на порту 1080.

Или:

socks -p8083 -i192.168.1.23 -e111.111.111.111

* запускаем socks на порту 8083; внутренний интерфейс — 192.168.1.23, внешний — 111.111.111.111.

Дополнительные настройки

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

Настройка портов и прокси-интерфейсов

При необходимости, можно настроить 3proxy на использование разных интерфейсов на разных портах:

vi /etc/3proxy/3proxy.cfg

proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222
proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

*  3proxy будет слушать на порту 3128 с внутреннего интерфейса 192.168.0.23 и направлять пакеты в сеть Интернет через внешний интерфейс 222.222.222.

222, а также, на порту 8080 для внутреннего и внешнего интерфейсов 192.168.1.23 и 111.111.111.111 соответственно.

* не забываем также настраивать брандмауэр (вначале инструкции мы открывали только 3128 порт).

Ограничение пропускной способности

При необходимости, можно ограничить скорость.

vi /etc/3proxy/3proxy.cfg

bandlimin 1000000 user1,user3
bandlimin 5000000 user2,user4

*  в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.

Ограничения доступа

Можно ограничить доступ и разрешить только для определенных портов, сетей и пользователей.

vi /etc/3proxy/3proxy.cfg

Синтаксис:

allow
deny

* где:

  • userlist — список пользователей через запятую.
  • sourcelist — сети клиентов через запятую.
  • targetlist — сети назначения через запятую.
  • targetportlist — порты назначения через запятую.
  • commandlist — команды, к которым применяется правило.
  • weekdays — в какие дни недели работает правило. 0 – 6 — Пн – Вс, 7 — тоже Вс.
  • timeperiodslist — время, когда работает правило. Указываются диапазоны.

Примеры:

allow * * * 80 HTTP allow * * * 443,8443 HTTPS

allow * * * 21 FTP

*  в данном примере пользователям user1 и user3 установлено ограничение в 1000000 бит/сек (1 мбит); для user2 и user4 — 5 мбит/сек.

Также, ограничить доступ можно по количеству одновременных соединений для каждой службы:

maxconn 700 proxy -n -a -p3128 -i192.168.0.23 -e222.222.222.222

proxy -n -a -p8080 -i192.168.1.23 -e111.111.111.111

* таким образом, мы установим 700 максимальных соединений для прокси на порту 3128 и 700 — для proxy на порту 8080.

Была ли полезна вам эта инструкция?

Да            Нет

Источник: https://www.dmosk.ru/miniinstruktions.php?mini=3proxy-ubuntu

Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04

Настройка прокси-сервера в Убунту

04.04.2017 11:23

#Apache#Linux/Ubuntu#Python

Обратный прокси-сервер – это тип прокси-сервера, который ретранслирует HTTP/HTPPS-запросы на один или несколько бэкенд-серверов. Обратные прокси-серверы полезны, так как многие современные веб-приложения для обработки HTTP-запросов используют бэкенд-серверы приложений (к которым пользователи не должны иметь доступ напрямую), а также часто поддерживают только базовые функции HTTP.

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

Из этой статьи вы узнаете о том, как настроить Apache для использования в качестве обратного прокси-сервера при помощи mod_proxy – модуля Apache для перенаправления соединений на один или несколько бэкенд-серверов в этой же сети. В этом руководстве используется простой бэкенд, написанный с использованием фреймворка Flask, но вы можете использовать любой бэкенд на ваше усмотрение.

Требования

Для того, чтобы выполнить необходимые действия, вам понадобится:

  • сервер с установленной ОС Ubuntu 16.04 и пользователем, который может выполнять команды sudo;
  • установленный на вашем сервере Apache.

Шаг 1: включение необходимых модулей Apache

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

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

  • mod_proxy – главный модуль Apache для перенаправления соединений; благодаря ему Apache может выступать в качестве шлюза для основных серверов приложений;
  • mod_proxy_http – позволит использовать прокси для HTTP;
  • mod_proxy_balancer и mod_lbmethod_byrequests – добавляют функции балансировки нагрузки для бэкенд-серверов.

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

$ sudo a2enmod proxy $ sudo a2enmod proxy_http $ sudo a2enmod proxy_balancer $ sudo a2enmod lbmethod_byrequests

Затем перезапустите Apache для того, чтобы изменения вступили в силу.

$ sudo systemctl restart apache2

Теперь Apache будет выступать в качестве обратного прокси-сервера для HTTP-запросов. Следующий шаг не является обязательным, но он поможет протестировать работу Apache и убедиться, что все работает так, как нужно. Для этого необходимо создать два базовых бэкенд-сервера, однако если у вас они уже есть в наличии, то вы можете сразу перейти к шагу 3.

Шаг 2: создание тестовых бэкенд-серверов

Запуск нескольких базовых бэкенд-серверов – отличная возможность протестировать, корректно ли работает Apache. Поэтому необходимо создать два сервера, которые будут отвечать на HTTP-запросы, печатая строку текста. Один будет отвечать “Hello world!”, другой “ Hello Timeweb!”.

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

Flask – это микрофреймворк Python, который используется для создания веб-приложений. В этом руководстве мы будем использовать Flask, так как для написания базового приложения требуется всего несколько строк. Вам необязательно знать Python для того, чтобы выполнить дальнейшие действия.

Для начала обновите список доступных пакетов:

Теперь установите Pip, рекомендованная система управления пакетами Python.

$ sudo apt-get -y install python3-pip

И уже при помощи Pip установите Flask:

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

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

Скопируйте в файл текст, который приведен ниже, а затем сохраните и закройте файл.

from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello world!'

Первые две строчки инициализируют фреймворк Flask. Единственная функция home() будет отдавать строку текста (“Hello world!”). А за то, чтобы этот текст появлялся в ответ на HTTP-запросы, отвечает @app.route('/').

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

Поэтому для начала необходимо скопировать первый файл:

$ cp ~/backend1.py ~/backend2.py

Теперь откройте новый скопированный файл:

И в последней строчке вместо “Hello world!” напишите, к примеру, “Hello Timeweb!”:

Команда ниже запустит первый бэкенд-сервер, его порт 8080.

$ FLASK_APP=~/backend1.py flask run –port=8080 >/dev/null 2>&1 &

Второй сервер тоже необходимо запустить, его порт 8081:

$ FLASK_APP=~/backend2.py flask run –port=8081 >/dev/null 2>&1 &

Теперь протестируем работу обоих серверов.

Сначала первого:

$ curl http://127.0.0.1:8080/

В ответ вы должны получить “Hello world!”.

Затем второй:

$ curl http://127.0.0.1:8081/

В этом случае вы увидите в терминале надпись “Hello Timeweb!”.

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

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

Шаг 3: изменение изначальных установок для включения прокси

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

Сначала нужно открыть конфигурационный файл Apache в редакторе nano (или в другом редакторе на ваш выбор):

$ sudo nano /etc/apache2/sites-available/000-default.conf

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

1 пример: обратное прокси для одного бэкенд-сервера

Скопируйте текст ниже вместо всего текста, расположенного в блоке VirtualHost, то есть чтобы в итоге блок выглядел вот так:
ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/

Если вы продолжаете следовать этому руководству и используете тестовые серверы, которые создали ранее, то скопируйте 127.0.0.1:8080, как и написано в примере. Если у вас есть свои собственные серверы приложений, то используйте их адреса.

В блоке используется три директивы:

  • ProxyPreserveHost – заставляет Apache передать оригинальный заголовок Host бэкенд-серверу. Это полезно, так как в этом случае бэкенд-сервер получает адрес, который используется для доступа к приложению;
  • ProxyPass – основная директива для настройки прокси. В данном случае она указывает, что все, что идет после корневого адреса URL (/), должно быть отправлено на бэкенд-сервер по указанному адресу. Например, если Apache получит запрос /primer, то он подключится к http://ваш_бэкенд-сервер/primer и отправит соответствующий ответ;
  • ProxyPassReverse – должна иметь такие же настройки, как и ProxyPass. Она сообщает Apache, как изменить заголовки в ответе от бэкенд-сервера. Таким образом гарантируется, что браузер клиента будет перенаправлен на прокси-адрес, а не на адрес бэкенд-сервера.

После внесения изменений Apache необходимо перезапустить:

$ sudo systemctl restart apache2

Теперь, если вы наберете в браузере адрес своего сервера, вы увидите ответ от вашего бэкенд-сервера вместо приветственной страницы Apache.

2 пример: балансировка нагрузки между несколькими бэкенд-серверами

Если у вас есть несколько бэкенд-серверов, будет хорошей идеей при использовании прокси распределить трафик между ними; сделать это можно при помощи функции балансировки нагрузки утилиты mod_proxy.

Как и в первом примере, тут вам тоже необходимо заменить текст в блоке VirtualHost на следующий:

BalancerMember http://127.0.0.1:8080 BalancerMember http://127.0.0.1:8081 ProxyPreserveHost On ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/

В целом текст похож на предыдущий, однако вместо указания одного бэкенд-сервера появляется новый блок Proxy, в котором указано несколько серверов. Блок называется balancer://mycluster (название можно изменить) и состоит из одного или нескольких BalancerMembers, которые определяют адреса лежащих в основе бэкенд-серверов.

Директивы ProxyPass и ProxyPassReverse используют пул балансировки нагрузки под названием mycluster вместо конкретного сервера.

Вы можете использовать адреса тестовых серверов (как указано выше), либо заменить их на адреса своих серверов.

Для того, чтобы изменения вступили в силу, перезапустите Apache:

$ sudo systemctl restart apache2

Теперь проведите такой же тест, как и в первом примере: введите IP-адрес вашего сервера в браузер и вместо стандартного приветствия Apache вы увидите один из ответов бэкенд-серверов. Если вы используете тестовые серверы, то это будет либо “Hello world!”, либо “Hello Timeweb!”. Обновите страницу несколько раз и, если вы увидели оба текста, значит все работает корректно.

Заключение

Теперь вы знаете, как настроить Apache в качестве обратного прокси-сервера для одного или нескольких внутренних серверов.

mod_proxy можно эффективно использоваться для того, чтобы настраивать обратный прокси для серверов с приложениями, написанных на различных языках программирования и технологиях, таких как Python, Django или Ruby и Ruby on Rails.

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

mod_proxy и mod_proxy_http самая популярная комбинация модулей, однако есть несколько других, которые поддерживают другие сетевые протоколы. Хотя в этом руководстве они не использовались, их тоже можно выделить отдельным списком:

  • mod_proxy_ftp для FTP;
  • mod_proxy_connect для SSL-туннеля;
  • mod_proxy_ajp для протокола AJP (Apache JServ Protocol);
  • mod_proxy_wstunnel для веб-сокетов.

Узнать более подробно о них вы можете в официальной документации mod_proxy Apache: http://httpd.apache.org/docs/current/mod/mod_proxy.html

Источник: https://timeweb.com/ru/community/articles/kak-ispolzovat-apache-v-kachestve-obratnogo-proksi-pri-pomoshchi-mod-proxy-na-ubuntu-16-04-1

Настройка прокси-сервера в Убунту

Настройка прокси-сервера в Убунту

Прокси-сервер представляет собой некий промежуточный ПК, являющийся посредником между компьютером пользователя и интернетом. Именно через этот компьютер и проходят все ваши интернет-запросы. Сервер их обрабатывает, и передаёт вам скачанные из internet файлы. Обычно в корпоративных сетях применяют прокси-сервер для выхода в интернет.

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

В этой статье детально разберём, как настроить подключение через прокси-сервер в Ubuntu. Давайте разбираться. Поехали!

Узнайте, как настроить подключение через прокси-сервер в Ubuntu правильно и самостоятельно

Чтобы настроить подключение в Убунту через прокси, необходимо открыть меню «Системные параметры», а затем перейти к разделу «Сеть».

Найдите раздел «Сеть» в операционной системе

Кликните по пункту «Сетевая прокси-служба» и установите способ «Вручную», после чего введите свои настройки.

В «Сетевой прокси-службе» и установите способ «Вручную»

Следующий шаг — внести свои настройки

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

Произвести настройку на системном уровне можно также через файлы конфигурации. Чтобы сделать это, откройте с root-правами файл /etc/environment (делается это командой: sudo nano /etc/environment). В конце файла добавьте строки:

https_proxy=«https://user:pass@proxy:port/»http_proxy=«http://user:pass@proxy:port/»ftp_proxy=«ftp://user:pass@proxy:port/»

socks_proxy=«socks://user:pass@proxy:port/»

Если proxy без авторизации, то строчки должны иметь вид:

_proxy=«https://proxy:port/»

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

Обычно для глобальной настройки прокси хватает, чтобы все остальные утилиты работали через него без необходимости вводить данные прокси внутри программы. Однако, некоторые утилиты не могут работать с глобальными параметрами либо они требуют специальные настройки.

  • 1 Firefox
  • 2 Chromium
  • 3 APT
  • 4 Bash

Firefox

Firefox позволяет использовать не только глобальные настройки, но и собственные. Чтобы назначить прокси, перейдите к окну настроек браузера и откройте вкладку «Дополнительно», далее нажмите «Сеть» и щёлкните по кнопке «Настроить». Важной особенностью является то, что Firefox может использовать NTLM-аутентификацию. Это отличает Firefox от многих других браузеров.

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

Chromium

Этот браузер тоже может использовать глобальные параметры, имея при этом собственные. Для назначения прокси откройте файл /etc/chromium-browser/default и добавьте туда строчку:

CHROMIUM_FLAGS=«-proxy-server=адрес:порт»

Теперь необходимо перезапустить Chromium

APT

Новые версии могут работать с глобальными параметрами, в отличие от старых, которые работали исключительно с персональными. В файле /etc/apt/apt.conf необходимо прописать:

Acquire::http::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::https::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::ftp::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;Acquire::socks::proxy «http://логин:пароль@ip_прокси:порт_прокси/»;

Acquire::::Proxy «true»;

В случае, если сервер без авторизации, то логин и пароль придётся убрать.

Bash

Разумеется, вышеописанная настройка через /etc/environment будет работать для каждой утилиты, которая была запущена через терминал. Если же вам нужно задать параметры непосредственно для запускаемой утилиты, то прежде чем запустить её выполните:

export http_proxy=’http://логин:пароль@ip_прокси:порт_прокси/’

export ftp_proxy=’http://логин:пароль@ip_прокси:порт_прокси/’

wget

Допишите в файл /etc/wgetrc :

proxy-user = usernameproxy-password = passwordhttp_proxy = http://xxx.xxx.xxx.xxx:8080/ftp_proxy = http://xxx.xxx.xxx.xxx:8080/

use_proxy = on

Если прокси без авторизации, уберите proxy-user и proxy-password

apt-add-repository

Большинство учреждений блокируют все сомнительные, неизвестные порты наружу. Как правило, блокируется и порт номер 11371, который используется программой apt-add-repository для добавления репозиториев. Существует простое решение, позволяющее получать ключи репозиториев через 80-й порт, используемый для доступа к интернет-страницам.

Отредактируйте файл /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py (требуются root-права, вместо /usr/lib/python2.6 может быть версия 2.7). Найдите строку keyserver.ubuntu.com и замените:

hkp://keyserver.ubuntu.com

на

hkp://keyserver.ubuntu.com:80

Источник: https://nastroyvse.ru/opersys/lix/podklyuchenie-cherez-proksi-server-v-ubuntu.html

Установка и настройка Dante SOCKS5 Proxy сервера на Ubuntu 18.04 LTS [годная инструкция по обходу блокировки мессенджера Telegram (и др сайтов) Роскомнадзором] – BLOG.XENOT.RU

Настройка прокси-сервера в Убунту
Перейти к содержимому

Вспомнилась цитата с одно ещё не заблокированного интернет-ресурса:

— Скоро и на сковородку придется VPN ставить =/ — Главное, чтобы на унитаз не пришлось, а то пошёл посрать, а унитаз заблокирован.

— Придется срать через Нидерланды.

SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от «SOCKet Secure». SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP — протоколе 4-го уровня.

Socks — это о-о-о-очень старый протокол. Вышел в свет аж в 1992-м году. Ясен пень, что в те далёкие времена ни о каком SSL никто ничего не слышал. Поэтому данные, в том числе логины и пароли на подключение к серверу всегда передаются открытым текстом.

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

Поэтому имеет смысл ограничивать сети с/на которые можно ходить, а также закрываться паролями. Правда, последнее тоже не является панацеей (см. выше). 

Кстати о прокси серверах и авторизации.

У человека из интернетов дошли руки исследовать эту тему, на которую обратили внимание в одной статье на geektimes (ее правда уже удалили), что даже при условии того, что вы укажете шелл /usr/sbin/nologin, это не спасает вас например от фишки ssh проброса портов. Вам не обязательно нужен шелл, чтобы, например, создать свой сокс сервер на чужом сокс сервере.

ssh -N -D 1337 user@host

Cпасибо ребятам, которые подсказали про ключ -N.Ну и в дополнение, кроме -D вполне можно использовать и ключи -L -R, что потенциально поможет вам пробросить себя в сеть за уязвимым прокси-сервером или достучаться до служб, висящих на локалхосте.

Хотя этот протокол разработан достаточно давно, он является относительно новым (по сравнению с HTTP proxy). SOCKS позволяет работать с любыми (версия Socks 4 — с TCP, Socks 5 — с TCP и UDP) протоколами. SOCKS proxy просто передает данные от клиента к серверу, не вникая в содержимое самих данных (поэтому он может работать с HTTP, FTP, SMTP, POP3, NNTP, etc.).

Dante — это только SOCKS сервер. Если дополнительно нужна поддержка HTTP-прокси, то используйте 3proxy.

Свежая версия Dante в Ubuntu появилась только в версии 18.04. Если у вас 16.04 или 14.04, то вам пригодится статья по самостоятельной сборке deb пакета — https://bvn13.tk/posts/dante-server-on-ubuntu-16-04-lts или https://bvn13.tk/posts/dante-server-on-ubuntu-16-04-lts

Шаг 1. Установка:

sudo apt install dante-server

При старте возможно появится ошибка, это, увы, нормально, её можно пропускать:

warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked
error: checkconfig(): no internal address given for server to listen for clients

Шаг 2. Основные настройки

Конфигурационный файл расположен в по адресу: /etc/danted.conf

Ниже представлена типовая конфигурация:

# Путь к лог файлуlogoutput: /var/log/socks.log# Можно задать отдельный лог файл для ошибок# errorlog: /var/log/socks_error.log internal: eth0 port = 1080external: eth0 ##Тип авторизации#Работа без пароля#socksmethod: none#Авторизация по локальным/системным пользователям (наш случай)socksmethod: username#Авторизация при помощи логинна/пароля, сохраняемого в PAM-файле:#socksmethod: pam.username # Мы используем системных пользователей, поэтому нужны права на чтение passwduser.privileged: rootuser.unprivileged: nobodyuser.libwrap: nobody # Разрешить подключения с любых IP всем пользователям прошедшим авторизациюclient pass { from: 0/0 to: 0/0 log: connect disconnect error ioop} socks pass { from: 0/0 to: 0/0 log: connect disconnect error ioop}

Подробнее об уровнях логированиях на сайте Dante смотрите в разделе Server logging

Уже сейчас можно попробовать запустить сервис без пароля командой sudo service danted start Но для этого в конфигурационном файле должна быть разрешена работа без пароля: socksmethod: none

Шаг 3. Логины/пароли

Добавим нового пользователя proxy_user_01 для работы с SOCKS сервером.

Добавляем нового пользователя:
useradd –shell /usr/sbin/nologin proxy_user_01Задаем ему пароль:

passwd proxy_user_01

При этом у пользователя не будет доступа к SSH, т.к. в качестве шелла указан nologin.

Шаг 4. Запуск

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

systemctl enable danted
systemctl start danted

Прокси будет работать по ip вашего сервера и порт, который был указан в файле конфигурации (1080 — стандартный порт). Если у вас на сервере не висят https сайты или вроде того, то настоятельно рекомендую поменять порт, например на 443.

Шаг 5. Безопасность

Вместо системных пользователей можно и нужно использовать PAM файл с логинами и паролями (аналог htpasswd).

Для этого необходимо дополнительно установить пакет libpam-pwdfile:

sudo apt install libpam-pwdfile

И после этого в конфигурационном файле/etc/danted.conf заменить строку:

socksmethod: usernameна эту

socksmethod: pam.username

В файл /etc/pam.d/sockd добавляем:

auth required pam_pwdfile.so pwdfile /etc/dante.passwd
account required pam_permit.so

Используя mkpasswd (входит в состав пакета whois)

mkpasswd –method=md5 password

Логин и зашифрованный пароль следует теперь добавить в файл: /etc/dante.passwd

proxy_user_01:$apr1$Ts3tPSBs$kfYlyhXwezKq2t6mItWm6/

Можно воспользоваться онлайн сервисом генерации строки логина-пароля: https://www.mkpasswd.net/index.php (выбрав type:crypt-md5) или любым другим, но не стои забывать о том, что такие сервисы могут сохранять ваш логин и пароль у себя, в том числе и нехешированными!

Источник: https://blog.xenot.ru/ustanovka-i-nastrojka-dante-socks5-proxy-servera-na-ubuntu-18-04-lts-godnaya-instruktsiya-po-obhodu-blokirovki-messendzhera-telegram-i-dr-sajtov-roskomnadzorom.fuck

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

Настройка прокси-сервера в Убунту

Прокси-сервер на Ubuntu является самым удачным элементом для пользования Интернетом. Сейчас существует множество различных вариаций proxy server linux. Однако в целом установка, подключение и настройка такого оборудования для всевозможных вариантов ubuntu proxy server. Однако у новичков случаются различные проблемы при настройке прокси-сервера на linux – есть готовое решение.

Прокси сервер на Linux

Прежде чем рассматривать такие вопросы, как подключение через прокси (apt get proxy или wget через прокси), настройка ubuntu proxy, стоит разобраться в том, то такое прокси-сервер, какие бывают виды такого элемента, их основные достоинства и недостатки.

Что такое прокси-сервер

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

Внимание! Прокси-сервисы часто используются не только в крупных компаниях, но и у частных физических лиц.

Настройка прокси ubuntu server характеризуется своими плюсами и минусами. К достоинствам можно отнести:

  1. Очищение и оптимизация виртуальных запросов пользователей. Особенно это удобно при большом производстве.
  2. Увеличение скорости получения данных с различных Интернет-страниц и серверов.
  3. Улучшение веб-работы всех специалистов на предприятии.

Однако, несмотря на перечисленные преимущества, у настройки такого оборудования есть и недостатки:

  1. Часто авторизаций происходит с использованием конкретного ip-адреса, причем настраивать его надо вручную. Это может стать проблемой для большого производства.
  2. Еще один существенный момент: на одном ip-адресе может находиться много сайтов. Контроль и блокировка этого адреса может привести к сбоям в работе всего предприятия, да и усложнить в целом контроль за пользователями, поскольку менеджеры могут знать только сам ip-адрес, а не конкретный запрос.

Важно! Тем не менее, настройка прокси-сервера необходима каждому пользователю.

Самыми популярными являются 3 прокси-сервера для платформы убунту.

SQUID

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

PRIVOXY

В отличие от предыдущего, этот прокси-сервер устанавливается с помощью Интернета. Он разработан как раз для физических лиц.

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

К тому же интерфейс программы по сравнению с предыдущим вариантом достаточно прост.

POLIPO

Этот сервер является средним между двумя предыдущими вариантами. Он разработан для двух операционных систем: Линукс и Windows. POLIPO может поддерживать практически все типы протоколов. У него достаточно простой интерфейс.

Его можно подключать как непосредственно через Интернет, так и через пользовательские настройки. Этот прокси-сервер не только позволяет кешировать страницы, но и фильтровать контент, рекламу, защитить пользовательскую информацию.

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

Устанавливать прокси-сервер можно как через Интернет, так и непосредственно через маршрутизатор.

Авторизация может происходить по разным схемам: через различные системы и ip-адреса пользователей, файлы, доменные имена, регулярные выражения, информацию из разных конфигурационных файлов. Например:

  1. Acl src myComputer 10.128.1.1 – из единственного компьютера-пользователя
  2. Acl src my Network 10.128.2.0/24 – задает сеть класса С.
  3. Acl src all 0.0.0.0/0 – описывает вообще все IP- сети

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

Управление и сбор статистических данных происходит с помощью доменных приложений, конкретных ip-адресов, регистрационный файлов.

Частые ошибки

Случается так, что прокси-сервер не работает. Основными причинами этой проблемы являются:

  • дезорганизация работы прокси-сервера;
  • блокировка конкретных сайтов;
  • установка вредоносного программного обеспечения.

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

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

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

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.