Перейти к содержимому
Гайды 7 мин чтения 1 просмотров

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

Как поднять свой прокси-сервер: Squid, 3proxy, Dante

Поднять собственный прокси-сервер можно с помощью специализированного ПО, такого как Squid, 3proxy или Dante, для контроля сетевого трафика, обхода географических ограничений, кэширования данных или повышения анонимности.

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

Общие принципы настройки прокси-сервера

Для установки и настройки прокси-сервера потребуется виртуальный или физический сервер с операционной системой Linux (например, Ubuntu, Debian, CentOS) и доступом с правами суперпользователя (root).

Основные шаги:
1. Выбор ПО: Определить, какой тип прокси (HTTP, SOCKS, прозрачный) и какие функции необходимы.
2. Установка: Инсталлировать выбранное программное обеспечение.
3. Конфигурация: Настроить правила доступа, порты, аутентификацию.
4. Запуск и проверка: Запустить сервис и убедиться в его работоспособности.
5. Настройка фаервола: Открыть необходимые порты (по умолчанию 3128 для Squid, 8080 для HTTP-прокси, 1080 для SOCKS).

Squid Proxy

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

Установка Squid на Ubuntu/Debian

sudo apt update
sudo apt install squid -y

Базовая конфигурация Squid

Основной файл конфигурации Squid — /etc/squid/squid.conf. После установки он содержит множество комментариев и примеров.

Открытие порта и разрешение доступа

По умолчанию Squid слушает порт 3128. Для разрешения доступа с любого IP-адреса, необходимо изменить или добавить следующую строку:

# Разрешить доступ с любых IP-адресов
http_access allow all

Для более строгого контроля можно создать ACL (Access Control List) и применить его.

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

Squid поддерживает различные методы аутентификации, например, Basic-аутентификацию через htpasswd.

  1. Установите apache2-utils для создания файла паролей:
    bash sudo apt install apache2-utils -y
  2. Создайте файл паролей:
    bash sudo htpasswd -c /etc/squid/passwd username # Введите пароль для пользователя username
    Для добавления новых пользователей без перезаписи файла используйте htpasswd без опции -c.
  3. Добавьте следующие строки в squid.conf:
    ```conf
    auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
    auth_param basic children 5 startup=5 idle=1
    auth_param basic realm Squid proxy-server
    auth_param basic credentialsttl 2 hours

    acl authenticated proxy_auth REQUIRED
    http_access allow authenticated
    http_access deny all
    ```
    Это разрешит доступ только аутентифицированным пользователям.

Перезапуск Squid

После любых изменений в squid.conf необходимо перезапустить сервис:

sudo systemctl restart squid
sudo systemctl enable squid
sudo systemctl status squid

Таблица сравнения Squid

Характеристика Описание
Тип прокси HTTP, HTTPS (CONNECT), FTP
Кэширование Да, активно используется для ускорения доступа к веб-ресурсам
Аутентификация Basic, Digest, NTLM, Kerberos
ACL Гибкие правила доступа по IP, домену, времени, пользователю
Прозрачный прокси Поддерживается
Сложность Средняя, требует понимания конфигурационных файлов
Ресурсы Может быть требователен к памяти и дисковому пространству при активном кэшировании
Применение Корпоративные сети, интернет-провайдеры, контроль доступа, ускорение загрузки веб-страниц

3proxy

3proxy — это легковесный, универсальный прокси-сервер, поддерживающий HTTP, SOCKS (v4/v5), FTP и другие протоколы. Он отличается низким потреблением ресурсов и простотой настройки, что делает его подходящим для персонального использования или небольших проектов.

Установка 3proxy на Ubuntu/Debian

  1. Установите необходимые пакеты для сборки:
    bash sudo apt update sudo apt install build-essential git -y
  2. Клонируйте репозиторий и соберите 3proxy:
    bash git clone https://github.com/z3APA3A/3proxy.git cd 3proxy make -f Makefile.Linux sudo make -f Makefile.Linux install
    Исполняемый файл обычно устанавливается в /usr/local/bin/3proxy.

Базовая конфигурация 3proxy

Конфигурация 3proxy выполняется через файл 3proxy.cfg. Создайте его, например, в /etc/3proxy/3proxy.cfg.

HTTP и SOCKS5 прокси

Пример файла 3proxy.cfg для HTTP и SOCKS5 прокси на разных портах:

# Пользователь и пароль (username:password)
# Замените 'user:pass' на свои данные
auth strong
users user:pass

# Разрешить доступ только аутентифицированным пользователям
allow user

# HTTP прокси на порту 8080
proxy -p8080

# SOCKS5 прокси на порту 1080
socks -p1080

# Логирование
log /var/log/3proxy/3proxy.log
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %I:%i %h %D"
rotate 30

Создание каталога для логов

sudo mkdir -p /var/log/3proxy
sudo chown -R nobody:nogroup /var/log/3proxy # Или пользователь, от имени которого будет работать 3proxy

Запуск 3proxy

Для запуска 3proxy можно использовать systemd-сервис. Создайте файл /etc/systemd/system/3proxy.service:

[Unit]
Description=3proxy Proxy Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Затем запустите и включите сервис:

