Перейти до вмісту
Гайды 6 хв читання 33 переглядів

Данте

Детальний посібник з налаштування проксі-сервера Dante SOCKS5 на Linux. Охоплює встановлення, конфігура

SOCKS5
Данте

Налаштування проксі-сервера SOCKS5 на Linux за допомогою Dante передбачає встановлення пакета dante-server, конфігурацію /etc/danted.conf для визначення мережевих інтерфейсів, методів автентифікації та правил доступу, а потім запуск служби danted. Dante функціонує як SOCKS-сервер, маршрутизуючи мережевий трафік між клієнтами та цільовими призначеннями, підвищуючи безпеку мережі та дозволяючи доступ до обмежених ресурсів.

Передумови

Перед продовженням переконайтеся, що:

  • Сервер Linux (наприклад, Debian, Ubuntu, CentOS, RHEL, Fedora) з правами root або sudo.
  • Базове розуміння інтерфейсу командного рядка Linux та мережевих концепцій.
  • Доступний мережевий інтерфейс для проксі-сервера, на якому він буде прослуховувати (внутрішній), та інтерфейс для вихідних з'єднань (зовнішній). Вони можуть бути однаковими.

Встановлення

Встановіть пакет Dante server, специфічний для вашого дистрибутива Linux.

Debian/Ubuntu

sudo apt update
sudo apt install dante-server

RHEL/CentOS/Fedora

sudo dnf install dante-server # Для Fedora/RHEL 8+
# Або для старих CentOS/RHEL 7:
sudo yum install dante-server

Конфігурація

Основний файл конфігурації для Dante – /etc/danted.conf. Файл за замовчуванням може містити приклади конфігурацій; часто найкраще створити резервну копію оригіналу та почати з мінімальної, чистої конфігурації.

sudo mv /etc/danted.conf /etc/danted.conf.bak
sudo nano /etc/danted.conf

Базова структура конфігурації

Мінімальний danted.conf визначає інтерфейс прослуховування (internal), вихідний інтерфейс (external) та базові правила доступу.

logoutput: /var/log/danted.log
internal: 0.0.0.0 port=1080
external: eth0 # Замініть eth0 на зовнішній мережевий інтерфейс вашого сервера

socksmethod: none
user.privileged: root
user.notprivileged: nobody

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

Пояснення директив:

  • logoutput: Вказує шлях до файлу журналу.
  • internal: Визначає мережевий інтерфейс та порт, на якому Dante прослуховує вхідні клієнтські з'єднання.
    • 0.0.0.0 прив'язується до всіх доступних мережевих інтерфейсів.
    • port=1080 – це стандартний порт SOCKS.
    • Ви можете вказати конкретну IP-адресу (наприклад, internal: 192.168.1.10 port=1080).
  • external: Визначає мережевий інтерфейс, який Dante використовує для вихідних з'єднань до цільових призначень. Замініть eth0 на фактичний публічний або вихідний інтерфейс вашого сервера (наприклад, ens3, enp0s3).
  • socksmethod: Вказує методи автентифікації, які можуть використовувати SOCKS-клієнти. none означає відсутність автентифікації.
  • user.privileged: Користувач, від імені якого Dante виконує привілейовані операції (наприклад, прив'язку до низьких портів).
  • user.notprivileged: Користувач, на якого Dante переключається для непривілейованих операцій після ініціалізації.
  • client pass правила: Контролюють, яким клієнтам дозволено підключатися до сервера Dante.
    • from: 0.0.0.0/0 дозволяє з'єднання з будь-якої IP-адреси. Обмежте це для безпеки.
    • to: 0.0.0.0/0 вказує призначення для клієнтських з'єднань (у цьому контексті завжди сам проксі).
  • socks pass правила: Контролюють, до яких призначень SOCKS-клієнти можуть звертатися через проксі.
    • from: 0.0.0.0/0 стосується клієнтів, які успішно автентифікувалися або пройшли клієнтські правила.
    • to: 0.0.0.0/0 дозволяє з'єднання до будь-якого призначення. Обмежте це для безпеки.
    • log: error connect disconnect вмикає ведення журналу для подій з'єднання.

Методи автентифікації

Dante підтримує різні методи автентифікації. Найпоширенішими є none (без автентифікації) та username (ім'я користувача/пароль).

1. Без автентифікації (анонімно)

Цей метод підходить для довірених приватних мереж, де всі клієнти відомі та авторизовані використовувати проксі без явних облікових даних. Не рекомендується для публічних проксі-серверів.

# ... (решта базової конфігурації)
socksmethod: none

client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Обмежити до конкретної підмережі
    log: error connect disconnect
}

socks pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Клієнти з цієї підмережі можуть досягати будь-чого
    log: error connect disconnect
}

2. Автентифікація за іменем користувача/паролем

Це найпоширеніший і рекомендований метод для SOCKS5-проксі, особливо коли клієнти зовнішні або недовірені. Dante використовує системних користувачів для автентифікації.

