Skip to content

Instantly share code, notes, and snippets.

@sitnin
Last active April 19, 2018 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sitnin/b8f4e50b45acd140befbab52998e2f6f to your computer and use it in GitHub Desktop.
Save sitnin/b8f4e50b45acd140befbab52998e2f6f to your computer and use it in GitHub Desktop.

Прозрачное проксирование портов без подъёма реверс-прокси

Суть подхода в том, чтобы сделать форвардинг пакетов с портов 80 и 443 новой не заблокированной машины на старую, заблокированную.

Важное условие: новая машина должна видеть старую беспрепятственно, без всяких блокировок. Это довольно просто достигается, если новая находится в недосягаемой для РКН зоне.

Реферальная ссылка: https://m.do.co/c/8f69a3f1651f (заблокированы не все подсети DigitalOcean, поэтому можно взять по моей ссылки виртуалку за $5/месяц, при этом стартовой суммы в $10 вам хватит на 2 месяца работы)

Покупаем самую простую (дешёвую) виртуалку (они обычно по 5 баксов в месяц у всех) и ставим на неё Ubuntu 16.04 LTS. Заводим ssh-ключ или длинный хороший пароль для root'а. Далее всё, как описано ниже.

Адреса, используемые в примерах:

  • IP прокси: 139.162.163.111 (новый)
  • IP цели: 188.166.70.161 (попавший под блок)

Ставим ubuntu 16.04 LTS и в него пакет

# apt-get update && apt-get upgrade --yes
# apt-get install --yes iptables-persistent

Включаем форвардинг (один раз)

# nano /etc/sysctl.conf
# sysctl -p
net.ipv4.ip_forward = 1

Разрешаем входящие подключения на 80 и 443

# iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
# iptables -A FORWARD -i eth0 -p tcp --dport 443 -j ACCEPT

Форвардинг 80 и 443

# iptables -t nat -A PREROUTING -p tcp -d 139.162.163.111 --dport 80 -j DNAT --to-destination 188.166.70.161:80
# iptables -t nat -A POSTROUTING -p tcp -d 188.166.70.161 --dport 80 -j SNAT --to-source 139.162.163.111

# iptables -t nat -A PREROUTING -p tcp -d 139.162.163.111 --dport 443 -j DNAT --to-destination 188.166.70.161:443
# iptables -t nat -A POSTROUTING -p tcp -d 188.166.70.161 --dport 443 -j SNAT --to-source 139.162.163.111

Проверяем. Если всё хорошо, сохраняем правила на всю жизнь.

# service netfilter-persistent save
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment