Introduzione
In questo articolo illustrerò come configurare su un sistema Debian 5.0 l’accesso ad un applicazione web sviluppata in java con l’utilizzo di apache tomcat servlet container, apache web server ed istruendo il firewall (netfilter) tramite iptables.
Informazioni sul sistema
OS: Gnu/Linux Debian 5.0 x86_64 Kernel: 2.6.26-2-amd64 Apache: 2.2.9 Mod JK Version: 1.2.28
Modulo interessato
Per far gestire tocmat all’interno del contesto apache web server abbiamo bisogno di un del modulo JK , che installeremo con il seguente comando:
apt-get install libapache2-mod-jk
Installazione
procediamo ala creazione del file workers.properties in /etc/apache2/workers.properties:
nano /etc/apache2/workers.properties
all’interno inseriremo le seguenti righe:
workers.tomcat_home=/usr/local/tomcat6 workers.java_home=/usr/local/java ps=/ worker.list=worker1 worker.worker1.port=8009 worker.worker1.host=localhost worker.worker1.type=ajp13 worker.worker1.lbfactor=1
ed eseguiamo:
chmod 400 workers.properties
configuriamo adesso il file /etc/apache2/apache2.conf , in modo da poter utilizzare il file precedentemente creato, e aggiungiamo alla fine del file queste righe:
#Worker properties file JkWorkersFile /etc/apache2/workers.properties #Logging JkLogFile /var/log/apache2/mod_jk.log #Set the jk log level [debug/error/info] JkLogLevel info
editare il file /etc/apache2/site-avaible/default aggiungendo queste righe al VirtualHost inetressato:
JkMount /Application1 worker1 JkMount /Application1/* worker1 JkMount /Application2 worker1 JkMount /Application2/* worker1
andiamo ora a disabilitare la porta 8080 sul quale tomcat usualmente si mette in ascolto visto che abbiamo affidato le nostra applicazioni all’ apache web server, commentiamo il seguente blocco all’interno del file conf/server.xml, racchiudendolo nel commento <!- – (blocco) – ->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
ripassiamo di nuovo alla configurazione di apache e disabilitiamo il browsing delle directory editando /etc/apache2/site-avaible/default all’interno del blocco <Directory /var/www/> :
alla voce "allow from all" cambiarla con "deny from all"
un altra cosa interessante che ci potrebbe venire in mente di fare è quella di abilitare il modulo SSL in apache in modo sa abiltiare al le connessioni sicure su protocollo https. e quindi abiltiamo il modulo:
a2enmod ssl
abilitiamo il default-ssl site in questo modo:
a2ensite default-ssl /etc/init.d/apache2 reload
Configurazione netfilter tramite iptables
Andremo ora ad istruire iptables in modo da permettere solo il traffico per le connessioni
che verranno stabilite sulla porta 80 per il protocolo http.
Salviamo la nostra vecchia configurazione che è sempre cosa buona e giusta:
iptables-save > /etc/iptables_rules_old
creiamo un file chiamamo iptables_rules:
nano /etc/iptables_rules
all’interno ci isneriamo il seguente contenuto:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT
salviamo il file ed usciamo, andiamo adesso ad utilizzare questo file per istruire il nostro firewall:
iptables-restore < /etc/iptables_rules
Test
Per testare che tutto sia andato a buon fine, aprire un internet browser e digitare nella barra degli indirizzi:
http://ip_server/Application1
oppure
https://ip_server/Application1
Abbiamo terminato la nostra configurazione per un server web funzionante, come sempre questo è uno dei modi , una delle configurazioni che si possono avere in questo ampio contesto.
Non sono stato li a spiegare ogni minimo passaggio cosa che a mio avviso stimola la curiosità cosa che risulta essere sempre positiva.