Собственно вопрос: возможна ли в принципе такая конструкция, когда прокси находится за пределами локальной сети и можно ли на него перебрасывать пакеты таким образом?
Может на прокси какую-либо директиву изменить надо чтобы пакеты доходили хотябы до mangle если в получателе указан другой IP?
ШЛЮЗ# uname -a
Linux 4.2.6-1-xxx #x86_64 GNU/Linux
iptables v1.4.21
PROXY# uname -a
Linux 3.14.32-xxxx-grs-ipv6-64 #x86_64 GNU/Linux
iptables v1.4.21
На обоих устройствах включено:
echo 1 > /proc/sys/net/ipv4/ip_forward
боюсь ошибиться, но прокси сервер надо указывать на клиенте, чтоб прокси-сервер знал кому отвечать.
в вашей схеме клиент ничего о прокси не знает, но вы тем не менее на роутере шлете ему пакеты, а отвечать он кому будет? iptables-у?
Что-то я туплю... Посмотрел более внимательно, и не понял, как в принципе должна работать такая конструкция? TPROXY пересылает пакет на локальный сокет.
боюсь ошибиться, но прокси сервер надо указывать на клиенте, чтоб прокси-сервер знал кому отвечать.
в вашей схеме клиент ничего о прокси не знает, но вы тем не менее на роутере шлете ему пакеты, а отвечать он кому будет? iptables-у?
К сожалению ошибаетесь. Как возвращать пакеты - задача шлюза и прокси-сервера, а не клиента. Мне бы для начала получить пакеты отправленные с клиента на прокси-сервере, а как их цепочку возвращать (SNAT, маскарадинг) - разберусь потом. Сейчас бы хоть в одну сторону запустить чтобы точно уходило.
Что-то я туплю... Посмотрел более внимательно, и не понял, как в принципе должна работать такая конструкция? TPROXY пересылает пакет на локальный сокет.
Что значит на локальный? Из каких манов вы это взяли?
Вот ман из iptables v1.4.21
Spoiler
TPROXY
This target is only valid in the mangle table, in the PREROUTING chain and user-defined chains which are only called from this chain. It redirects the packet to a local socket without changing the packet header in any way.
It can also change the mark value which can then be used in advanced routing rules. It takes three options:
--on-port port
This specifies a destination port to use. It is a required option, 0 means the new destination port is the same as the original. This is only valid if the rule also specifies -p tcp or -p udp.
--on-ip address
This specifies a destination address to use. By default the address is the IP address of the incoming interface. This is only valid if the rule also specifies -p tcp or -p udp.
--tproxy-mark value[mask]
Marks packets with the given value/mask. The fwmark value set here can be used by advanced routing. (Required for transparent proxying to work: otherwise these packets will get forwarded, which is probably not what
you want.)
Я так понимаю если DNAT то адрес прокси-сервера станет конечным пунктом...
Вообще задача такая: нужно от пользователей локальной сети скрыть настоящий внешний IP-адрес. Как идея - использовать промежуточный прозрачный прокси-сервер для этого.
По факту нужно для HTTP, IMAP (на 993 порту) и SMTP (на 465 порту).
надо скрыть внешний IP / читай - подменить на любой другой.
прозрачный прокси на шлюзе, который использует другой прокси где-то там в интернетах.
то есть фаерволом заворачиваем нужные порты на локалхост, где их принимает сквид, который настроен на другой, родительский сквид где-то там.
надо скрыть внешний IP / читай - подменить на любой другой.
прозрачный прокси на шлюзе, который использует другой прокси где-то там в интернетах.
то есть фаерволом заворачиваем нужные порты на локалхост, где их принимает сквид, который настроен на другой, родительский сквид где-то там.
А, прошу прощения, не так понял задачу.
Тогда Вам нужен туннель (GRE например) до удалённого сервера, который будет прописан как шлюз по умолчанию на Вашем шлюзе.
А, прошу прощения, не так понял задачу.
Тогда Вам нужен туннель (GRE например) до удалённого сервера, который будет прописан как шлюз по умолчанию на Вашем шлюзе.