Я перенаправил все запросы с порта 80 на порт 8080 для моего сервера Tomcat с помощью iptables.
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Сейчас http://mydomain.com/
работает нормально, но люди все еще могут получить доступ http://mydomain.com:8080
. Я вижу, что на других сайтах это невозможно. Есть ли способ отключить прямой доступ к порту 8080 через URL-адрес?
Когда вы получаете доступ http://mydomain.com, он перезаписывает URL-адрес на http://mydomain.com:8080? Если это так, я не вижу, как заставить его работать, используя только iptables (потому что вам понадобится, чтобы порт 8080 был открыт для ответа на запросы). Я провел здесь быстрый тест, и URL-адрес был переписан, но, возможно, это делал мой сайт.
Сказал, что может лучше поставить nginx или apache с ProxyPass / ProxyPassReverse перед вашим приложением для работы с URL-адресами, плюс возможность использовать nginx
или apache
перезапись URL, балансировка нагрузки и другие возможности.
Я не использую iptables очень давно, поэтому я не знаю, как писать правила для вас, но я считаю, что если вы отбросите или отклоните все запросы для порта 8080 в таблице фильтров, тогда поместите оператор, который вы предоставили в постмаршрутизацию цепочку вы получите желаемый результат.
Я все еще пытаюсь изучить iptables, поэтому, если это не так, вы можете сказать мне, почему, в комментариях?