Hallo,
habe folgendes Problem,
Webseiten werden nicht über http angesprochen geschweige denn von http auf https umgeleitet.
Firewall lässt den Port 80 durch, jedoch geschieht dann nichts mehr.
Ich komme an dieser Stelle leider mehrere wochen nicht weiter, kann mir bitte jemand weiterhlefen?
nginx.conf manuell anpassen funktioniert leider auch nicht, somal nach Serverrestart alle manuellen Anpassungen gelöscht werden.
Reverse Proxy ist erfolgreich eingerichtet,
Webseiten sind über Port 443 ansprechpar.
Konfig: Host lauscht auf Port 80 und 443 akzeptiert wird nur HTTPS.
Port 80 und 443 werden weitergeleitet.
Der Uploadserver wird ohne ssl angesprochen, dahinter steht ein IIS Webserver.
sockstat gibt folgendes aus
www nginx 9568 14 stream /var/run/nginx_status.sock
www nginx 9568 15 tcp4 *:80 *:*
www nginx 9568 16 tcp6 *:80 *:*
www nginx 9568 17 tcp4 *:443 *:*
www nginx 9568 18 tcp6 *:443 *:*
www nginx 9568 19 stream -> ??
root nginx 3059 3 stream -> ??
root nginx 3059 14 stream /var/run/nginx_status.sock
root nginx 3059 15 tcp4 *:80 *:*
root nginx 3059 16 tcp6 *:80 *:*
root nginx 3059 17 tcp4 *:443 *:*
root nginx 3059 18 tcp6 *:443 *:*
Vorab vielen Dank
Hast du das Web interface schon verlegt? Kann sein, dass das noch 80 belegt für den redirect.
Interface ist auf einem anderen Port,
- Protokoll https
-(x) Enable HTTP Strict Transport Security
-(x) Disable web GUI redirect rule
-(x) Disable DNS Rebinding Checks
port 443 auf der FW vergessen?
die URL ist ja per https erreichbar, jedoch über http nicht.
Es erfolgt dadurch auch kein redirect.
Anbei ein Auszug der nginx.conf
server {
listen 80 proxy_protocol;
listen [::]:80 proxy_protocol;
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
ssl_client_certificate /usr/local/etc/nginx/key/finest-lessel.de_ca.pem;
ssl_verify_client off;
ssl_early_data on;
ssl_certificate_key /usr/local/etc/nginx/key/finest-lessel.de.key;
ssl_certificate /usr/local/etc/nginx/key/finest-lessel.de.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_dhparam /usr/local/etc/dh-parameters.4096;
ssl_ciphers 'ECDHE-ECDSA-CAMELLIA256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CAMELLIA256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CAMELLIA128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CAMELLIA128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-CAMELLIA256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-CAMELLIA256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-CAMELLIA128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_prefer_server_ciphers on;
sendfile On;
server_name finest-lessel.de www.finest-lessel.de;
real_ip_header X-Forwarded-For;
charset utf-8;
access_log /var/log/nginx/finest-lessel.de,www.finest-lessel.de.access.log main;
access_log /var/log/nginx/tls_handshake.log handshake;
error_log /var/log/nginx/finest-lessel.de,www.finest-lessel.de.error.log;
#include tls.conf;
error_page 404 /opnsense_error_404.html;
error_page 500 501 502 503 504 /opnsense_server_error.html;
# location to ban the host permanently
set $naxsi_extensive_log 0;
location @permanentban {
access_log /var/log/nginx/permanentban.access.log main;
internal;
add_header Content-Type text/plain;
add_header Charset utf-8;
return 403 "You got banned permanently from this server.";
}
error_page 418 = @permanentban;
location = /opnsense_server_error.html {
internal;
root /usr/local/etc/nginx/views;
}
location = /opnsense_error_404.html {
internal;
root /usr/local/etc/nginx/views;
}
location = /waf_denied.html {
root /usr/local/etc/nginx/views;
access_log /var/log/nginx/waf_denied.access.log main;
}
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
proxy_pass http://127.0.0.1:43580;
}
# block based on User Agents - stuff I have found over the years in my server log
if ($http_user_agent ~* Python-urllib|Nmap|python-requests|libwww-perl|MJ12bot|Jorgee|fasthttp|libwww|Telesphoreo|A6-Indexer|ltx71|okhttp|ZmEu|sqlmap|LMAO/2.0|ltx71|zgrab|Ronin/2.0|Hakai/2.0) {
return 418;
}
if ($http_user_agent ~ "Indy\sLibrary|Morfeus Fucking Scanner|MSIE [0-6]\.\d+")
{
return 418;
}
if ($http_user_agent ~ ^Mozilla/[\d\.]+$)
{
return 418;
}
location = /opnsense-report-csp-violation {
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SCRIPT_FILENAME /usr/local/opnsense/scripts/nginx/csp_report.php;
fastcgi_param TLS-Cipher $ssl_cipher;
fastcgi_param TLS-Protocol $ssl_protocol;
fastcgi_param TLS-SNI-Host $ssl_server_name;
fastcgi_param SERVER-UUID "816a-3435e5ea2bfc";
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php-webgui.socket;
}
location /opnsense-auth-request {
internal;
fastcgi_pass unix:/var/run/php-webgui.socket;
fastcgi_index index.php;
fastcgi_param TLS-Cipher $ssl_cipher;
fastcgi_param TLS-Protocol $ssl_protocol;
fastcgi_param TLS-SNI-Host $ssl_server_name;
fastcgi_param Original-URI $request_uri;
fastcgi_param Original-HOST $host;
fastcgi_param SERVER-UUID "3435e5ea2bfc";
fastcgi_param SCRIPT_FILENAME /usr/local/opnsense/scripts/nginx/ngx_auth.php;
fastcgi_param AUTH_SERVER "Local Database";
fastcgi_intercept_errors on;
include fastcgi_params;
}
# apache htpasswd and htaccess
location ~ /\.ht {
return 403;
}
# those files may expose file system stuff
location ~ \.DS_Store$ {
return 403;
}
if ($scheme != "https") {
return 302 https://$host$request_uri;
}
include 77c2f0d6-a0ba-43b435e5ea2bfc_pre/*.conf;
location / {
SecRulesEnabled;
LearningMode;
BasicRule wl:19;
CheckRule "$policy8d47af41869f4ea335903e1c5 >= 8" BLOCK;
DeniedUrl "/waf_denied.html";
if ($scheme != "https") {
return 302 https://$host$request_uri;
}
client_max_body_size 200m;
client_body_buffer_size 1m;
autoindex off;
http2_push_preload on;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-TLS-Cipher $ssl_cipher;
proxy_set_header X-TLS-Protocol $ssl_protocol;
proxy_set_header X-TLS-SNI-Host $ssl_server_name;
# proxy headers for backend server
proxy_set_header Early-Data $ssl_early_data;
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_set_header X-TLS-Client-Intercepted $tls_intercepted;
proxy_ignore_client_abort on;
proxy_request_buffering on;
proxy_max_temp_file_size 1024m;
proxy_buffering on;
proxy_pass http://upstreame062cf8b81e64cbcb9372d97fa741271;
proxy_hide_header X-Powered-By;
}
include 3435e5ea2bfc_post/*.conf;
}
}
Würde auch drauf tippen, dass noch etwas anderes auf Port80 lauscht. Transparenter Proxy ist auch off?
Such doch mal auf der Shell mit netstat ob und was auf Port 80 gebunden ist.
mir wird nur nginx auf port 80 angezeigt
www nginx 9568 15 tcp4 *:80 *:*
www nginx 9568 16 tcp6 *:80 *:*
root nginx 3059 15 tcp4 *:80 *:*
root nginx 3059 16 tcp6 *:80 *:*
Wo finde ich die Einstellung für den Transparenter Proxy?
Quote from: banym on October 04, 2019, 12:27:13 AM
Würde auch drauf tippen, dass noch etwas anderes auf Port80 lauscht. Transparenter Proxy ist auch off?
Such doch mal auf der Shell mit netstat ob und was auf Port 80 gebunden ist.
Im errorlog konnte ich noch folgendes finden, jedoch kann ich nicht viel damit anfangen:
" while reading PROXY protocol, client: 79.234.147.129, server: 0.0.0.0:80
2019/10/04 11:52:51 [error] 53804#100330: *260 broken header: "GET / HTTP/1.1
Host: www.finest-lessel.de
# netstat -a -p TCP -n | grep 80
tcp4 0 0 192.168.1.1.80 185.131.61.186.35021 SYN_RCVD
tcp4 0 0 192.168.1.1.80 88.103.194.93.58176 TIME_WAIT
tcp4 0 0 88.198.13.75.80 88.198.13.75.3721 TIME_WAIT
tcp4 0 0 88.198.13.75.80 88.198.13.75.46489 TIME_WAIT
tcp4 0 0 192.168.1.1.80 200.122.251.26.43385 TIME_WAIT
tcp6 0 0 *.80 *.* LISTEN
tcp4 0 0 *.80 *.* LISTEN
tcp4 0 0 192.168.1.1.80 79.234.147.129.57618 FIN_WAIT_2
tcp4 0 0 127.0.0.1.43580 *.* LISTEN
Geh mal in den HTTP Server in die advanced settings und deaktiviere die Checkbox "PROXY Protocol" - scheinbar hast du nginx für eine Proxy Chain konfiguriert (hauptsächlich für die Verwendung als nachgelagerter Proxy für HAProxy wenn man das braucht).
ok, hab ich umgestellt.
Leider immer noch keinen Erfolg.
Wenn ich Port 80 direkt auf den dahinter liegenden IIS Webserver umleite, funktioniert es.
Das sollte aber nicht die Lösung sein. Gibt es eine Beispiel-Grundkonfiguration?
reload auch gemacht?
das hier ist vermutlich dein Problem:
listen 80 proxy_protocol;
listen [::]:80 proxy_protocol;
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
@fabian die Einstellung wurde wohl nicht richtig übernommen, jetzt funktioniert es! Vielen lieben Dank für deine Geduld ;)