Как перенаправить исходящий трафик на порт 80 с помощью iptables локально?

Я пытаюсь локально перенаправить порты на свою машину Ubuntu, используя iptables. Аналогично прозрачному прокси. Я хочу поймать все, что пытается покинуть мою систему на порту 80 и перенаправить ее на удаленный хост и порт.

Могу ли я достичь этого, используя функции NAT и pre-routing из iptables?

16 голосов | спросил pjf 8 AM00000090000002531 2013, 09:54:25

3 ответа


24

Попробуйте это правило iptables:

$ sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination IP:80

Выше сказано:

  • Добавьте в таблицу NAT следующее правило (-t nat).
  • Это правило будет добавлено (-A) к исходящему трафику (OUTPUT).
  • Нам интересен только трафик TCP (-p tcp).
  • Нам интересен только трафик, для которого порт назначения - 80 (--dport 80).
  • Когда у нас есть соответствие, перейдите к DNAT (-j DNAT).
  • Перенести этот трафик на IP-порт другого другого сервера 80 (--to-destination IP:80).

Что такое DNAT?

DNAT
    This target is only valid in the nat table, in the PREROUTING and OUTPUT 
    chains, and user-defined chains which are only called from those chains.
    It specifies that the destination address of the packet should be modified 
    (and all future packets in  this  connection will also be mangled), and
     rules should cease being examined.

Ссылки

ответил slm 8 AM000000100000001231 2013, 10:08:12
4

Это позволяет вам переводить порты на все IP-адреса. Основное отличие здесь - отсутствие IP-адреса в поле --to-destination.

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination :80
ответил Felipe Alvarez 28 Mayam14 2014, 05:25:27
3

Это может быть более конкретным для работы только с трафиком на конкретном хост-сервере назначения. Например, когда postfix совершил ошибку, а почта в очереди хочет быть отправлена ​​на старый IP-адрес.

iptables -t nat -A OUTPUT -p tcp -d {ONLY_TO_THIS_DESTINATION} --dport 25 -j DNAT --to-destination {NEW_IP}:25
ответил Widmo 23 Jpm1000000pmTue, 23 Jan 2018 16:03:50 +030018 2018, 16:03:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132