sudo systemctl daemon-reload
sudo systemctl start 3proxy
sudo systemctl enable 3proxy
sudo systemctl status 3proxy

Таблица сравнения 3proxy

Характеристика Описание
Тип прокси HTTP, HTTPS (CONNECT), SOCKS v4/v5, FTP, POP3, SMTP, TCP/UDP portmapper
Кэширование Нет
Аутентификация Basic (пользователи/пароли в конфиге), IP-адреса
ACL Простые правила allow/deny по пользователю, IP, порту
Прозрачный прокси Нет (или сложно реализуется)
Сложность Низкая, простой конфигурационный файл
Ресурсы Очень низкое потребление CPU и RAM
Применение Персональные прокси, обход блокировок, небольшие сети, SOCKS-прокси

Dante SOCKS Proxy

Dante — это высокопроизводительный SOCKS-сервер, поддерживающий SOCKS v4, SOCKS v5 и UDP-ассоциации. Он ориентирован на надежность и безопасность, часто используется для создания шлюзов доступа к сети.

Установка Dante на Ubuntu/Debian

sudo apt update
sudo apt install dante-server -y

Базовая конфигурация Dante

Основной файл конфигурации Dante — /etc/danted.conf.

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

# Внутренние интерфейсы, на которых Dante будет слушать запросы
internal: 0.0.0.0 port=1080

# Внешние интерфейсы, через которые Dante будет отправлять запросы
external: eth0 # Замените eth0 на имя вашего внешнего сетевого интерфейса (например, ens3, enp0s3 и т.д.)

# Метод аутентификации
socksmethod: username none

# Правила для клиентов
clientmethod: none
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

# Правила для SOCKS-запросов
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username
    log: error connect disconnect
}

Создание пользователя для аутентификации

Dante использует системных пользователей для аутентификации.

  1. Создайте нового пользователя без домашней директории и без возможности входа в систему:
    bash sudo adduser --no-create-home --shell /usr/sbin/nologin proxyuser # Введите пароль для proxyuser
  2. Убедитесь, что пользователь proxyuser не может войти в систему:
    bash sudo passwd -l proxyuser
    Пароль будет использоваться для аутентификации через прокси.

Перезапуск Dante

После изменений в danted.conf перезапустите сервис:

sudo systemctl restart danted
sudo systemctl enable danted
sudo systemctl status danted

Таблица сравнения Dante

Характеристика Описание
Тип прокси SOCKS v4, SOCKS v5, UDP-ассоциации
Кэширование Нет
Аутентификация Пользователи ОС, PAM, ident
ACL Гибкие правила client pass/socks pass по IP, порту, пользователю
Прозрачный прокси Нет
Сложность Средняя, требует настройки системных пользователей и понимания правил
Ресурсы Низкое, стабильное потребление
Применение SOCKS-шлюзы, туннелирование, обход фаерволов, анонимизация трафика

Сравнение Squid, 3proxy и Dante

Характеристика Squid 3proxy Dante
Основное назначение HTTP/HTTPS кэширующий прокси Универсальный, легкий прокси SOCKS5 прокси
Поддерживаемые протоколы HTTP, HTTPS, FTP (в основном) HTTP, SOCKS (v4/v5), FTP, POP3, SMTP SOCKS (v4/v5), UDP-ассоциации
Кэширование Да Нет Нет
Аутентификация Basic, Digest, NTLM, Kerberos Пользователи/пароли в конфиге, IP Системные пользователи, PAM
ACL Гибкие, на основе IP, доменов, пользователей Простые правила allow/deny Гибкие client pass/socks pass
Прозрачный прокси Да Нет Нет
Сложность настройки Средняя Низкая Средняя
Потребление ресурсов Высокое (при кэшировании) Очень низкое Низкое
Типичные сценарии Корпоративные сети, ускорение веба, фильтрация Персональные прокси, SOCKS-серверы, обход блокировок Безопасные SOCKS-шлюзы, туннелирование

Общие рекомендации по безопасности и оптимизации

Настройка фаервола

Используйте фаервол (например, ufw или firewalld) для ограничения доступа к портам прокси-сервера. Разрешайте подключение только с доверенных IP-адресов или из определенных сетей.

Пример для UFW (Squid на 3128, 3proxy на 8080/1080, Dante на 1080):

sudo ufw allow 3128/tcp # Для Squid
sudo ufw allow 8080/tcp # Для 3proxy HTTP
sudo ufw allow 1080/tcp # Для 3proxy SOCKS и Dante
sudo ufw enable

Использование HTTPS

Для HTTP-прокси, если трафик не шифруется между клиентом и прокси, он может быть перехвачен. Для HTTPS-трафика прокси работает в режиме CONNECT, просто туннелируя зашифрованный трафик. Для полного контроля над HTTPS трафиком через прокси требуется SSL/TLS инспекция, что является более сложной настройкой и часто требует установки корневого сертификата на клиентах.

Аутентификация

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

Мониторинг

Настройте мониторинг логов прокси-сервера (/var/log/squid/access.log, /var/log/3proxy/3proxy.log, /var/log/syslog для Dante) для выявления подозрительной активности или проблем.

Обновление ПО

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

Обновлено: 04.03.2026
Назад к категории

Попробуйте наши прокси

20,000+ прокси в 100+ странах мира