Я выполняю Сервер Ubuntu (аккуратный) в как шлюз/брандмауэр перед частной сетью. Я успешно включил передачу IP и NAT, таким образом, машины позади брандмауэра могут соединиться с Интернетом (следовал инструкциям из https://help.ubuntu.com/11.04/serverguide/C/firewall.html).
То, что я хочу теперь, то, что определенный IP позади этого брандмауэра, каждый раз, когда хочет соединиться с внешним сервисом к вынужденному для использования только определенного порта:
192.168.0.2 (приложение)-> 184.72.64.256 (шлюз, вымышленный IP)-> 51.72.64.256 (сервис, вымышленный IP)
Таким образом каждый раз, когда 192.168.0.2 хочет соединиться с 51.72.64.256, я хочу это t, который будет осуществлен маршрутизатором для использования порта 10002 (от диапазона портов 10002-12000). 51.72.64.256 позволяет соединения от шлюза до портов 10002-12000.
Есть ли способ создать пользовательскую цепочку и включить ее в ufw, так, чтобы я все еще смог использовать ufw намеченным способом и смочь динамично обновить эту цепочку каждый раз, когда я добавляю машины позади этого брандмауэра.
Вы можете сделать это, добавив правило iptables, используя REDIRECT
для перенаправления всех запросов, выполненных --src
на конкретном --dport
, для перенаправления на другой конкретный --to-ports
. Я бы посмотрел что-то вроде этого:
iptables -t nat -I OUTPUT --src 192.168.0.2 --dst 51.72.64.256 -p tcp --dport 80 -j REDIRECT --to-ports 10002
Редактировать:
Правильный ответ дал Калин Дон после тестирования:
[ 115]