Статья Создание своего VPN с помощью Shadowsocks и обфускация трафика - часть 2

147768_O.jpg

Начало тут: Создание своего VPN с помощью Shadowsocks и обфускация трафика

Введение
В данной статье будет рассмотрен плагин v2ray, пришедший на замену simple-obfs (который уже устарел), и то, как создать подобие сети Tor с входными и выходными нодами.

Вы спросите: "Ну, насчёт первого понятно, а зачем второе?"

Я отвечу - так вас будет сложнее отследить: весь трафик, который будет приходить на входную ноду, будет пересылаться на выходную ноду, а уж там выпускаться во Всемирную сеть. Благодаря этому тот, кто попытается вас найти (например, "хацкер", которого вы оскорбили), следя, кто писал с этого IP, и кто в это же время к нему подключался, останутся ни с чем.

Ну что, приступим!

Начнём с настройки сервера с плагином v2ray.

v2ray
Настройка сервера

Ну, начнём с очевидного - вам нужен сервер. Как его выбрать - смотрите в первой статье. ОС, которая использовалась на сервере для написания данной статьи - Ubuntu 18.04 64x.

Сначала обновимся:
Код:
sudo apt update && sudo apt upgrade
Затем установим сам shadowsocks:
Код:
sudo apt install shadowsocks-libev
Затем идём на данную страницу, копируем ссылку на последний релиз для нашего сервера и скачиваем его командой wget:
Код:
wget https://github.com/shadowsocks/v2ray-plugin/releases
Распаковываем скачанный архив (название может отличатся):
Код:
sudo tar -xf v2ray-plugin-linux-amd64-v1.3.0.tar.gz
Переносим плагин в удобное место и переименовываем его:
Код:
sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
Теперь разрешим плагину и Shadowsocks использовать привилегированные порты:
Код:
sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
sudo setcap 'cap_net_bind_service=+eip' /usr/bin/ss-server
Создаём файл конфигурации, с которым будет работать Shadowsocks, в nano :
Код:
sudo nano /etc/shadowsocks-libev/v2ray.json
и вставляем следующее:
JSON:
{
    "server":"0.0.0.0",
    "server_port":443,
    "password":"ваш пароль",
    "local_port":1080,
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "fast_open":true,
    "reuse_port":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server",
    "nameserver":"ваш DNS сервер"
}
В поля password и nameserver вставляем ваши пароль и адрес DNS сервера соответственно. Также вы можете изменить метод шифрования, если вас не устраивает этот. Сохраняемся (Ctrl-O, Enter) и выходим (Ctrl-X)

Теперь создадим сервис ss-v2ray.service:
Код:
sudo nano /etc/systemd/system/ss-v2ray.service
И вставим в него следующее:
Код:
[Unit]
Description=Shadowsocks-libev with V2RAY-websocket obfuscation
Documentation=man:shadowsocks-libev(8)
After=network.target

[Service]
Type=simple
User=nobody
Group=nogroup
LimitNOFILE=51200
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/v2ray.json

[Install]
WantedBy=multi-user.target
Сохраняемся и выходим.

Затем включаем и рестартуем сервис:
Код:
sudo systemctl enable ss-v2ray.service && sudo systemctl restart ss-v2ray.service
Настройка сервера завершена!

Настройка клиента
Настройка ничем не отличается от описанной в первой статье, но есть пара нюансов:
  • В Windows вам нужно скачать версию под вашу архитектуру, и переименовать её в v2ray.exe, а в настойках Shadowsocks, в Опциях плагина указать параметр host=example.com, где example.com - тот сайт, куда "идёт" трафик​
  • В Linux - скачиваем плагин, перемещаем туда же, куда перемещали и на сервере. Затем в config.json указываем всё то же, что указывали в v2ray.json, меняя 0.0.0.0 в строке "server" на адрес сервера, и "server" на "host=example.com" в строке "plugin_opts"​
  • На Android - просто скачиваем v2ray plugin в Google Play и указываем в настройках плагина, в опции host, любой сайт​
Настройка клиента завершена!

Теперь перейдём к созданию подобия сети Tor

ShadowTor
(да, я решил это так назвать, и не спрашивайте зачем)
ВНИМАНИЕ! Здесь требуется уже 2 сервера

Настройка выходной ноды
Выходная нода настраивается точно также, как и просто сервер с Shadowsocks (советую поставить на него v2ray или simple-obfs)

Настройка входной ноды
На неё мы ставим Shadowsocks, и настраиваем как клиент, чтобы он подключался к нашей выходной ноде

Затем ставим HAProxy:
Код:
sudo apt install haproxy
Потом нам нужно отредактировать файл настроек HAProxy:
Код:
nano /etc/haproxy/haproxy.cfg
В котором заменим строку в секции default:
Код:
mode     http
на
Код:
mode    tcp
Затем, в самый конец файла, мы вставим следующее:
Код:
frontend ss-in
        bind *:80
        default_backend ss-out
backend ss-out
        server server1 127.0.0.1:1080
И всё!

Перейдём к настройке клиента
Настройка клиента
Здесь нет ничего сложного - просто настраиваем использование интернета программами через SOCKS5 прокси, который теперь находится по адресу ip_входной_ноды:80

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

Ну вот и все! Если вы увидели ошибки - пишите в комментарии!
 
Подскажите
Для тех, кому лень всё это проворачивать, был написан bash-скрипт
Найти его можно здесь
Он автоматически настраивает сервер с v2ray плагином, нужно лишь ввести пароль, порт, метод шифрования и DNS сервер
,Как этим скриптом правильно пользоваться, не получается запустить, напишите пожалуйста команды какие надо вводить. Большое спасибо.
 
Здравствуйте, напишите пожалуйста опции плагина v2ray на сервере и на клиенте windows. Всё сделал по гайду, но при работе с v2ray трафик не уходит
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD