Ho alcune regole iptables
che reindirizzano le richieste per la porta 80 sul nostro server delle applicazioni (GlassFish) alla porta 8080 (e anche le porte SSL ma le ho lasciate fuori per semplicità) .iptables reindirizza 80 a 8080 ma blocca l'accesso pubblico 8080
Mentre ciò che funziona funziona bene (e personalmente non ho un problema con esso) la porta 8080 è aperta anche al mondo esterno se qualcuno volesse specificarlo nell'URL. È stato imposto che la porta 8080 debba essere chiusa dall'accesso dal mondo esterno e che solo 80 siano aperti.
Non desidero modificare l'ascoltatore sul server delle applicazioni (in quanto utilizzare la porta 80 sembra richiedere autorizzazioni elevate per l'utente che esegue il server dell'app) e il listener sulla porta 8080 deve conoscere l'IP di origine di il pacchetto come l'applicazione verifica le richieste all'applicazione (cioè non possiamo cambiare l'indirizzo IP di origine a quello locale).
La configurazione attuale di iptables
è la seguente. Qualcuno sa se esiste un modo per bloccare 8080 dall'internet pubblico mantenendo l'IP di origine nei pacchetti reindirizzati dalla porta 80?
Molte grazie in anticipo.
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
hai preso in considerazione il blocco della porta 8080 e l'inoltro su httpd proxypass? –
Grazie per il suggerimento. Al momento non ci sono apache o mod_proxy disponibili su questo server (che capisco sarebbe necessario ..?), Ma ovviamente se non è possibile con iptables - o pacchetti Linux standard - allora immagino che sia qualcosa da esaminare. – lazidar