Главная » Ошибки » 3proxy на Ubuntu

3proxy на Ubuntu

В этой статье

Настройка брандмауэра

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

а) если используем Iptables.

iptables -I INPUT 1 -p tcp –dport 3128 -j ACCEPT

netfilter-persistent save

* если система вернет ошибку при вводе команды для сохранения правил, устанавливаем пакет командой apt-get install iptables-persistent.

б) если у нас firewalld.

firewall-cmd –permanent –add-port=3128/tcp

firewall-cmd –reload

* 3128 — порт по умолчанию, по которому работает 3proxy в режиме прокси;

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

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

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

apt-get install build-essential

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

Копируем ссылку на версию пакета для Linux

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

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

* в моем случае будет скачена версия 0.9.3.

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

tar xzf 0.9.3.tar.gz

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

cd 3proxy-*

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

make -f Makefile.Linux

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

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

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

mkdir -p /var/log/3proxy

mkdir /etc/3proxy

cp bin/3proxy /usr/bin/

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

chown proxy3:proxy3 -R /etc/3proxy

chown proxy3:proxy3 /usr/bin/3proxy

chown proxy3:proxy3 /var/log/3proxy

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

id proxy3

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

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

* где 109 — идентификатор пользователя; 113 — идентификатор для группы.

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

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”
rotate 30
auth none
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n

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

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

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

Можно ли установить прокси-сервер на ISP Manager?

  • 1 подписчик
  • 2 часа назад
  • 18 просмотров

