Gli accessi e altre informazioni inviate tramite l’interfaccia web di LibreNMS non sono protetti se la connessione non è crittografata con SSL.
In questo tutorial configurerò Nginx per utilizzare l’SSL.
PRE REQUISITI
LibreNMS Version 1.42.01-82-gfb16560 – Mon Aug 27 2018 22:08:31 GMT+0200
DB Schema #260
Web Server nginx/1.10.3
PHP 7.0.30-0ubuntu0.16.04.1
MySQL 10.0.34-MariaDB-0ubuntu0.16.04.1
O.S. : Ubuntu 16.04.5 LTS
CREAZIONE E INSTALLAZIONE DEL CERTIFICATO SSL PER NGINX
Per l’installazione del Certificato Self Signed in Ubuntu 16.04 seguire la guida
MODIFICA DEL FILE DI CONFIGURAZIONE DI NGINX
Quindi modifichiamo il file default del server Nginx con il comando
0 |
sudo nano /etc/nginx/sites-available/default |
Al posto delle seguenti righe
0 1 2 |
server { listen 80 default_server; listen [::]:80 default_server; |
incollare queste
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; listen 443 ssl; root /var/www/html; index index.html index.htm; server_name SERVER.DOMINIO.COM; ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; location / { try_files $uri $uri/ =404; } } |
NOTA BENE: /etc/ssl/certs/nginx-selfsigned.crt e /etc/ssl/private/nginx-selfsigned.key sono i path di default del certifcato e della chiave. Se avete seguito la mia guida per l’installazione di un certificato SSL in Ubuntu 16.04 con Nginx lasciate pure invariato altrimenti dovete mettere i path corretti
Salvare e chiudere il file di configurazione
A questo punto modifichiamo il file di configurazione di LibreNMS con il comando:
0 |
sudo nano /etc/nginx/conf.d/librenms.conf |
all’interno del file cancellare tutto e incollare quanto segue:
NOTA BENE: se avete seguito le mie guide relative all’installazione del certificsato SSL in Ubuntu con Nginx e all’installazione di LibreNMS dovete modificare solo la riga server_name SERVER.DOMINIO.COM; inserendo il nome del vostro server
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
server { listen 80 default_server; listen [::]:80 default_server; # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response. return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_dhparam /etc/nginx/dhparam.pem; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; server_name SERVER.DOMINIO.COM; root /opt/librenms/html; access_log /opt/librenms/logs/access_log; error_log /opt/librenms/logs/error_log; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/$ location / { try_files $uri $uri/ /index.php?$query_string; } location /api/v0 { try_files $uri $uri/ /api_v0.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } |
Salvare e chiudere il file di configurazione
A questo punto riavviare Nginx con il comando:
0 |
sudo systemctl restart nginx |
Quindi testare la configurazione di Nginx con il comando:
sudo nginx -t
Se è tutto corretto dovremmo leggere le seguenti righe
0 1 |
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
A questo punto se proviamo ad aprire il browser e richiamare il link del nostro server sia in HTTP che in HTTPS il risultato sarà sempre lo stesso e cioè il LibreNMS verrà aperto sempre in HTTPS.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 commenti