Кроки:

  1. Створіть системного користувача для проксі. Не створюйте домашній каталог і не призначайте оболонку для безпеки.
    bash sudo useradd -r -s /bin/false proxyuser sudo passwd proxyuser # Введіть та підтвердіть надійний пароль
    Повторіть для додаткових користувачів, якщо потрібно.

  2. Змініть danted.conf:
    ```
    logoutput: /var/log/danted.log
    internal: 0.0.0.0 port=1080
    external: eth0

    socksmethod: username # Увімкнути автентифікацію за іменем користувача/паролем
    user.privileged: root
    user.notprivileged: nobody

    client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
    }

    socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username # Вимагати ім'я користувача/пароль для SOCKS-з'єднань
    log: error connect disconnect
    }
    `` Директиваsocksmethod: usernameу правиліsocks pass` гарантує, що лише автентифіковані користувачі можуть використовувати проксі.

3. Автентифікація на основі IP

Цей метод дозволяє певним IP-адресам або підмережам використовувати проксі без імені користувача/пароля. Його можна комбінувати з автентифікацією за username.

# ... (решта конфігурації)
socksmethod: username # Дозволити ім'я користувача/пароль як опцію

client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Дозволити конкретну підмережу без автентифікації
    log: error connect disconnect
}

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0 # Дозволити всім іншим клієнтам, але вимагати автентифікацію
    socksmethod: username
    log: error connect disconnect
}

socks pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Клієнти з цієї підмережі можуть досягати будь-чого (автентифікація не потрібна)
    log: error connect disconnect
}

socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0 # Автентифіковані клієнти можуть досягати будь-чого
    socksmethod: username
    log: error connect disconnect
}

У цій конфігурації клієнтам з 192.168.1.0/24 не потрібна автентифікація, тоді як всі інші клієнти повинні надати ім'я користувача та пароль.

Конфігурація брандмауера

Після налаштування Dante відкрийте порт SOCKS (за замовчуванням 1080) у брандмауері вашої системи, щоб дозволити вхідні з'єднання.

Firewalld (CentOS/RHEL/Fedora)

sudo firewall-cmd --permanent --add-port=1080/tcp
sudo firewall-cmd --reload

UFW (Debian/Ubuntu)

sudo ufw allow 1080/tcp
sudo ufw enable # Якщо UFW ще не увімкнено

Управління службами

Після конфігурації та налаштування брандмауера запустіть та увімкніть службу Dante.

sudo systemctl start danted
sudo systemctl enable danted
sudo systemctl status danted

Перевірте статус служби, щоб переконатися, що вона працює без помилок. Перегляньте /var/log/danted.log на наявність проблем з конфігурацією.

Тестування проксі

Використовуйте клієнтську машину для тестування проксі SOCKS5.

Використання curl (без автентифікації)

curl -x socks5://YOUR_SERVER_IP:1080 http://ifconfig.me/ip

Вивід має бути публічною IP-адресою вашого сервера, що вказує на те, що трафік маршрутизується через проксі.

Використання curl (з автентифікацією за іменем користувача/паролем)

curl -x socks5://proxyuser:your_password@YOUR_SERVER_IP:1080 http://ifconfig.me/ip

Замініть proxyuser та your_password на облікові дані, налаштовані раніше.

Використання proxychains (утиліта для клієнтів Linux)

  1. Встановіть proxychains:
    bash sudo apt install proxychains4 # Debian/Ubuntu sudo dnf install proxychains-ng # RHEL/CentOS/Fedora

  2. Налаштуйте proxychains.conf:
    Відредагуйте /etc/proxychains.conf або ~/.proxychains/proxychains.conf.
    Закоментуйте strict_chain та розкоментуйте dynamic_chain.
    В кінці файлу додайте дані вашого проксі-сервера:

    ```

    ... (інша конфігурація proxychains)

    dynamic_chain

    strict_chain

    random_chain

    round_robin_chain

    dynamic_chain # Використовувати динамічний ланцюг для гнучкості

    [ProxyList]

    додати проксі сюди ...

    socks5 127.0.0.1 9050

    socks5 YOUR_SERVER_IP 1080 proxyuser your_password # З автентифікацією

    Або, без автентифікації:

    socks5 YOUR_SERVER_IP 1080

    ```

  3. Тестування за допомогою proxychains:
    bash proxychains curl http://ifconfig.me/ip
    Вивід має показати IP-адресу вашого проксі-сервера.

Рекомендації з безпеки

  • Обмежте доступ: Використовуйте правила client pass, щоб обмежити, які IP-адреси клієнтів можуть підключатися до вашого проксі.
  • Надійні паролі: Для автентифікації за іменем користувача/паролем переконайтеся, що всі користувачі проксі мають надійні, унікальні паролі.
  • Принцип найменших привілеїв: Не надавайте зайвих привілеїв користувачеві nobody або користувачам проксі.
  • Регулярні оновлення: Підтримуйте операційну систему Linux та пакет Dante в актуальному стані, щоб виправляти вразливості безпеки.
  • Ведення журналу та моніторинг: Регулярно переглядайте журнали Dante (/var/log/danted.log) на наявність підозрілої активності. Впроваджуйте рішення для моніторингу журналів.
  • Правила брандмауера: Налаштуйте брандмауер так, щоб дозволяти з'єднання до порту SOCKS (1080) лише з довірених діапазонів IP-адрес.
  • Виділений користувач: Використовуйте виділеного системного користувача для доступу до проксі замість існуючих облікових записів користувачів.
  • Вимкніть невикористовувані методи: Вмикайте лише ті опції socksmethod, які є абсолютно необхідними.
Оновлено: 04.03.2026
Назад до категорії

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

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.