ответ
1

  • windows
    • Windows

    Средний

  • Как скачать и скомпилировать YASM в Windows?

    • 1 подписчик
    • 14 часов назад
    • 53 просмотра

    ответ
    1

  • windows
    • Windows

    Простой

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

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

    Пример настройки Mozilla Firefox для работы через прокси

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

    Крашнулся ноутбук, что делать?

    • 1 подписчик
    • 3 часа назад
    • 56 просмотров

    ответов
    0

  • windows
    • Windows

    Средний

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

    Для автозагрузки 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:

    systemctl daemon-reload

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

    systemctl enable 3proxy

    systemctl start 3proxy

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

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

    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 с паролем 3apa3a, dmosk1 с открытым паролем password и dmosk2 с паролем dmosk2 в виде md5 и солью UsbY5l (Для получения хэша пароля можно воспользоваться командой openssl passwd -1 -salt UsbY5l, где в качестве соли можно использовать любую комбинацию).
    * обратите внимание, при использовании знака $, строчка пишется в кавычках.

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

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

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


    auth strong

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

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

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

    auth nbname strong

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

    systemctl restart 3proxy

    Plugins

    plugin

    [ …] Loads specified library and calls given export function with given arguments, as
    int functions_to_call(struct pluginlink * pl, int argc, char * argv[]);
    function_to_call must return 0 in case of success, value > 0 to indicate error.filtermaxsize
    If Content-length (or another data length) is greater than given value, no data filtering will be performed thorugh filtering plugins to avoid data corruption and/or Content-Length chaging. Default is 1MB (1048576).

    Безопасен ли зараженный отключенный SSD диск?

    • 2 подписчика
    • 20 часов назад
    • 262 просмотра

    ответа
    2

  • windows
    • Windows

    • +1 ещё

    Простой

  • Какие команды выбрать для диска?

    • 1 подписчик
    • 20 часов назад
    • 56 просмотров

    ответа
    3

  • windows
    • Windows

    • +2 ещё

    Средний

  • Почему не могу редактировать hosts файл Windows 11?

    • 1 подписчик
    • 19 часов назад
    • 86 просмотров

    ответа
    4

  • windows
    • Windows

    • +3 ещё

    Сложный

  • SOCKS

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

    vi /etc/3proxy/3proxy.cfg

    socks

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

    Или:

    socks -p8083 -i192.168.1.23 -e111.111.111.111

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

    После перезапускаем сервис:

    systemctl restart 3proxy

    Настройка анонимности

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

    1. Меняем порты, которые используются по умолчанию — 3128, 1080. Данные порты известны, как порты для прокси. Открываем конфигурационный файл 3proxy:

    vi /etc/3proxy/3proxy.cfg

    Меняем порты:

    socks -p1088
    proxy -n -p3111

    * в данном примере мы укажем серверу работать на портах 3111 и 1088.

    После перезапускаем сервис:

    systemctl restart 3proxy

    2. Необходимо, чтобы время на сервере совпадало с временем на компьютере.

    На стороне сервера необходимо задать часовой пояс, например, если наш прокси находится в Германии, вводим:

    timedatectl set-timezone Europe/Berlin

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

    3. Отключение icmp. По времени ответа на ping можно определить отдаленноесть клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp. Для этого создаем правило в брандмауэре:

    iptables -I INPUT -p icmp –icmp-type 8 -j REJECT

    И применяем настройку:

    netfilter-persistent save

    4. Проверяем настройки.

    Открываем браузер, который работает через прокси и переходим на страницу 2ip.ru/privacy — кликаем по Проверить:

    Переходим к проверке анонимности прокси

    Будет выполнена проверка анонимности нашего сервера.

    Вылетает программа толк (talk) windows 10?

    • 1 подписчик
    • час назад
    • 13 просмотров

    ответ
    1

  • linux
    • Linux

    • +3 ещё

    Простой

  • Исправление некоторых проблем.

    Проблема 1.

    Из-за кеширования доменных имён есть вероятность, что ваш новый домен, лично для вас будет недоступен.

    Проблема 2.

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

    1. Поменять порты. Но найти всё равно могут.

    proxy -n -p7834 # на http proxy слушать порт 7834
    socks -p7835 # на socks слушать порт 7835

    1. Не вести логи.
    2. В фаерволе разрешить доступ с определённых адресов, остальным запретить. Довольно негибкое, но железное решение.

    Лучше предусмотреть всё заранее.

    Как настроить батарею ноутбука или это брак?

    • 1 подписчик
    • 21 час назад
    • 54 просмотра

    ответа
    2

  • Показать ещёЗагружается…
  • Вакансии с Хабр Карьеры

    Системный администратор Windows

    Gaijin
    •Ереван
    от 1 400 €

    Системный инженер Windows

    Золотое Яблоко
    •Екатеринбург
    от 100 000 ₽

    Специалист технической поддержки второй линии (iiko, штрих-м)

    АйтиДо
    •Краснодар
    от 50 000 ₽
    Ещё вакансии

    Заказы с Хабр Фриланса

    Копирайтинг

    23 окт. 2022, в 15:35
    4000 руб./за проект

    Таргетолог Вконтакте

    23 окт. 2022, в 15:27
    10000 руб./за проект

    Написать программу на С#

    23 окт. 2022, в 15:11
    4000 руб./за проект
    Ещё заказы

    Минуточку внимания

    Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

    Зарегистрироваться

    Самое интересное за 24 часа

    • Сущиствует ли GUI фреймворк под windows для rust?

      • 2 подписчика
      • 1 ответ
    • Как выбрать из элемента из списка по его вероятности?

      • 2 подписчика
      • 1 ответ
    • Как получить иностранный номер телефона?

      • 4 подписчика
      • 0 ответов
    • Ассемблер в VSCode?

      • 3 подписчика
      • 1 ответ
    • Как удалить вирус, который меняет фон рабочего стола?

      • 4 подписчика
      • 2 ответа
    • Api через POST запросы?

      • 3 подписчика
      • 2 ответа
    • Проблема с установкой windows что делать?

      • 2 подписчика
      • 1 ответ
    • Как сделать чтобы из моего пакета импортировалось только то, что нужно?

      • 2 подписчика
      • 0 ответов
    • Как сделать рекурсивные списки Visual Prolog?

      • 2 подписчика
      • 0 ответов
    • Безопасен ли зараженный отключенный SSD диск?

      • 2 подписчика
      • 2 ответа
    • © Habr
    • О сервисе
    • Обратная связь
    • Блог

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

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

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

    При необходимости, можно настроить 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 порт).

    systemctl restart 3proxy

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

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

    vi /etc/3proxy/3proxy.cfg

    bandlimin 1000000 user1,user3
    bandlimin 5000000 user2,user4

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

    systemctl restart 3proxy

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

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

    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.

    systemctl restart 3proxy

    Проблема с установкой windows что делать?

    • 2 подписчика
    • 11 часов назад
    • 80 просмотров

    ответ
    1

  • windows
    • Windows

    • +1 ещё

    Простой

  • Как в Win10 удалить из корзины много файлов?

    • 1 подписчик
    • 16 часов назад
    • 60 просмотров

    ответ
    1

  • windows
    • Windows

    Сложный

  • Возможные ошибки

    Рассмотрим ошибки, с которыми можно столкнуться при настройке 3proxy.

    Установка 3proxy с поддержкой http(s) и socks5-proxy

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

    Итак, далее краткое описание установки и настройки.

    Установка из репозиторий

    # apt-get install 3proxy

    Создаем папки:

    # mkdir /usr/local/etc/3proxy
    # mkdir /usr/local/etc/3proxy/bin
    # mkdir /usr/local/etc/3proxy/logs
    # mkdir /usr/local/etc/3proxy/stat

    Переносим исполняемый файл

    # cp src/3proxy /usr/local/etc/3proxy/bin

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

    # cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
    # update-rc.d 3proxy defaults

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

    # touch /usr/local/etc/3proxy/3proxy.cfg

    Или переносим из образца конфигурационный файл

    # cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg

    Выставляем права

    # chown -R nobody:nogroup /usr/local/etc/3proxy

    Пример файла конфигурации

    Пример файла конфигурации 3proxy.cfg, который должен у вас получиться после его редактирования:

    # Пропишите правильные серверы имен посмотрев их на своем VDS в /etc/resolv.conf#
     
    nserver 8.8.8.8
    nserver 8.8.4.4
     
    # Оставьте размер кэша для запросов DNS по умолчанию#
     
    nscache 65536
     
    # Равно как и таймауты#
     
    timeouts 15306018018001560
     
    # Если несколько IP на одном сервере, указываем тот, через который ходить во внешний мир# Иначе эту строку игнорируем
    external 192.168.1.1
     
    # Тоже самое, только указываем IP, который надо слушать# Если проигнорировать, то прокся слушает все адреса на сервере
    internal 192.168.0.1
     
    # Создайте пользователей proxyuser1 и proxyuser2, пароль простым текстом#
     
    users proxyuser1:CL:password1
    users proxyuser2:CL:password2
     
    # укажите режим запуска как deamon#
     
    daemon
     
    # путь к логам и формат лога, к имени лога будет добавляться дата создания#
     
    log/var/log/3proxy/3proxy.log D
    logformat “- +_L%t.%.  %N.%p %E %U %C:%c %R:%r %O %I %h %T”
     
    # сжимать логи при помощи gzip#
     
    archiver gz /usr/bin/gzip %F
     
    # и хранить их 30 дней#
     
    rotate 30
     
     
    # Конфигурация http(s) proxy## включаем авторизацию по логинам и паролям#
     
    auth strong
     
    # ограничим доступ по портам через http(s)-proxy#
     
    allow ***80-88,8080-8088 HTTP
    allow ***443,8443 HTTPS
     
    # запускаем http-proxy без поддержки ntlm-авторизации#
     
    proxy -n
     
     
    # Конфигурация socks5-proxy## включаем авторизацию по логинам и паролям#
     
    auth strong
     
    # очищаем список access-листов которые остались от http-proxy#
     
    flush
     
    # ставим ограничение на 32 одновременных подключения#
     
    maxconn 32
     
    # запускаем socks#
     
    socks

    Ограничьте права доступа к файлу только пользователю root (поскольку в файле хранятся пароли доступа, для безопасности)

    # chmod600/usr/local/etc/3proxy.cfg

    Добавьте 3proxy в автозапуск:

    echo’threeproxy_enable=”YES”‘>>/etc/rc.conf

    И запустите его:

    # /usr/local/etc/rc.d/3proxy start

    Настройка закончена. На порту 3128 теперь у вас работает http-proxy, на порту 1080 socks-proxy

    Запуск на определенном IP

    Исправьте конфиг:

    proxy -p3128 -i10.10.10.1 -e10.10.10.1
    proxy -p3128 -i10.10.10.2 -e10.10.10.2
    proxy -p3128 -i10.10.10.3 -e10.10.10.3

    При такой конфигурации прокси будет запущен на 3х разных IP и выдавать разный IP в зависимости от того на какой IP подключились.

    Источники

    • https://www.dmosk.ru/miniinstruktions.php?mini=3proxy-ubuntu
    • https://qna.habr.com/q/839781
    • https://www.mankier.com/3/3proxy.cfg
    • https://FirstVDS.ru/technology/ustanovka-3proxy
    [свернуть]
    Решите Вашу проблему!


    ×
    Adblock
    detector