iptables + внешний proxy

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
kof
Сообщения: 15
ОС: Debian

iptables + внешний proxy

Сообщение kof »

Доброго времени.

Мучаюсь с попытками связать шлюз локальной сети с прокси-сервером за пределами локальной сети при помощи iptables.

Отправляю все пакеты приходящие на 80 порт с локальной машины на внешний IP командой:

Код:

iptables -t mangle -A PREROUTING -s 192.168.222.7 -p tcp --dport 80 -j TPROXY --on-ip 123.123.123.123 --on-port 777


На 123.123.123.123 ищу данные пакеты, но все глухо...

Код:

iptables -t mangle -A PREROUTING -p tcp --sport 777 -j LOG --log-prefix "KUKU: "


Собственно вопрос: возможна ли в принципе такая конструкция, когда прокси находится за пределами локальной сети и можно ли на него перебрасывать пакеты таким образом?
Может на прокси какую-либо директиву изменить надо чтобы пакеты доходили хотябы до 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
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

Форвардинг включён?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: iptables + внешний proxy

Сообщение nerve »

боюсь ошибиться, но прокси сервер надо указывать на клиенте, чтоб прокси-сервер знал кому отвечать.
в вашей схеме клиент ничего о прокси не знает, но вы тем не менее на роутере шлете ему пакеты, а отвечать он кому будет? iptables-у?
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
19.09.2016 17:07
Форвардинг включён?


Включен. Извините, забыл сразу упомянуть...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

Что-то я туплю... Посмотрел более внимательно, и не понял, как в принципе должна работать такая конструкция? TPROXY пересылает пакет на локальный сокет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

nerve писал(а):
19.09.2016 17:20
боюсь ошибиться, но прокси сервер надо указывать на клиенте, чтоб прокси-сервер знал кому отвечать.
в вашей схеме клиент ничего о прокси не знает, но вы тем не менее на роутере шлете ему пакеты, а отвечать он кому будет? iptables-у?


К сожалению ошибаетесь. Как возвращать пакеты - задача шлюза и прокси-сервера, а не клиента. Мне бы для начала получить пакеты отправленные с клиента на прокси-сервере, а как их цепочку возвращать (SNAT, маскарадинг) - разберусь потом. Сейчас бы хоть в одну сторону запустить чтобы точно уходило.
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
19.09.2016 17:40
Что-то я туплю... Посмотрел более внимательно, и не понял, как в принципе должна работать такая конструкция? 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.)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

Именно отсюда и взял.
kof писал(а):
19.09.2016 17:56
It redirects the packet to a local socket
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
19.09.2016 18:03
Именно отсюда и взял.
kof писал(а):
19.09.2016 17:56
It redirects the packet to a local socket



Неужели только локально?.. Недосмотрел, виноват.
Но что же делать? Можно ли как-то связать прокси в интернете с шлюзом в моей локальной сети?..
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

DNAT?
Речь вообще о HTTP-прокси?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
19.09.2016 20:29
DNAT?
Речь вообще о HTTP-прокси?


Я так понимаю если DNAT то адрес прокси-сервера станет конечным пунктом...

Вообще задача такая: нужно от пользователей локальной сети скрыть настоящий внешний IP-адрес. Как идея - использовать промежуточный прозрачный прокси-сервер для этого.
По факту нужно для HTTP, IMAP (на 993 порту) и SMTP (на 465 порту).

Есть мысли как можно решить такую задачку?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

kof писал(а):
19.09.2016 21:05
если DNAT то адрес прокси-сервера станет конечным пунктом...

Если речь о HTTP-прокси, то это нормально.

kof писал(а):
19.09.2016 21:05
Вообще задача такая: нужно от пользователей локальной сети скрыть настоящий внешний IP-адрес.

А зачем для этого внешний прокси? NAT на шлюзе недостаточно?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
19.09.2016 22:43
kof писал(а):
19.09.2016 21:05
если DNAT то адрес прокси-сервера станет конечным пунктом...

Если речь о HTTP-прокси, то это нормально.


Как же нормально, если в адресе получателя пакета указан IP прокси-сервера. Как же этот сервер разберет куда дальше пакет отправлять?

Bizdelnick писал(а):
19.09.2016 22:43
kof писал(а):
19.09.2016 21:05
Вообще задача такая: нужно от пользователей локальной сети скрыть настоящий внешний IP-адрес.

А зачем для этого внешний прокси? NAT на шлюзе недостаточно?


Ну так надо же скрыть внешний IP / читай - подменить на любой другой.
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: iptables + внешний proxy

Сообщение nerve »

kof писал(а):
20.09.2016 09:34
надо скрыть внешний IP / читай - подменить на любой другой.

прозрачный прокси на шлюзе, который использует другой прокси где-то там в интернетах.
то есть фаерволом заворачиваем нужные порты на локалхост, где их принимает сквид, который настроен на другой, родительский сквид где-то там.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

kof писал(а):
20.09.2016 09:34
Как же нормально, если в адресе получателя пакета указан IP прокси-сервера. Как же этот сервер разберет куда дальше пакет отправлять?

По HTTP-запросу.

kof писал(а):
20.09.2016 09:34
Ну так надо же скрыть внешний IP / читай - подменить на любой другой.

Ну вот подмените на адрес шлюза, а на шлюзе DNAT'ом пересылайте куда надо.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

nerve писал(а):
20.09.2016 11:36
kof писал(а):
20.09.2016 09:34
надо скрыть внешний IP / читай - подменить на любой другой.

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


Годно, но хочется без squid. Возможно ли это?

Bizdelnick писал(а):
20.09.2016 12:16
kof писал(а):
20.09.2016 09:34
Ну так надо же скрыть внешний IP / читай - подменить на любой другой.

Ну вот подмените на адрес шлюза, а на шлюзе DNAT'ом пересылайте куда надо.


ШТА? ну вот допустим зайдет человек в браузере на сайт май айпи точка ру и что, думаете не увидит реальный /внешний IP?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables + внешний proxy

Сообщение Bizdelnick »

А, прошу прощения, не так понял задачу.
Тогда Вам нужен туннель (GRE например) до удалённого сервера, который будет прописан как шлюз по умолчанию на Вашем шлюзе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kof
Сообщения: 15
ОС: Debian

Re: iptables + внешний proxy

Сообщение kof »

Bizdelnick писал(а):
20.09.2016 13:20
А, прошу прощения, не так понял задачу.
Тогда Вам нужен туннель (GRE например) до удалённого сервера, который будет прописан как шлюз по умолчанию на Вашем шлюзе.


Вот это наверное оптимальный вариант, благодарю.
Спасибо сказали: