Shadowsocks
Цель
Описать Shadowsocks как легкий proxy-протокол и показать, какие параметры важны для безопасности и совместимости.
Теория
Shadowsocks используется для проксирования TCP и UDP-трафика. В Xray он поддерживается как inbound/outbound-протокол и может быть совместим с разными реализациями Shadowsocks.
Ключевой момент: безопасность зависит от выбранного метода шифрования, паролей, версии формата и запрета небезопасных режимов в публичных сетях.
История
Shadowsocks стал популярным как относительно простой и быстрый proxy-подход. Со временем появились новые форматы и AEAD-методы, а также более строгие требования к replay protection и безопасности UDP.
Архитектура
Типовая цепочка:
1. Клиент использует Shadowsocks-профиль. 2. Сервер принимает TCP, UDP или оба типа трафика. 3. Метод шифрования и пароль должны совпадать. 4. Xray передает трафик в routing. 5. Далее выбирается outbound.
Настройка
Для главы нужно отдельно показывать:
network: TCP, UDP или оба;method: выбранный метод шифрования;password: секрет;users: отдельные пользователи, если используется многопользовательская
схема;
- диагностику TCP и UDP отдельно.
Разбор параметров
network— какие типы трафика слушает сервер: TCP, UDP или оба.method— метод шифрования.password— секрет для подключения.level— уровень пользователя для policy.email— метка пользователя.users— список пользователей с индивидуальными параметрами.
Типовые ошибки
- использовать слабый пароль;
- включать небезопасный режим без шифрования в публичной сети;
- забывать UDP при сценариях, где он нужен;
- диагностировать TCP и UDP как одну и ту же проблему;
- не проверять совместимость метода шифрования на клиенте.
Безопасность
Нельзя использовать plain/none-режим в публичных сетях. Для production нужны современные методы, уникальные секреты, контроль доступа к конфигурации и отдельная проверка UDP, если он включен.
Чек-лист
- Сверена актуальная документация Xray.
- Выбран безопасный метод шифрования.
- Пароли уникальны.
- Проверены TCP и UDP.
- Проверена совместимость клиента.
- Plain/none не используется в публичной сети.
Источники для сверки
- Project X: Shadowsocks inbound configuration — https://xtls.github.io/en/config/inbounds/shadowsocks.html