Nascondere accesso porta 8069

Da zeroincombenze.

L'accesso al server OpenERP avviene tramite la porta 8069. In taluni si potrebbe voler nascondere questa informazione per ragioni di sicurezza o semplicemente perhè qualche firewall potrebbe bloccare l'accesso.

Esempio di accesso (sostituire www.server-openerp.it con l'URL corretto):

http://www.server-openerp.it:8069


Ci sono diversi modi per accedere al server OpenERP tramite una pagina web. I metodi sono:

  • Ridirezione via HTML o Javascript
  • Ridirezione via Apache
  • Proxy
Vantaggi Svantaggi
HTML o JavaScript Si può applicare modificando la pagina HTML; non è necessario accedere al server. Utilizzabile con qualsiasi web server Resta visibile l'accesso alla porta 8069. L'accesso non è possibile in caso di blocco da firewall
Ridirezione via Apache Accesso più rapido rispetto ad HTML Richiede acceso al server; resta visibile l'accesso alla porta 8069. L'accesso non è possibile in caso di blocco da firewall
Proxy Nasconde porta 8069 per sicurezza; evita potenziali blocchi firewall su porte non ususali Richiede accesso alla configurazione del server; richiede conoscenze tecniche dei web server

Ridirezione via HTML o JavaScript

Occorre crere una pagina HTML con il codice di ridirezione. Questo è l'esempio (sostituire www.server-openerp.it con l'URL corretto):

<!DOCTYPE HTML>
   <head>
       <meta http-equiv="refresh" content="0; http://www.server-openerp.it:8069/">
       <script type="text/javascript">
           top.location.href = "http://www.server-openerp:8069/"
       </script>
       <title>Ridirezione</title>
   </head>
   <body>
       Tra poco sarete ridirezionato verso il  <a href='http://www.server-openerp.it:8069/' Server OpenERP</a>
   </body>
</html>

Redirect via Apache

Ha la stessa funzionalità del redirect via pagina HTML ma è eseguito direttamente dal server Apache. Evita che in alcuni casi venga visualizzata la pagina di ridirezionamento per qualce istante. Richiede l'accesso al server per modificare il file di configurazione del web server.

Questo è l'esempio (sostituire www.server-openerp.it con l'URL corretto):

<VirtualHost *:80>
   ServerName www.server-openerp.it
   Redirect permanent / localhost:8069
</VirtualHost>


Uso Proxy

Richiede l'accesso al server per modificare il file di configurazione del web server.

Questo è l'esempio (sostituire server-openerp.it con l'URL corretto):

<VirtualHost *:80>
   ServerName erp.server-openerp.it
   DocumentRoot .........
   ProxyRequests Off
   ProxyPreserveHost On
   <Proxy *>
     Order deny,allow
     Allow from all
   </Proxy>
   ProxyVia On
#    ProxyPass  / http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
#    ProxyPassMatch ^(/)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(.)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(/auth_signup/.*)$ http://localhost:8069/ disablereuse=on timeout=60 keepalive=On
   ProxyPassMatch ^(/web[/_].*)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(/base[/_].*)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(/process/.*)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(/[\?\&\#].*)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   ProxyPassMatch ^(.*/static/.*/.*)$ http://localhost:8069/ disablereuse=on timeout=600 keepalive=On
   <location / >
     ProxyPassReverse /
   </location>
   ProxyPassReverse / http://localhost:8069/
#    ProxyMaxForwards 10
</VirtualHost>

La direttiva ProxyMaxForwards deve assumere un valore adeguato.

Notare che la direttiva ProxyPass è sostituita d ProxyPassMatch che evitare di inviare a OpenERP richieste esterne non valide e di conseguenza evita di registrare nel log tutte le richieste dei bot di esplorazione automatici. Le direttive effettuano la ridirezione soltanto delle richieste valide per OpenERP.

La lista dei percorsi include i percorsi per le ordinarie funzionalità del client (la root /, i parametri ?&# e web client /web); a questo sono aggiunti i percorsi per l'import (modulo base /base) e l'accesso con modalità sviluppatore (web esteso, base e process /process).

Senza l'accesso web esteso (/web_*/<code> invece che <code>/web/) non si attiva la modalità sviluppatore.

Senza l'accesso base esteso (/base_*/<code> invece che <code>/base/) non si attiva la possibilità di import/export dati.


Maggiori riferimenti sono disponibili in API di OpenERP per la funzione di traduzione translate_path del modulo http_server.