В этом ответе, Как я могу открыть диапазон портов в человечности с помощью (g) ufw, дана простая команда для открытия диапазона портов.
Например, с помощью этой команды я могу открыть порты 1000-1999 очень легко для моего брандмауэра на моей локальной машине.
Теперь, тем не менее, я хотел бы установить перенаправление портов на локальной машине, так, чтобы:
У кого-либо есть простой сценарий удара для того, чтобы сделать это?
Я должен сделать это для нескольких машин в локальной сети. Ограничения маршрутизатором делают это более трудным, чем это должно быть.
Так машина A, порты 1000-1999 на маршрутизаторе были бы открыты для соединения с машиной A. На машине A, они были бы переданы традиционному порту. Для машины B, порты 2000-2999 на маршрутизаторе использовались бы (отображенный на соответствующем порте локально). И т.д.
[Главным образом украденный от Интернета]
Включите передачу 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
Примечание: