cn:ccr:security:howto:nginx-reverse-proxy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cn:ccr:security:howto:nginx-reverse-proxy [2022/11/02 16:40] – created enrico@infn.itcn:ccr:security:howto:nginx-reverse-proxy [2022/11/02 16:41] (current) enrico@infn.it
Line 1: Line 1:
 +====== NGINX Reverse Proxy ======
 +
 +Per proteggere adeguatamente servizi web "legacy" (cioè servizi web che non possono essere facilmente aggiornati) che possono usare solo cifrature deboli o addirittura deprecate, può aiutare un server web che faccia da proxy.
 +
 +Qui di seguito la configurazione di un server web NGINX messa a protezione di un servizio di tipo shell-in-a-box su un server CentOS 7.9.2009
 +
 +===== Installazione di NGINX =====
 +
 +Il pacchetto per CentOS è disponibile nel repository EPEL
 +
 +  yum install -y epel-release
 +  yum install -y nginx
 +  
 +La configurazione è nei vari files presenti in /etc/nginx ed in /etc/nginx/conf.d
 +
 +Il file /etc/nginx/conf.d/shellinabox.conf contiene le seguenti:
 +
 +<code>
 +server {
 +    listen 80;
 +    server_name login.le.infn.it;
 +    return 301 https://$server_name$request_uri;
 +
 +    access_log   /var/log/nginx/access-login.le.infn.it.log;
 +    error_log    /var/log/nginx/error-login.le.infn.it.log;
 +
 +}
 +
 +server {
 +    listen         443 ssl http2;
 +    server_name    login.le.infn.it;
 +    
 +    access_log   /var/log/nginx/access-login.le.infn.it.log;
 +    error_log    /var/log/nginx/error-login.le.infn.it.log;
 +    
 +    ssl_certificate  "/etc/pki/tls/certs/login.le.infn.it-chain.crt";
 +    ssl_certificate_key "/etc/pki/tls/private/login.le.infn.it.key";
 +    ssl_protocols TLSv1.2 TLSv1.3;
 +    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!SHA1:!SHA256:!SHA384:!DSS:!aNULL';
 +    ssl_prefer_server_ciphers on;
 +    
 +    location / {
 +        proxy_pass http://127.0.0.1:4443;
 +        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;
 +    }
 +}
 +</code>
 +
 +A questo punto basta istruire il server "legacy" ad ascoltare sulla porta 4443 della loopback, cosa che per il servizio shell-in-a-box, si configura nel segiuente modo (per la versione di shellinaboxd presente in EPEL la configurazione è in /etc/sysconfig/shellinaboxd)
 +
 +<code>
 +# Shell in a box daemon configuration
 +# For details see shellinaboxd man page
 +
 +# Basic options
 +USER=shellinabox
 +GROUP=shellinabox
 +CERTDIR=/var/lib/shellinabox
 +PORT=4443
 +OPTS="--localhost-only --css white-on-black.css --disable-ssl --disable-ssl-menu -s /:LOGIN -s /who:nobody:nogroup:/:w -s /le-passwd:nobody:nogroup:/:/usr/local/bin/le_kpasswd.sh -s /kpasswd:nobody:nogroup:/:/usr/local/bin/run_kpasswd.sh"
 +
 +</code>
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki