3proxy настройка windows 10

Обновлено: 04.07.2024

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

Proxy позволяет перенаправлять трафик с вашего компьютера на сервер. Например, вы хотите открыть некий сайт через прокси. Тогда ваш компьютер обращается к прокси, прокси подключается к сайту, получает его содержимое и перенаправляет его на ваш компьютер. Таким образом, сайт видит внешний IP прокси-сервера, а не вашего компьютера, а если сайт заблокирован, например, Роскомнадзором или президентом Украины, то можно сделать прокси-сервер в другой стране, в которой нужные вам ресурсы не заблокированы, и тем самым получить к ним доступ в обход блокировок. Главное, чтобы из вашей страны не был заблокирован сам прокси-сервер.

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

Содержание

Вся инструкция очень кратко для продвинутых

Это краткое содержание инструкции для продвинутых пользователей; для новичков все очень подробно расписано ниже.

./freebsd-autodeploy.sh — справка по командам (параметрам) скрипта.

git pull — скачать обновления скрипта (если они есть).

Выбор хостинга, где арендовать виртуальный сервер

Определитесь с задачами прокси-сервера: куда вы собираетесь через него ходить?

Если это ресурсы, заблокированные в вашей стране, то нужен виртуальный сервер в другой стране. Например, вы живете на Украине и хотите иметь доступ к Яндексу, Вконтакте, Dr.Web, Kaspersky и другим заблокированным ресурсам. Тогда вам подойдет виртуальный сервер в России. По сравнению с, например, европейским сервером российский позволит определять ваш регион как «Россия» и выдавать соответствующий геозависимый контент сайта, а также скорость открытия сайтов будет чуть выше, т.к. магистральные каналы до российских серверов шире, чем до европейских.

Жители России могут арендовать сервер в Украине, но тогда вы попадете под различные украинские блокировки, поэтому лучше всего использовать европейский сервер, тогда вы сможете без проблем иметь доступ ко всем сайтам и месседжерам, в т.ч. получите беспроблемно работающий Telegram.

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

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

Вы можете встретить 2 основных типа виртуализации: OpenVZ и KVM. Про их отличия в интернете есть множество статей, нам нужен KVM, иначе не сможем запустить операционную систему FreeBSD. Нам будет достаточно любого минимального тарифа.

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



Мы же ниже подробно разберем весь процесс на примере недорого и надежного зарубежного хостинга Vultr.

  • Идем на сайт vultr.com
  • Нажимаем "Create account" ("Создать аккаунт"):


    Заполняем открывшуюся форму:


  • E-mail (электронная почта)
  • Пароль, который должен удовлетворять следующим условиям:
    • Не менее 10 символов
    • Содержать хотя бы одну заглавную букву
    • Содержать хотя бы одну строчную букву
    • Содержать хотя бы одну цифру



    Добавление платежной банковской карты в Vultr

    После регистрации в Vultr баланс составляет 10 долларов, однако, чтобы ими воспользоваться, нужно привязать банковскую карту или пополнить счет. После того, как вы вошли в личный кабинет Vultr, перейдите в раздел "Billing" ("Платежи") в левом меню и добавьте банковскую карту или пополните счет через Paypal. Заполните поля, как показано на картинке ниже. Обратите внимание, что указание адреса — это формальность, если вы его укажите неправильно, платеж все равно пройдет. Оплата за сервер почасовая.


    Галка "I just want to link my credit card - 0.00$ deposit" означает, что будет выполнена просто привязка карты без списания выбранной суммы (по умолчанию ), а как закончатся подарочные 10$, деньги начнут списываться с привязанной карты. Если ее не отметить, то выбранная сумма будет списана сразу. Поставьте галку "I agree to the terms of service" ("Согласен с условиями использования").

    После заполнения формы нажмите большую синюю кнопку "Link credit card" ("Привязать банковскую карту").

    Создание виртуального сервера с FreeBSD в Vultr


    После добавления банковской карты откроется страница создания нового виртуального сервера (в дальнейшем будем его называть прсото сервером). В любое другое время туда можно попасть из раздела "Servers":

    Теперь нужно выставить параметры создаваемого сервера.

    • Выбираем дата-центр (страну), где будет расположен сервер. Когда начинал писать эту статью, из европейских локаций была доступна Франция, однако на момент снятия скриншота она временно недоступна. Выбирайте Нидерланды (Амстердам), Германию (Франкфурт) или Париж (Францию). Пинг до европейских серверов будет немного ниже, чем до американских, однако вы вряд ли заметите разницу при использовании прокси-сервера. У большинства операторов трафик в Японию (Tokyo, Japan) и Сингапур (Singapore) в обе сторону идет по маршруту Россия-Европа-США-Япония/Сингапур или Россия-Европа-Суэцкий канал-Япония/Сингапур, но у Ростелекома есть прямые каналы на Японию через Дальний Восток России (в ряде случаев трафик все равно ходит через США), что уменьшает пинг и увеличивает скорость. Я выберу Японию, но большинству пользователей рекомендую Европу или США.


    • Выбираем операционную систему FreeBSD 11 x64


    • Выбираем тариф. подойдет минимальный тариф за 2 с половиной долларов в месяц, если он недоступен, как на момент написания статьи, выбираем тариф за 5$ в месяц.


      Ставим галку "Enable IPv6" для включения IPv6 на виртуальном сервере (обратите внимание, что для работы прокси через IPv6 ваш интернет-провайдер все равно должен поддерживать IPv6). Если не поддерживает, то эта галка никак не помешает — будет работать через IPv4.


    Внимание! Если вы не очень поняли этот пункт, то пропустите его.

    Если вы на своем компьютере используете операционную систему Linux (или FreeBSD), то для удобного и безопасного захода на сервер вместо пароля можно использовать авторизацию по SSH-ключу. Сначала на компьютере создайте SSH-ключ, не от root, а от пользователя выполнив команду в терминале:

    Затем выведите в терминал и скопируйте содержимое вашего публичного SSH-ключа:

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




    • В разделе "Servers" в списке своих серверов вы увидите, что на вновь созданный сервер устанавливается операционная система ("Installing. "), а значит через несколько минут сервер будет готов к работе:


    • Тогда желтая надпись "Installing" будет изменена на зеленую "Running". Подождите 5 минут и приступайте к настройке сервера.

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

    Проверка сервера на доступность. Удаление сервера


    На сайте Роскомнадзора можно проверить, не заблокирован ли IP-адрес вашего сервера в России. Если заблокирован, то создавайте новые сервера (оплата за время использования, а не сразу за месяц), пока вам не попадется сервер с незаблокированным IP-адресом, а затем удалите все лишние ранее созданные сервера, как показано на скриншоте:

    Быстрая настройка сервера

    Вот мы и создали наш виртуальный сервер, поздравляю! Теперь пришло время подключиться к его командной строке и запустить скрипт для автоматической настройки прокси-сервера 3proxy. Скрипт freebsd-autodeploy был написан специально для этой статьи и операционной системы FreeBSD.

    • В панели управления Vultr нажимаем на сервер и смотрим root-пароль:


    Подключаемся к серверу по SSH — протоколу удаленного управления через командную строку. Если вы боитесь командной строки и думаете, что она неудобна, то в UNIX-подобных ОС она гораздо удобнее, чем в Windows, и прочитайте статью «Почему консоль, а не графический интерфейс?»

    Если вы используете Linux/UNIX/MacOS, то подключиться к серверу по SSH очень просто. Для этого откройте терминал и выполните команду:

    в которую подставьте IP своего сервера. В целом команда имеет следующий вид: ssh имя_пользователя@IP_или_домен_сервера -p порт . Если не указан порт, то используется стандартный — 22.

    При первом подключении нужно ввести yes и нажать Enter. При вводе пароля он НЕ отображается никак! Скриншот:


    Дальше у вас есть полноценный графический терминал, в котором можно мышью с помощью контекстного меню или клавишами Ctrl+Shift+C, Ctrl+Shift+V копировать и вставлять текст, а по средней кнопке мыши работает параллельный буфер обмена, вставляющий ранее выделенный текст. что очень сильно экономит время, т.к. не нужно копировать и вставлять.

    Чтобы каждый раз не вводить пароль, вы можете скопировать свой локальный публичный SSH-ключ на сервер:

    Если вы используете Windows, то для подключения к серверу по SSH воспользуйтесь бесплатной программой Putty (по удобству очень сильно уступает графическому терминалу в Linux):


    На сервере последовательно выполняем команды ниже. Одна команда — одна строка. Копируем-вставляем команду в терминал и нажимаем Enter.

    env ASSUME_ALWAYS_YES=yes pkg install -y pkg git nano (установим необходимые для работы пакеты)

    cd (с помощью этой команды перейдем в домашнюю папку)

    cd freebsd-autodeploy (перейдем в папку freebsd-autodeploy)

    ./freebsd-autodeploy.sh 3proxy-setup (запустим скрипт автоматической настройки FreeBSD и 3proxy)


    Ваш личный прокси-сервер готов к использованию.

    Если выполнить команду ./freebsd-autodeploy.sh , то будет выведена справка по командам скрипта:

    Обратите внимание, что если вы заново зайдете на сервер, то сначала нужно выполнить команду cd freebsd-autodeploy , чтобы перейти в папку, в которой находится скрипт. Затем можно выполнять указанные команды, например, ./freebsd-autodeploy.sh adduser для добавления нового пользователя прокси-сервера (с логином и паролем), ./freebsd-autodeploy.sh listusers для вывода списка имеющихся пользователей, ./freebsd-autodeploy.sh serverinfo для повторного вывода IP-адресов и портов прокси-сервера.


    Если вы хотите обновить скрипт, установив его новую версию, совместимую с этой инструкцией, то выполните команду git pull .

    Настройка браузера на работу через прокси

    В настройках Firefox можно указать прокси, чтобы все сайты открывались через него. Достаточно указать только SOCKS-прокси.

    С помощью специальных расширений, например FoxyProxy для Chromium и FoxyProxy для Firefox можно настроить так, чтобы через прокси шли запросы только к определенным сайтам, а ко всем остальным трафик шел напрямую. Это позволит и скорость интернета сохранить, и получить доступ к заблокированным сайтам, внеся их в список FoxyProxy для работы через прокси.



    Настройка Telegram на работу через прокси


    Укажите прокси SOCKS.

    Быстрая проверка работы прокси через командную строку Linux/UNIX/MacOS

    С помощью командной строки UNIX-подобных ОС можно быстро проверить работу прокси, для этого с любого другого сервера или компьютера выполните в терминале:

    Дальнейший уход за сервером (основные команды)

    Логи прокси-сервера лежат в /var/log/3proxy/. Автоматическое архивирование логов раз в 30 дней. Логируется всё, кто, когда и куда ходит через прокси-сервер.

    Обновление системы (установка обновлений, в т.ч. закрывающих уязвимости безопасности): pkg update; pkg upgrade

    Наш скрипт сам настраивает автообновления системы раз в час, смотрите /usr/local/bin/system-autoupdate и вызов этого скрипта в 0 минут каждого часа в /etc/crontab. Это сделано для того, чтобы поддерживать безопасность сервера без вмешательства пользователя. В Linux/FreeBSD не нужно перезагружать систему для установки обновлений.

    3proxy запускается автоматически, это настроено в файле /etc/rc.conf. Также можно перезапустить сервер через панельуgравления хостинга, но так лучше не делать, т.к. это эквивалентно отключению электропитания компьютера, в результате чего может произойти порча файловой системы.

    Временное выключение 3proxy (до перезагрузки): service 3proxy stop

    Временное включение 3proxy (до перезагрузки): service 3proxy start

    Перезапуск 3proxy (остановить и запустить): service 3proxy restart

    Конфиг (текстовый концигурационный файл) 3proxy расположен по адресу /usr/local/etc/3proxy.cfg, файл со списком пользователей — /usr/local/etc/3proxy.cfg.auth

    Для смены стандартного порта SSH (защита от перебора паролей ботами):

    Перезапустить сервер SSH: service sshd restart

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

    Если в результате ошибки в настройках вы не можете подключиться к серверу по SSH, то попробуйте открыть браузерную консоль, эмулирующую прямой доступ к экрану сервера, как если бы был подключен монитор:


    Улучшения статьи и скрипта freebsd-autodeploy

    Скрипт автоматически настраивает ОС FreeBSD версии 11 (работа на других версиях не проверялась, но должно работать): настраивает русскую UTF-8 локаль, делает bash шеллом пользователя root, настраивает автоматические обновления системы раз в час для оперативного закрытия уязвимостей, устанавливает и настраивает прокси-сервер 3proxy из репозитория. Пока не хватает автоматической настройки фаервола, смены порта SSH и fail2ban для дополнительной безопасности. FreeBSD была выбрана потому, что в репозиториях дистрибутивов Linux нет 3proxy, да и настройка Линукса заезженная тема, в отличие от FreeBSD.

    Работа скрипта проверена на образах FreeBSD на хостингах «Айхор», Vultr, DigitalOcean, а также официальном установочном образе FreeBSD 11.1.

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

    В распространенных инструкциях к прокси-серверу Squid предлагают даже сгенерировать собственный сертификат и установить его клиентам, что полный бред как минимум нерационально и выглядит как MITM — атака. Я знаю, что Squid уже что-то подобное умеет делать, но речь в этой статье о проверенном и рабочем способе с использованием 3proxy от уважаемого 3APA3A.

    Далее мы подробно рассмотрим процесс сборки 3proxy из исходников, его настройку, полное и выборочное проксирование с использованием NAT, распределение канала на несколько внешних прокси-серверов, а также использование роутера и статических маршрутов. В качестве ОС используем Debian 9 x64. Начинаем!

    Установка 3proxy и запуск обычного прокси-сервера

    1. Устанавливаем ifconfig (из пакета net-tools)
    apt-get install net-tools
    2. Устанавливаем Midnigth Commander
    apt-get install mc
    3. У нас сейчас 2 интерфейса:
    enp0s3 — внешний, смотрит в интернет
    enp0s8 — внутренний, должен смотреть в локальную сеть
    В других Debian-based дистрибутивах интерфейсы обычно называются eth0 и eth1.
    ifconfig -a

    enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
    inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
    RX packets 6412 bytes 8676619 (8.2 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 1726 bytes 289128 (282.3 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    enp0s8: flags=4098<BROADCAST,MULTICAST> mtu 1500
    ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

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

    4. Приступим к установке 3proxy

    4.1 Установка базовых пакетов для компиляции 3proxy из исходников

    4.2. Создадим папку для скачивания архива с исходниками

    4.3. Перейдем в эту папку

    4.4. Теперь загрузим последний пакет 3proxy. На момент написания статьи последней стабильной версией была 0.8.12 (18/04/2018) Скачаем её с официального сайта 3proxy

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

    4.6. Переходим в распакованный каталог для сборки программы

    4.7. Далее нужно добавить строчку в файл заголовка, чтобы наш сервер был полностью анонимным (реально работает, всё проверено, ip клиентов скрываются)

    4.8. Приступим к сборке программы

    make[2]: Leaving directory '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin'
    make[1]: Leaving directory '/opt/proxy/3proxy-0.8.12/src'

    Ошибок нет, продолжаем.

    4.9. Установим программу в систему

    4.10. Переходим в корневой каталог и проверяем, куда установилась программа

    4.11. Создадим папку для конфигурационных файлов и логов в домашнем каталоге пользователя

    4.12. Переходим в каталог, где должен быть конфиг

    4.13. Создаем пустой файл и копируем туда конфиг

    daemon
    pidfile /home/joke/proxy/3proxy.pid
    nserver 8.8.8.8
    nscache 65536
    users tester:CL:1234
    timeouts 1 5 30 60 180 1800 16 60
    log /home/joke/proxy/logs/3proxy.log D
    logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
    rotate 3
    auth strong
    flush
    allow tester
    socks -p3128
    proxy -p8080

    Для сохранения нажимаем Ctrl + Z

    4.14. Создадим pid — файл, чтобы не было ошибок при запуске.

    Для сохранения нажимаем Ctrl + Z

    4.15. Запускаем прокси сервер!

    4.16. Посмотрим, слушает ли сервер порты

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 504/3proxy
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 338/sshd
    tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 504/3proxy
    tcp6 0 0 . 22 . * LISTEN 338/sshd
    udp 0 0 0.0.0.0:68 0.0.0.0:* 352/dhclient

    Как и было написано в конфиге, веб-прокси слушает у нас порт 8080, Socks5-прокси — 3128.

    4.17. Для автозапуска службы прокси после перезагрузки нужно добавить её в cron.

    @reboot /usr/local/bin/3proxy /home/joke/proxy/3proxy.conf

    Нажимаем Enter, так как cron должен видеть символ конца строки и сохраняем файл.

    crontab: installing new crontab

    4.18. Перезагрузим систему и попробуем подключиться через браузер к прокси. Для проверки используем браузер Firefox (для веб-прокси) и дополнение FoxyProxy для socks5 с аутентификацией.

    4.19. Проверив работу прокси после перезагрузки, можно посмотреть логи. На этом настройка прокси-сервера завершена.

    Настройка и запуск конфигурации Transparent Proxy NAT

    В данной конфигурации все устройства внутренней сети будут прозрачно работать в интернете через удаленный прокси-сервер. Абсолютно все tcp-соединения будут перенаправляться в один либо несколько (реально расширяет ширину канала, пример конфигурации №2!) прокси-серверов. Служба DNS будет использовать возможности 3proxy (dnspr). UDP наружу «ходить» не будет, так как мы пока не используем механизм forward (по-умолчанию отключен в ядре Linux).

    1. Настало время включить интерфейс enp0s8

    Тут мы назначили интерфейсу enp0s8 статический адрес 192.168.201.254 и маску 255.255.255.0
    Сохраняем конфиг Ctrl+X и перезагружаемся

    2. Проверяем интерфейсы

    enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
    inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
    RX packets 61 bytes 7873 (7.6 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 65 bytes 10917 (10.6 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.201.254 netmask 255.255.255.0 broadcast 192.168.201.255
    inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64 scopeid 0x20 ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 8 bytes 648 (648.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

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

    Пример конфигурации прозрачного прокси-сервера №1 daemon
    pidfile /home/joke/proxy/3proxy.pid
    nserver 8.8.8.8
    nscache 65536
    timeouts 1 5 30 60 180 1800 16 60
    log /home/joke/proxy/logs/3proxy.log D
    logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
    rotate 3
    flush
    auth iponly
    dnspr
    allow *
    parent 1000 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ 3128 tester 1234
    plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
    tcppm -i0.0.0.0 888 127.0.0.1 11111

    6. Посмотрим, что теперь слушает наш прокси
    root@debian9:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 349/sshd
    tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 354/3proxy
    tcp6 0 0 . 22 . * LISTEN 349/sshd
    udp 0 0 0.0.0.0:53 0.0.0.0:* 354/3proxy
    udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient

    8. Установим пакет iptables-persistent и dhcpd

    9. Правим файл запуска dhcpd
    root@debian9:

    default-lease-time 600;
    max-lease-time 7200;


    11. Перезагружаемся и проверяем службу на порту 67
    root@debian9:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 389/sshd
    tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 310/3proxy
    tcp6 0 0 . 22 . * LISTEN 389/sshd
    udp 0 0 0.0.0.0:20364 0.0.0.0:* 393/dhcpd
    udp 0 0 0.0.0.0:53 0.0.0.0:* 310/3proxy
    udp 0 0 0.0.0.0:67 0.0.0.0:* 393/dhcpd
    udp 0 0 0.0.0.0:68 0.0.0.0:* 405/dhclient
    udp6 0 0 . 31728 . * 393/dhcpd
    raw 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd

    13. Для расширения полосы канала можно использовать сразу несколько прокси-серверов. Общая сумма должна быть 1000. Новые соединения устанавливаются с вероятностью 0.2, 0.2, 0.2, 0.2, 0,1, 0,1 к указанным прокси-серверам.

    Примечание: если у нас web-прокси то вместо socks5 нужно писать connect, если socks4, то socks4 (socks4 НЕ ПОДДЕРЖИВАЕТ АВТОРИЗАЦИЮ ЛОГИН/ПАРОЛЬ!)

    Пример конфигурации прозрачного прокси-сервера №2

    daemon
    pidfile /home/joke/proxy/3proxy.pid
    nserver 8.8.8.8
    nscache 65536
    maxconn 500
    timeouts 1 5 30 60 180 1800 16 60
    log /home/joke/proxy/logs/3proxy.log D
    logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
    rotate 3
    flush
    auth iponly
    dnspr
    allow *

    parent 200 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№1 3128 tester 1234
    parent 200 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№2 3128 tester 1234
    parent 200 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№3 3128 tester 1234
    parent 200 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№4 3128 tester 1234
    parent 100 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№5 3128 tester 1234
    parent 100 socks5 IP_АДРЕС_ВНЕШНЕГО_ПРОКСИ№6 3128 tester 1234

    plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
    tcppm -i0.0.0.0 888 127.0.0.1 11111

    Настройка и запуск конфигурации NAT + Transparent Proxy

    2. Набираем в гугле BGP 208.85.40.20

    Открываем префиксы v4

    Вот и искомые подсети!

    199.116.161.0/24
    199.116.162.0/24
    199.116.164.0/23
    199.116.164.0/24
    199.116.165.0/24
    208.85.40.0/24
    208.85.41.0/24
    208.85.42.0/23
    208.85.42.0/24
    208.85.43.0/24
    208.85.44.0/24
    208.85.46.0/23
    208.85.46.0/24
    208.85.47.0/24

    199.116.161.0/24
    199.116.162.0/24
    199.116.164.0/23
    208.85.40.0/22
    208.85.44.0/24
    208.85.46.0/23

    4. Очищаем правила iptables

    Включаем механизм forward и NAT

    Чтобы forward был включен постоянно после перезагрузки изменим файл

    И раскомментируем строку

    Ctrl+X для сохранения файла

    6. Сохраним правила

    Настройка и запуск конфигурации Transparent Proxy via router

    В данной конфигурации прозрачный прокси-сервер может быть отдельным ПК или виртуальной машиной за домашним/корпоративным роутером. Достаточно прописать статические маршруты на роутере или устройствах и вся подсеть будет использовать прокси без необходимости каких-либо дополнительных настроек.

    ВАЖНО! Необходимо, чтобы наш шлюз получал статический IP от роутера, либо был настроен на статику сам.

    1. Настраиваем статический адрес шлюза (адаптер enp0s3)

    2. Разрешаем устройствам из подсети 192.168.23.0/24 использовать проксирование

    3proxy это маленький многоплатформный набор прокси-серверов (под Linux/Unix и Windows, включая 64-битные версии).

    Он создан в рассчете на то, чтобы быть маленьким и простым и в то же время функциональным. Он может быть скомпилирован как с помощью Visual C так и с помощью gcc. Версия под Win32 использует родные библиотеки (т.е. не требуется Cygwin или другие POSIX-эмуляторы), поддерживается установка в качестве сервиса. На сегодняшний день работоспособность проверена на Windows 98/NT/2000/2003/2008/XP/Vista/Windows 7 включая версии x64, FreeBSD/i386, NetBSD/i386, OpenBSD/i386, Linux/i386, Linux/PPC, Linux/Alpha, Mac OS X/PPC, Solaris 10/i386.

    3proxy является FreeWare и может быть использован по лицензии GNU/GPL или под собственной лицензией. Начиная с версии 0.6 Используется лицензия типа BSD, позволяющая, так же, использовать LGPL, Apache License и многие другие совместимые типы лицензирования.

    Загружаем архив с сайта разработчика и распаковываем. Копируем из каталога \cfg\sql файл 3proxy.cfg, помещаем его в одну директорию с 3proxy.exe. Или же - из каталога \cfg копируем 3proxy.cfg.sample, переименовываем в 3proxy.cfg и помещаем туда же, в бинарники. Одно из двух; все одно в дальнейшем этот конфиг нам придется редактировать, а сейчас заработает по-любому.

    Открываем cmd, переходим в каталог, содержащий файл 3proxy.exe (я положил директорию 3proxy в корень диска С):

    Вложенный файл:

    Как видите, все несложно.

    Но здесь нас поджидает (возможно) нежданная и незаслуженная неприятность - 3proxy установлен, но не запущен; и даже зайдя в Администрирование -> Службы - мы не можем запустить его вручную:

    Вложенный файл:

    Почему так происходит? Вам придется внимательно изучить вот этот раздел FAQ:

    Почему 3proxy не запускается как служба?

    • Отсутствие команды service в файле конфигурации - команда необходима в 3proxy 0.5.2 и более ранних, чтобы 3proxy вел себя как системная служба Windows
    • Использование относительных (неполных) путей файлов в файле конфигурации При использовании файлов журналов, файлов вставок ($filename) используйте полные пути, например, $"c:\3proxy\include files\networks.local". Тоже самое относится к файлам журналов и любым другим. Для отладки лучше запускать 3proxy с ведением журнала на стандартный вывод. Не забудьте в таком случае отключить daemon и service в файле конфигурации. Для чистоты эксперимента запускать 3proxy из командной строки в таком случае следует, находясь в другой папке.
    • Отсутствие у системной записи прав на доступ к исполняемому файлу, каким-либо файлам конфигурации, журнала и т.п.
    • Отсутствие файла конфигурации по стандартному расположению - 3proxy.cfg в одном каталоге с исполняемым файлом. Если файл расположен по другому пути, необходимо использовать команду
    • Отсутствие у пользователя прав на установку или запуск службы
    • Служба уже установлена или запущена

    Справедливости ради следует отметить, что FAQ написан очень подробно и на все случаи жизни. мне же, чтобы запустить 3proxy как службу, понадобилось всего лишь создать по указанному в конфиге пути папку logs, и в ней - пустой файл лога (возможно, файл создавать было и необязательно). После этого 3proxy стартует уже без малейших проблем:

    Вложенный файл:

    Теперь, убедившись, что все работает, можно снова остановить 3proxy и спокойно заняться правкой конфига под себя. Останавливаться на этом не будем, т.к., повторюсь, к вашим услугам - прекрасно написанное руководство на русском, доступное на сайте разработчика. Enjoy!

    This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

    This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

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

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

    img

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

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

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

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

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

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

    Преимущества и недостатки:

    img

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

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

    • Управление доступом.
    • Ограничение ширины потребляемого канала.
    • Ограничение трафика на день, неделю и месяц.
    • Перенаправление соединений.
    • Построение цепочек соединений.
    • Ротация лог-файлов.
    • Ведение журналов через 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, мы будем устанавливать его из исходников.

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

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

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

    Шаг 3. Компилируем

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

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

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

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

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

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

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

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

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

    Другие примеры настроек можно посмотреть командами:

    или же в одном из следующих руководств на которые ссылается официальный сайт:

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

    Создаём файл с пользователями и паролями:

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

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

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

    Где логин: username и пароль: strongpassword следует изменить на свои.

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

    Выставляем права доступа к файлам прокси-сервера:

    Создаём папку для ведения логов и назначаем права на неё:

    В случае наличия IPv6 на сервере, рекомендуем запускать прокси со следующей строкой в /etc/3proxy/3proxy.cfg:

    Шаг 5. Добавляем в автозагрузку и запускаем прокси-сервер

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

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

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

    Ещё один вариант скрипта инициализации:

    Делаем файл исполняемым:

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

    Проблемы с запуском чаще всего связаны с файлом /etc/3proxy/3proxy.cfg в т.ч. к последней строке файла. При возникновении ошибки обычно указан порядковый номер проблемной строки.

    Также мы увидим его в списке запущенных процессов в ответе на команду:

    Шаг 6. Открываем порт

    Открываем порт (3128/tcp) на сервере. Либо указываем свой, который указан в файле /etc/3proxy/3proxy.cfg

    При использовании iptables:

    Шаг 7. Настраиваем окружение

    Множество программ (включая веб-браузеры) поддерживают работу через прокси по умолчанию. Интерфейс настроек у каждой свой.

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

    Либо использование программы проксификатора. Например такой как:

    Настройки для браузера Google Chrome: Для подключения к сети Google Chrome использует системные настройки прокси-сервера. В случае Microsoft Windows это настройки можно также найти в Internet Explorer / MS Edge.

    Форма с предложением ввода логина и пароля (username:strongpassword) появится, после первой попытки открытия любой веб-страницы.

    Затем любые сервисы по проверки IP-адреса, например, такие как:

    сообщат IP-адрес вашего Vscale-сервера вместо текущего.

    Шаг 8. Удаляем временные файлы

    Шаг 9. (ОПЦИОНАЛЬНО) Удаляем 3Proxy

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

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

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

    3proxy может выступать в роли высоко-анонимного прокси-сервера. Признаком использования подобного может быть лишь принадлежность выходного IP-адреса сервера к пулу адресов закреплённых за хостинговой компанией при просмотре WHOIS-данных и PTR-записи. В целом он хорош тем, что является маленьким и простым, но в то же время функциональным.

    Читайте также: