coralhl / redsocks-proxy-manager

Using redsocks with iptables and nftables to proxy all traffic or only specific hosts.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Введение

Использование redsocks с iptables и nftables для перенаправления трафика запросов.

Должено быть настроено защищённое подключение, например SOCKS5, через которое будем пропускать трафик. Используем redsocks для перенаправления трафика до цели с определённым IP-адресом через это защищённое подключение. Поскольку redsocks не предоставляет возможности настройки файрвола, был написан скрипт, который читает IP-адреса из файла конфигурации и помогает быстро произвести настройки.

В системе должна быть установлена утилита 'host'

Shell> sudo apt install dnsutils -y
or
Shell> sudo yum install bind-utils
or
...

Как использовать

В этом репозитории есть скомпилированный бинарник для стабильной версии redsocks (скомпилированы версии x86_64 и aarch64 при помощи alpine musl gilbc, чтобы не устанавливать зависимости).

  1. Установка:
Shell> sudo ./install.sh       # Установка для системы с iptables
please tell me you socks_server: 127.0.0.1 # Введите адрес прокси-сервера SOCKS5
please tell me you socks_port: 10808        # Введите порт прокси-сервера SOCKS5
or
Shell> sudo ./install.ntf.sh   # Установка для системы с nftables
  1. Запуск redsocks:
Shell> sudo service redsocks start
  1. Выбор режима работы:

Глобальный режим прокси-сервера

Shell> sudo rs-proxyall      # Включает режим глобального прокси

 your iptabls OUTPUT chain like this....
 Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

 Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination
 1        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            192.168.188.0/24
 2        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
 3        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
 4        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            redir ports 12345

 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

Частичное проксирование

В этом режиме проксируются только хосты, указанные в файле ToProxy.list.

Shell> sudo rs-proxy

this ip[216.58.194.99] will use proxy connected ....
this ip[180.97.33.107] will use proxy connected ....
your iptabls OUTPUT chain like this....
   Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination

   Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination

   Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination
   1        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            192.168.188.0/24
   2        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
   3        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
   4        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            216.58.194.99        redir ports 12345
   5        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            180.97.33.107        redir ports 12345

   Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination
  1. Выключение проксирования (удаляются правила файрвола) и остановка сервисов:
Shell> sudo service redsocks stop        # Остановка прокси-сервера redsocks
  1. Добавление и удаление IP-адресов по имени хоста, к которым нужен доступ через прокси (в файле ToProxy.list). При этом будут созданы новые правила файрвола.
Shell> sudo rs-manage-ip -a google.ru    # Добавление IP-адресов google.ru
Shell> sudo rs-manage-ip -d google.ru    # Удаление IP-адресов google.ru
  1. Принудительный перезапуск прокси (для применения новых записей из ToProxy.list) Если вам нужен перезапуск прокси, то нужно обновить и правила для файрвола. Для этого не обязательно перезапускать сервис redsocks, нужно выполнить:
Shell> sudo rs-restart                   # Применяет новые правила для файрвола
  1. Если вы хотите изменить параметры подключения к Socks серверу (адрес или порт), то запустите 'install.sh' ещё раз.

Метод статической компиляции

apk --no-cache add busybox-extras musl-dev linux-headers libevent-static libevent-dev musl-dev gcc make vim bash

About

Using redsocks with iptables and nftables to proxy all traffic or only specific hosts.


Languages

Language:Shell 100.0%