Nginx-Proxy absichern (Fail2Ban etc.)

Begonnen von FunkOdyssey, 23 Mai 2018, 18:28:15

Vorheriges Thema - Nächstes Thema

Wernieman

Gib mir mal deine jetzige Konfig (komplett)

- Lösche mal alle, was auskommentiert ist
- Lösche mal alle Spezialitäten, wie z.B. 
        # Zugreifendes Land erlaubt?
        if ($allowed_country = no)  {
                return 403;
        }

    # check user agent
    if ($http_user_agent ~* '(iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP|BlackBerry|Windows Phone)') {
    set $ua_type "@mobile";
    }


Also mach es mal einfach einfach ...

Zitat
aber es führt zum Fehler.
Was für einen?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

buchner51

#16
Hier meine Konfig, ich habe alles rausgelöscht was ich denke unnütz ist.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    server_name fhempi;

    ssl_certificate           /etc/nginx/cert.crt;
    ssl_certificate_key       /etc/nginx/cert.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/fhem.access.log;


      location / {

      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_http_version      1.1;


      proxy_read_timeout  90;

      auth_basic "Restricted Content";
      auth_basic_user_file /etc/nginx/.htpasswd;


    }
  }
Raspberry pi 3+
KNX mit TUL, FHEM mit SMARTVISU 2.9

Wernieman

Du hast jetzt nur keine Proxy Angabe mehr drinne ....

Ich würde Dir 8erstmal) folgende Config vorschlagen:

server {
    listen 80 default_server;
    listen [::]:80 default_server;


    return 301 https://$host$request_uri;
}

server {
        listen 443;
        listen [::]:443;
        server_name <SERVERNAME>;

        ssl     on;
        ssl_certificate /etc/nginx/cert.crt;
        ssl_certificate_key /etc/nginx/cert.key;

        access_log  /var/log/nginx/fhem.access.log;
        error_log   /var/log/nginx/fhem.error.log;

        location /fhem {
                auth_basic "Restricted Content";
                auth_basic_user_file /etc/nginx/.htpasswd;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass <Pfad zu Fhem>
                client_max_body_size 128M;
        }

        location /<blablabla> {
                auth_basic "Restricted Content";
                auth_basic_user_file /etc/nginx/.htpasswd;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass <Pfad zu blablabla>
                client_max_body_size 128M;
        }

}


Alles mit <> bitte passend Ändern. Anschließend kannst Du es mit Deinen gewünschten Sicherheitsfunktionen erweitern ...

Was mir aber noch einfällt: Der Rechner ist doch laut Deiner Beschreibung extern erreichbar? Warum verwendest Du dann keine letsencrpt-zertifikate?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

buchner51

Hallo,

erstmal Danke für die mühe.

Ich hab es angepasst und bei mir reinkopiert, leider kommt ein Fehler und bekomme es nicht raus was falsch ist.

Zu deiner anderen frage, das sagt mir nichts aber wäre das besser?
Wo liegt der unterschied?

gruß und Danke
Raspberry pi 3+
KNX mit TUL, FHEM mit SMARTVISU 2.9

Wernieman

Letsencrypt: Es sind "echte" zertifikate, d.h. keine Browsermeldungen

Zum proxy:
WAS ist den jetzt der Fehler??
Wie hast Du aufgerufen?
Was7WIe hast Du mein Vorschlag angepasst?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

buchner51

Hallo ich habe es wie folgt angepasst:

server {
    listen 80 default_server;
    listen [::]:80 default_server;


    return 301 https://$host$request_uri;
}

server {
        listen 443;
        listen [::]:443;
        server_name fhempi;

        ssl     on;
        ssl_certificate /etc/nginx/cert.crt;
        ssl_certificate_key /etc/nginx/cert.key;

        access_log  /var/log/nginx/fhem.access.log;
        error_log   /var/log/nginx/fhem.error.log;
     location /fhem {
                auth_basic "Restricted Content";
                auth_basic_user_file /etc/nginx/.htpasswd;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass /opt/fhem
                client_max_body_size 128M;
        }

        location /sv {
                auth_basic "Restricted Content";
                auth_basic_user_file /etc/nginx/.htpasswd;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass /var/www/html/sv
    client_max_body_size 128M;
        }

}



Ich hab es ngnix nicht neustarten es kommt ein Fehler, aber ich wieß nicht welcher.

[....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.


Raspberry pi 3+
KNX mit TUL, FHEM mit SMARTVISU 2.9

Wernieman

einfach mal:
nginx -t

Edit:
proxy_pass /opt/fhem
....
proxy_pass /var/www/html/sv

Da fehlt was .... nämlich mehrere ";"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

buchner51

Danke für den Tip, habs mal verglichen und verstanden - zu mindestens etwas. ;)

proxy_pass http://localhost:8083; proxy_pass http://localhost;

auf Fhem komme ich drauf aber auf die Smartvisu nicht, was mache ich falsch?

Kannst du mir nochmal auf die Sprünge helfen?

Raspberry pi 3+
KNX mit TUL, FHEM mit SMARTVISU 2.9

Wernieman

Wie Du gemerkt hast, bin ich aktuell nicht (schwer) erreichbar ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html