LINUX.ORG.RU

Сообщения lokha

 

Как сохранять ip клиента, используя DNAT и SNAT в iptables?

Форум — Admin

Добрый день.

У меня есть два хоста и клиент.

Я хочу сделать так, чтобы при подключении на хост1, он (хост1) перенаправлял соединение на хост2. Ответ от хост2 должен отправляться на хост1, а хост1 уже отправлял ответ клиенту.

Схематично это выглядит так:
клиент->хост1->хост2
хост2->хост1->клиент

У меня получилось этого добиться такими правилами на хост1:

iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination хост2:3000
iptables -t nat -A POSTROUTING -p tcp -d хост2 --dport 3000 -j SNAT --to-source хост1

Но есть одна проблема: Когда соединение устанавливается, приложение на хост2 думает, что айпи клиента - это хост1. А я хочу, чтобы айпи клиента сохранялось на хост2. Но при этом, чтобы хост2 отвечал не напрямую клиенту, а через хост1.

Совет поднять прокси сервер вместо использования DNAT мне не подходит, потому что я все это делаю для защиты от DDOS уровня L4-L7. Я хочу все сомнительные соединения напрявлять на хост2, который мне не так важен. Но если использовать прокси сервер, то это не имеет смысла, т.к. пакеты попадут на сокет прокси на хост1. А я как раз хочу избежать попадание пакетов на сокет на хост1.

Буду рад любым ответам. Я понимаю, что я могу вообще сейчас делать фигню, по этому прошу не оскорблять, а указать на ошибку.

 , , , ,

lokha
()

RSS подписка на новые темы