Настройка Shadowsocks

Настройка Shadowsocks

Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint

Большинство распространённых протоколов VPN, вроде OpenVPN можно заблокировать. Однако есть решение - технология Shadowsocks. Эта технология работает по принципу прокси, но с шифрованием. Она маскируется под https трафик, поэтому использование этого протокола сложно вычислить и заблокировать. В этой статье мы рассмотрим как выполняется настройка Shadowsocks Ubuntu

Прежде всего, обратите внимание, что для работы Shadowsocks, как собственно и для VPN вам понадобится сервер, в стране, где нужные вам сайты не заблокированы. Именно на этом сервере устанавливается сервер Shadowsocks. На вашем компьютере или телефоне устанавливается клиент, который подключается к этому серверу. Между вашим клиентом и сервером трафик будет зашифрован поэтому провайдер, не сможет понять какой сайт вы открываете, поэтому не заблокирует его. А уже на сервере запрос будет расшифрован и в открытом виде поступит на сайт.

Реализация shadowsocks на Си есть в официальных репозиториях Ubuntu. Вы можете установить её с помощью команды:

sudo apt install shadowsocks-libev

Конфигурационный файл shadowsocks находится по пути /etc/shadowsocks-libev/config.json и по умолчанию выглядит вот так:

{
  "server":["::1", "127.0.0.1"],
  "mode":"tcp_and_udp",
  "server_port":8388,
  "local_port":1080,
  "password":"<Password>",
  "timeout":86400,
  "method":"chacha20-ietf-poly1305"
}

Вот что означают эти сроки:

  • server - IP адрес, на котором программа будет ожидать соединений, должно соответствовать внешнему IP адресу вашего сервера.
  • mode - указывает какой протокол соединение использовать - tcp, udp или оба.
  • server_port - порт сервера, который вы будете использовать для подключения, по умолчанию - 8388.
  • local_port - порт клиента, к которому будет подключаться браузер по протоколу SOCS5.
  • password - пароль, который будет использоваться клиентами для подключения.
  • method - метод шифрования, по умолчанию используется chacha20-ietf-poly1305.

Для начала работы с shadowsocks надо установить в поле server внешний IP адрес вашего сервера. Также в поле password, надо прописать пароль, который будет использоваться на клиенте для подключения к серверу. Всё остальное можно оставить по умолчанию. Также после внесения изменений в конфигурационный файл необходимо перезапустить сервис:

sudo systemctl restart shadowsocks-libev

На этом базовая настройка закончена, можно переходить к подключению. Если вы хотите запустить сервер для отладки, чтобы видеть всё, что происходит, можете остановить systemd службу и запустить его вручную:

/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json

Для подключения вам понадобится клиент. В Linux можно использовать GUI клиент от Outline. Однако и его мы не будем рассматривать в этой статье. Мы поговорим про использование консольного клиента. Его можно получить установив тот же пакет, что и для сервера. Вы можете собрать его из исходников, как описано выше или установить из репозиториев дистрибутива:

sudo apt install shadowsocks-libev

После установки нужно отредактировать конфигурационный файл, так чтобы он был таким же как и на сервере. Например:

{
  "server": "<remote_server_ip",
  "mode":"tcp_and_udp",
  "server_port":8388,
  "local_port":1080,
  "password":"<Password_from_remote_server_config>",
  "timeout":86400,
  "method":"chacha20-ietf-poly1305"
}

После этого можно запустить клиент:

sudo ss-local -v -c /etc/shadowsocks-libev/config.json

Опция -v здесь означает максимально подробный вывод, а -c - указывает путь к конфигурационному файлу. Клиент запущен, но ваш трафик ещё не перенаправляется через тоннель. Для этого надо настроить подключение к прокси в вашем браузере. Клиент ожидает соединений от браузера на порту 1080 (по умолчанию).

Для настройки прокси в Firefox откройте Настройки. В разделе Основные пролистайте в самый низ и найдите Параметры сети, тут нажмите Настроить и в открывшемся окне введите адрес 127.0.0.1 и порт 1080. После этого Firefox будет использовать Shadowsocks для открытия сайтов. Если вы откроете сайт eth0.me, то увидите, что ваш IP адрес соответствует адресу сервера, на котором установлен Shadowsocks.

Обратите внимание, что многие провайдеры блокируют сайты по DNS, так что лучше в настройках своего роутера указать DNS Google - 8.8.8.8 или включить в браузере DNS over HTTPS.




Report Page