Pubblicare i servizi di Tomcat sulla porta 80 (Ubuntu server 14.04)

Normalmente Tomcat pubblica i suoi servizi sulla porta 8080 ed eventualmente il web server che farà da front-end per le richieste dell’utente provvederà ad inoltrare le richieste di tomcat su tale porta.
Tomcat comunque funziona benissimo anche come webserver, non avrà tutte le opzioni di Apache, ma se quest’ultimo lo usiamo solo come reverse-proxy ha senso risparmiare delle risorse usando come front-end direttamente Tomcat.
Per non obbligare però nostri utenti ad aggiungere il “:8080” dopo il nome del nostro host dobbiamo modificare il file server.xml che, nella mia installazione: Tomcat7 su Ubuntu server 64bit 14.04, troviamo in:

/etc/tomcat7/server.xml

ma se avete un’altra installazione probabilmente il file è localizzato in un’altra directory.
Una volta localizzato il file bisogna editare la sezione del connettore HTTP che sarà qualcosa tipo:

 <Connector port="8080" protocol="HTTP/1.1"
 connectionTimeout="20000"
 URIEncoding="UTF-8"
 redirectPort="8443" />

E indicare al posto di 8080 ovviamente 80 quindi il risultato sarà:

 <Connector port="80" protocol="HTTP/1.1"
 connectionTimeout="20000"
 URIEncoding="UTF-8"
 redirectPort="8443" />

Però su Linux  per usare le “well-know” port bisogna essere root, ma usare root per eseguire il servizio tomcat non è una buona idea dal punto di vista della sicurezza. L’alternativa è usare il comando authbind.
La buona notizia è che non dovete preoccuparvi di lanciare manualmente il comando, basta editare il file dei default di tomcat posto in:

/etc/default/tomcat7

e impostare il parametro

AUTHBIND=yes

che normalmente è già presente ma commentato.
La brutta notizia, brutta perchè non ben documentata, è che dovete indicare ad authbind che permettete all’utente tomcat7 di usare la porta 80 e per farlo si deve creare un file vuoto nella directory

/etc/authbind/byport

con il comando

sudo touch /etc/authbind/byport/80

assegnarli le corrette autorizzazioni con il comando:

sudo chmod 500 /etc/authbind/byport/80

ed infine indicare che il proprietario è l’utente che usate per lanciare tomcat che, nel mio caso,  è tomcat7.
Quindi un bel:

sudo chown tomcat7 /etc/authbind/byport/80

e abbiamo finito !
Controlliamo il risultato usando il comando:

ls -l

avremo quindi :

-r-x------ 1 tomcat7 root 0 mag 21 10:34 80

nel vostro caso sarà leggermente diverso perché indicherà la data in cui voi avete fatto le suddette operazioni.
Un bel:

sudo service tomcat7 restart

e tomcat è pronto a fare il proprio lavoro sulla porta 80!

Alla prossima

Andrea

Lascia un commento