Переключение Linux-порта на себя

У меня есть сценарий: у меня есть 4 сервера и 3 веб-входящих запроса, которые я должен разрешить через модем / маршрутизатор. порты https (ssl) 443 ssh22 и http80. Все 4 сервера хотят их.

Я настроил сервер для использования переадресации портов и переназначения следующим образом:

2241->port 22 on ip 192.168.0.41 2242->port 22 on ip 192.168.0.42 2243->port 22 on ip 192.168.0.43 2244->port 22 on ip 192.168.0.44 and so on using 44341(..2..3..4) and 8041(..2..3..4) 

Мне это нравится. За брандмауэром я могу использовать порты по умолчанию (я предпочитаю это), извне могу (как мне нужно) двоеточие: в.

Однако произошли две вещи. Модем старого маршрутизатора умер, я купил новый (дорого) этот новый техник не позволил переназначить более 8 портов. Плохо. Потолок искусственного стекла. Затем я установил его в офисах клиентов.> Я пошел к клиенту, у них даже не было никакого переадресации портов, поэтому я купил им новый модемный маршрутизатор (еще дороже), опасаясь, что ему нужно будет сделать больше 8 портов, и опасаясь, что этот тип переназначения портов теперь является «премиальной» функцией. Я был неправ. * Еще один * более дорогой новый модемный маршрутизатор позволит только перенаправить порты, он не позволит переназначать порты. просто переместите их.

Так что я отвлекся. Но есть ли способ, которым я все еще могу переназначить порт, который я подумал про себя?

могу ли я использовать что-то вроде следующего, чтобы помочь мне?

 iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 2202 -j REDIRECT --to-port 22 

есть ли причина избежать этого использования?

2 Solutions collect form web for “Переключение Linux-порта на себя”

Поскольку ваш маршрутизатор не поддерживает сопоставление портов, вы можете сделать это либо на каждом хосте для себя, либо на одном хосте.

Для пересылки входящего трафика на порт 2241 на localhost: 22, используйте

 iptables -t nat -A PREROUTING -p tcp --dport 2241 -j REDIRECT --to-ports 22 

Для пересылки входящего трафика с 192.168.0.41:2242 по 192.168.0.42:22 вы можете использовать DNAT (Destination NAT). Вы можете сделать это, например, используя (есть вероятные более безопасные решения):

 echo 1 > /proc/sys/net/ipv4/ip_forward # or use /etc/sysctl.conf iptables -t nat -A PREROUTING -p tcp --dport 2242 -j DNAT --to-destination 192.168.0.42:22 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -P FORWARD DROP iptables -A FORWARD -d 192.168.0.42 -p 22 -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 

Если вы планируете заменить маршрутизатор маршрутизатором linux, это нормально. Мне нравится томат для этого, но freesco, ddwrt и openwrt сделают эту работу. Они предоставят веб-gui, как вы знакомы с продуктом, используйте iptables для его реализации и предоставите вам высококачественные функции на аппаратных средствах низкого уровня.

  • iptables для Asterisk
  • Как перенести правило ip и маршрут, когда сервер перезагружается?
  • Как я могу запустить сервис iptables автоматически после перезагрузки на CenOS / RHEL7?
  • redsocks в частной сети
  • Как ограничить исходящие подключения к одной программе?
  • Какие еще правила следует использовать для разрешения исходящего соединения PPTP?
  • Не будут ли затронуты пакеты, обрабатываемые цепочкой iptables при обновлении правил iptables?
  • iptables: нет цепочки / цели / соответствия этим именем
  • Использование предела iptables -m в противоположном направлении
  • iptables и обеспечение smtp
  • Высокопроизводительная маршрутизация с высоким набором правил для отбойников. Какой подход, скорее всего, будет масштабироваться до C10K и далее?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.