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

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

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

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

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

Среди всего многообразия прокси-серверов остановим свой выбор на открытом бесплатном кроссплатформенном сервере 3proxy, опубликованном под BSD-подобной лицензией. Официальный сайт — http://3proxy.ru/.

3proxy включает в себя:
  • 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 (версии с 9 по 11) или Ubuntu (версии с 18.04 по 21.10) любой разрядности (32/64 бита).
  • Пользователь с привилегиями root (как вариант доступ через sudo).

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

Установку и настройку 3proxy мы будем показывать на примере виртуальной машины на платформе Selectel.

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

Выберем ОС — Ubuntu 20.04, фиксированную конфигурацию — 1 vCPU, 1 ГБ оперативной памяти и 5 ГБ диска. В разделе «Сеть» выберем или создадим подсеть с публичным IP-адресом, чтобы к машине можно было подключаться из интернета. Также проверьте раздел «Доступ»: нужно либо записать пароль от root-пользователя, либо выбрать SSH-ключ.

Когда виртуальная машина будет готова, скопируйте ее IP-адрес:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии начинаются со знака # и допустимы только с начала строки. Рекомендуется также использовать другой порт вместо стандартного 3128 для прокси серверов, лучше всего из диапазона 49152–65535.

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

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

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

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

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

Где логин username и пароль strongpassword следует изменить на свои. Каждый новый пользователь указывается с новой строки. Выставляем права доступа к файлам прокси-сервера:

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

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

Для сервера с IPv4:95.213.255.16 и IPv6:2002:5fd5:ff010::1 у вас же они будут иные. В таком случае будет поддержка IPv6 на выходе с прокси, например, https://yandex.ru/internet отобразит оба адреса.

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

Создаем файл-инициализации для systemd:

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

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

Теперь нужно обновить конфигурацию systemd:

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

Если с первого раза сервис не запустился, проверьте наличие ошибок:

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

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

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

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

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

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

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

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

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

Например такой как:

Для подключения к сети Google Chrome использует системные настройки прокси-сервера.

В случае Microsoft Windows это настройки можно также найти в Internet Explorer / MS Edge.

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

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

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

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

Шаг 10. Удаляем 3Proxy (опционально)

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

Заключение

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

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

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

📎📎📎📎📎📎📎📎📎📎