iptables перенаправляет 80 на 8080, но блокирует публичный доступ 8080

У меня есть несколько правил iptables, которые перенаправляют запросы на порт 80 на наш сервер приложений (GlassFish) через порт 8080 (а также порты SSL, но я их не упомянул). для простоты).

В то время как то, что у нас есть, работает нормально (и лично у меня нет проблем с этим), порт 8080 также открыт для внешнего мира, если кто-то пожелает указать его в URL-адресе. Было предписано, что порт 8080 должен быть закрыт от доступа из внешнего мира и только 80 должен быть открыт.

Я не хочу менять прослушиватель на сервере приложений (поскольку для использования порта 80 требуются повышенные разрешения для пользователя, запускающего сервер приложений), а прослушиватель на порту 8080 должен знать IP-адрес источника package, поскольку приложение проверяет запросы к приложению (т.е. мы не можем изменить исходный IP-адрес на локальный).

Текущая конфигурация iptablesприведена ниже. Кто-нибудь знает, есть ли способ заблокировать 8080 из общедоступного Интернета, сохранив исходный IP-адрес в пакетах, перенаправленных с порта 80?

Заранее большое спасибо.


    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP

    # allow establishment of connections initialised by my outgoing packets
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    # accept anything on localhost
    iptables -A INPUT -i lo -j ACCEPT

    ################################################################
    #individual ports tcp 
    ################################################################
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

    #drop everything else
    iptables -A INPUT -j DROP

    ################################################################
    #Redirection Rules
    ################################################################
    # redirection rules (allowing forwarding from localhost)
    iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080

    # redirection http
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

21
задан lazidar 16 June 2012 в 16:19
поделиться