Отобразите диапазон портов к другому диапазону портов (равные длины диапазонов)

В этом ответе, Как я могу открыть диапазон портов в человечности с помощью (g) ufw, дана простая команда для открытия диапазона портов.

Например, с помощью этой команды я могу открыть порты 1000-1999 очень легко для моего брандмауэра на моей локальной машине.

Теперь, тем не менее, я хотел бы установить перенаправление портов на локальной машине, так, чтобы:

  • Порт 1001 вперед для портирования 1
  • Порт 1002 вперед для портирования 2
  • Порт 1003 вперед для портирования 3
  • ... и т.д.
  • -

У кого-либо есть простой сценарий удара для того, чтобы сделать это?

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

Так машина A, порты 1000-1999 на маршрутизаторе были бы открыты для соединения с машиной A. На машине A, они были бы переданы традиционному порту. Для машины B, порты 2000-2999 на маршрутизаторе использовались бы (отображенный на соответствующем порте локально). И т.д.

1
задан 8 January 2019 в 18:59

1 ответ

[Главным образом украденный от Интернета]

Включите передачу IP:

sysctl net.ipv4.ip_forward=1

Используйте "туземную" таблицу для передачи трафика:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination X.X.X.X:80

Не забывайте о HTTPS:

iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination X.X.X.X:443

Попросите, чтобы iptables подменил:

 iptables -t nat -A POSTROUTING -j MASQUERADE

.... и если Вы хотите это для каждого порта в диапазоне, я предлагаю что-то одинаково:

 #!/bin/bash
 y=0;  //first port to map to = 1, but y++ happens before mapping, so 0
 for i in {2000..2999}
    do
       ((y++));  
       echo "forwarding port $i to port $y";
       iptables -t nat -A PREROUTING -p tcp --dport $i -j DNAT --to-destination X.X.X.X:$y;
 done

Примечание:

  • системные порты 1-1000 резервируются, таким образом, вышеупомянутый сценарий является плохой идеей ;)
  • offcourse заменяют X.X.X.X с localhost или везде, где Вы хотите к туземному вперед
1
ответ дан 7 December 2019 в 15:09

Другие вопросы по тегам:

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