Welcome! Log In Create A New Profile

Advanced

Re: Проброс https на порт, отличный от 443

October 30, 2017 08:36PM
Добрый день

Вообще-то все описано https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy

У меня для Linux нарисована такая инструкция, может есть какие-то неточности:

-- NGINX должен осуществлять привязку к локальному сокету любого адреса (внешнего адреса клиента), поэтому он должен работать с правами root (что есть весьма несекурно, тем более что он торчит наружу):

user root
...
server {
...
proxy_bind $remote_addr transparent;
...
}

-- Маршрутизировать все требуемые пакеты внутри себя (не выпускать наружу). Правила сохранены в /etc/sysconfig/iptables, маршрутизация в route-eth0, rule-eth0 каталога /etc/sysconfig/network-scripts. (Чтоб правила подхватились в CentOS 7 надо запретить NetworkManager.service, Firewall.service и разрешить network.service, iptables.service, либо научиться настраивать Firewall.service):

iptables -t mangle -N DIVERT # Новая цепочка
iptables -t mangle -A DIVERT -j MARK --set-mark 0x1/0xffffffff # Просто маркируем пакет
iptables -t mangle -A DIVERT -j ACCEPT # И пропускаем

iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT # Все пакеты для уже открытых сокетов отправляются в DIVERT, где просто помечаются
iptables -t mangle -A PREROUTING -p tcp -m multiport --sport 443,10443,8080,8081 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 0
# Все ответы от серверов помечаем и пробрасываем на localhost:0

ip rule add fwmark 1 lookup 100 # Все маркированные пакеты обрабатываем таблицей маршрутизации 100

ip route add local 0.0.0.0/0 dev lo table 100 # Где просто обрабатываем их локально
ip route flush cache

-- На проксируемых (upstream) серверах возвращать ответы на NGINX, независимо от адреса назначения (Default route to NGINX). Для этого можно поднять фиктивный интерфейс, куда и ходит именно NGINX в той же подсети. HTTP-сервер должен слушать этот адрес. Это прописывается в файлах ifcfg-eth0:0, route-eth0:0, rule-eth0:0 каталога /etc/sysconfig/network-scripts:

ip addr add IP_адрес_интерфейса/27 brd broadcast_интерфейса dev eth0 label eth0:0 # Адрес куда ходит NGINX
ip rule from IP_адрес_интерфейса table 100 # Все пакеты с этого адреса обрабатываются таблицей маршрутизации 100
ip route IP_адрес_интерфейса dev eth0 proto kernel scope link src IP_адрес_интерфейса table 100 # Где прописан сам этот адрес
ip route default via IP_адрес_сервера_NGINX dev eth0 table 100 # И дефолтовый маршрут на NGINX
ip route flush cache
Subject Author Posted

Проброс https на порт, отличный от 443

oradba25 September 04, 2017 03:23AM

Re: Проброс https на порт, отличный от 443

Alex Vorona September 04, 2017 03:34AM

Re: Проброс https на порт, отличный от 443

Vasiliy P. Melnik September 04, 2017 03:34AM

Re: Проброс https на порт, отличный от 443

Vasiliy P. Melnik September 04, 2017 03:36AM

Re: Проброс https на порт, отличный от 443

oradba25 September 04, 2017 05:17AM

Re: Проброс https на порт, отличный от 443

mrhate October 30, 2017 12:58PM

Re: Проброс https на порт, отличный от 443

oradba25 October 30, 2017 08:36PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 257
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready