Назад | Перейти на главную страницу

IPTABLES - как перенаправить с одного IP на URL

Мне нужно перенаправить с одного IP-адреса на URL-адрес (поскольку целевой сервер использует диапазон IP-адресов для обмена между ними) с помощью iptables.

Это возможно?

Если это так, я подумывал об использовании этого:

iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to sftp.cl.cloud.mypega.com:22
iptables -A FORWARD -d sftp.cl.cloud.mypega.com -p tcp --dport 22 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth69 -j MASQUERADE

Это верно?

Нет, не пойдет. Хотя вы можете указать имена хостов в iptables, они не будут разрешены динамически. Согласно странице руководства:

Имена хостов будут разрешены только один раз, прежде чем правило будет отправлено ядру.

Таким образом, правило пересылает пакеты на IP-адрес, который был разрешен при отправке правила.

Настоящий вопрос в том, как разрешить трафик sftp с моего хоста?

iptables -A OUTPUT -o eth0 -p tcp --dport 22 -j ACCEPT

Да, это то же самое, что и SSH. Если вы хотите ограничить его только определенными хостами в вашей сети, вы соответствующим образом измените его. Я взял это отсюда: IPTables: разрешить исходящий SSH. Это также рекомендует два правила с отслеживанием состояния, чтобы разрешить продолжение связи после установления соединения:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

DMZ назначения, полное доменное имя, схема IP-адресов и ротация IP-адресов не имеют значения. Пока предоставленное вам полное доменное имя является действительным и зарегистрированным, DNS позволит TCP / IP получать пакеты туда, куда им нужно.

Если упомянутый вами DMZ-сервер является ВАШЕЙ DMZ-зоной, и сервер действует как ваш брандмауэр, вам необходимо принимать пакеты от исходного сервера и пересылать их на интерфейс, на котором размещен общедоступный IP-адрес. Вам также необходимо открыть входящий трафик, порт 22, адрес назначения вашего внутреннего сервера. ПРИНИМАЙТЕ это и отправляйте во внутреннюю сеть.

Обратите внимание, что для всего этого вам не нужно знать полное доменное имя назначения. Если бы у них был хороший статический IP-адрес, вы могли бы заблокировать правила, чтобы разрешить только sftp (и SSH) на / с этих сайтов.

Это не будет работать с голым iptables. Вам нужно будет настроить прокси (т.е. haproxy, apache httpd, nginx), который выполняет обратное проксирование в нужное место назначения и вместо этого выполняет DNAT для этого прокси.