Мне нужно перенаправить с одного 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 для этого прокси.