Webproxy mit nginx für HTTP und X.509 Zertifikate: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 93: | Zeile 93: | ||
location / { | location / { | ||
| − | proxy_pass | + | proxy_pass http://mail-gw.it2XX.int:11334; |
proxy_ssl_server_name on; | proxy_ssl_server_name on; | ||
proxy_set_header Host $host; | proxy_set_header Host $host; | ||
Aktuelle Version vom 12. Juni 2026, 07:10 Uhr
Das Template
- Wir nehmen das rocky-template
Netzkonfiguration Reverse Proxy-Server (DMZ)
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | DMZ | Interface-Zuweisung in VirtualBox |
| IP | 10.88.2XX.41 | Statische IP |
| CIDR | 24 | Classless Inter-Domain Routing Präfixlänge |
| GW | 10.88.2XX.1 | GATEWAY |
| NS | 10.88.2XX.21 | Resolver |
| FQDN | revproxy.it2XX.int | Fully Qualified Domain Name |
| SHORT | revproxy | Short Name |
| DOM | it2XX.int | Domain Name |
- Anpassen des Templates
Mit debian-setup.sh oder mit rocky-setup.sh
- Eintragen auf dem Host unter ~/.ssh/config
Einführung
- Nginx kann als Reverse Proxy für HTTP- und HTTPS-Dienste verwendet werden.
- X.509-Zertifikate ermöglichen die TLS-Verschlüsselung für sichere Verbindungen.
- Der Proxy terminiert TLS zum Client und leitet Anfragen an interne Webserver weiter.
Installation von Nginx
- Nginx installieren
- dnf install nginx
- Dienst starten und aktivieren
- systemctl enable --now nginx
Firewall konfigurieren
- HTTPS (Port 443) freigeben
- firewall-cmd --permanent --add-service=https
- HTTP (Port 80) freigeben – z. B. für Weiterleitungen
- firewall-cmd --permanent --add-service=http
- Firewall neu laden
- firewall-cmd --reload
- Aktive Regeln anzeigen
- firewall-cmd --list-all
Zertifikat erstellen
- Ergebnis
/etc/ssl/own.crt /etc/ssl/own.key
Eine Webseite vorab um zu testen ob unser System soweit geht
- cat /etc/nginx/conf.d/revproxy.int.conf
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name revproxy.it2XX.int;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate /etc/ssl/own.crt;
ssl_certificate_key /etc/ssl/own.key;
location / {
try_files $uri $uri/ =404;
}
}
- Konfiguration prüfen
- nginx -t
- Neu starten
- systemctl restart nginx
- Testen
- curl -k https://revproxy.it2XX.int
Proxy-Konfiguration mit TLS
- cat /etc/nginx/conf.d/revproxy.int.conf
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name revproxy.it2XX.int;
ssl_certificate /etc/ssl/own.crt;
ssl_certificate_key /etc/ssl/own.key;
location / {
proxy_pass http://mail-gw.it2XX.int:11334;
proxy_ssl_server_name on;
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;
}
}
- Nginx neu laden
- systemctl reload nginx
Bei Problemen
- ausearch -m avc -ts recent
----
time->Thu Mar 26 15:50:59 2026
type=PROCTITLE msg=audit(1774536659.561:435): proctitle=6E67696E783A20776F726B65722070726F63657373
type=SYSCALL msg=audit(1774536659.561:435): arch=c000003e syscall=42 success=no exit=-13 a0=d a1=5578211d9fb8 a2=10 a3=7ffcb154f60c items=0 ppid=33457 pid=33458 auid=4294967295 uid=985 gid=984 euid=985 suid=985 fsuid=985 egid=984 sgid=984 fsgid=984 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)
type=AVC msg=audit(1774536659.561:435): avc: denied { name_connect } for pid=33458 comm="nginx" dest=443 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket permissive=0
- SELinux verbietet nginx ausgehende Verbindungen zum Backend
- Nginx Netzwerk-Zugriff dauerhaft freischalten
- setsebool -P httpd_can_network_connect 1
- Prüfen
- getsebool httpd_can_network_connect
Fazit
- Nginx ist ein leistungsfähiger Webproxy für HTTP und HTTPS.
- TLS-Zertifikate bieten Sicherheit und Vertrauenswürdigkeit.
- SELinux-Booleans steuern, ob der Proxy Verbindungen zum Backend aufbauen darf.