Rendere Odoo sicuro su Internet
Esporre Odoo su Internet in sicurezza
Pagina in costruzione
Installazione reverse proxy Nginx
L'installazione del reverse proxy ci consentirà pilotare le chiamate verso il server Odoo apportando le opportune misure di sicurezza caso per caso
sudo apt-get install nginx -y
Per analizzare il log del servizio Nginx appena lanciato
journalctl -u nginx
Disabilitare la configurazione di default e impostare quella relativa a Odoo
sudo rm /etc/nginx/sites-enabled/default sudo touch /etc/nginx/sites-available/odoo sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
Modificare il file /etc/nginx/sites-available/odoo al fine di reindirizzare il traffico sulla porta 8069
upstream backend-odoo { server 127.0.0.1:8069; } server { location / { proxy_pass http://backend-odoo; } }
Ricaricare e riavviare il servizio con la nuova configurazione
sudo systemctl reload nginx
Ora il servizio di Odoo risponderà anche senza indicare la porta da utilizzare
http://localhost
Protocollo https
Al fine di mettere in sicurezza le transazioni tra il browser client e il servizio Odoo, è necessario attivare il protocollo HTTPS il quale si appoggia su un certificato SSL.
Certificato SSL autofirmato
Generare il certificato in autonomia, firmato da noi stessi
sudo mkdir /etc/nginx/ssl && cd /etc/nginx/ssl sudo openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes sudo chmod a-wx * sudo chown www-data:root *
Attivazione protocollo SSL
Sostituire il contenuto del file /etc/nginx/sites-available/odoo come indicato
upstream backend-odoo { server 127.0.0.1:8069; } server { listen 443 default; # ssl settings ssl on; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; keepalive_timeout 60; # proxy header and settings proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; location / { proxy_pass http://backend-odoo; } }
Ora il servizio di Odoo risponderà solo sulla porta 443
https://localhost
Certificato SSL letsencrypt
Il certificato autofirmato però provoca un'eccezzione al browser perchè i browser riconoscono soltanto gli enti certificati a rilasciarli, e noi non lo siamo.
Per ovviare questo avviso, è possibile sostituire il nostro certificato con uno rilasciato da un ente accreditato a farlo: Let's Encrypt
Per l'attivazione del certificato è necessario disporre di un nome di dominio il quale deve puntare all'indirizzo IP della macchina dov'è installato Odoo.
Se necessario, configurate opportunamente il router in modo che la chiamata arrivi direttamente al pc nattando l'indirizzo LAN
Installare il programma
sudo apt install certbot sudo certbot certonly
seguire le indicazioni fornite dalla procedura di creazione del cerificato indicando tutti i dati richiesti, incluso il nome dominio
Ora il servizio di Odoo risponderà correttamente al nome dominio indicato sull'url
https://mio_sito.it
Impostazione firewall
Chiudere tutte le porte non necessarie al servizio Odoo
sudo ufw status sudo ufw allow http sudo ufw allow https sudo ufw enable sudo ufw status sudo reboot