Nginx Webproxy für HTTPS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
* Nginx wird als Reverse Proxy für den internen Mail-Server '''mail.it113.int''' unter dem Namen '''revproxy.it113.int''' eingesetzt.
 
* Nginx wird als Reverse Proxy für den internen Mail-Server '''mail.it113.int''' unter dem Namen '''revproxy.it113.int''' eingesetzt.
 
* Alle Verbindungen werden über '''HTTPS''' gesichert, um eine sichere Kommunikation zu gewährleisten.
 
* Alle Verbindungen werden über '''HTTPS''' gesichert, um eine sichere Kommunikation zu gewährleisten.
 +
==SElinux==
 +
;Um Nginx zu erlauben, auf Netzwerkressourcen zuzugreifen muss man dies SELinux mitteilen-
 +
*sudo setsebool -P httpd_can_network_connect 1
 +
*sudo systemctl reload nginx
 +
;Bei weiteren Verstössen testen
 +
*sudo ausearch -m avc -ts recent
 +
 +
  
 
== Nginx-Konfiguration ==
 
== Nginx-Konfiguration ==
  
* Die ''Nginx-Konfiguration'' für den Reverse Proxy ist unter '''/etc/nginx/conf.d/revproxy.it113.int.conf''' zu speichern.
+
*vi '''/etc/nginx/conf.d/revproxy.it113.int.conf'''
  
 
<pre>
 
<pre>
Zeile 29: Zeile 37:
  
 
== Nginx neu laden ==
 
== Nginx neu laden ==
* Nach der Anpassung der Konfiguration muss Nginx neu geladen werden, damit die Änderungen wirksam werden:
 
 
* sudo systemctl reload nginx
 
* sudo systemctl reload nginx
 
== Zugriffsbeschränkung nach IP ==
 
* Nur bestimmten IPs Zugriff gewähren:
 
<pre>
 
server {
 
    listen 443 ssl;
 
    server_name revproxy.it113.int;
 
 
    # TLS/SSL-Zertifikate
 
    ssl_certificate /etc/nginx/ssl/revproxy.it113.int.crt;
 
    ssl_certificate_key /etc/nginx/ssl/revproxy.it113.int.key;
 
 
    location / {
 
        allow 192.168.1.100;
 
        deny all;
 
        proxy_pass https://mail.it113.int;
 
        proxy_set_header Host $host;
 
        proxy_set_header X-Real-IP $remote_addr;
 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
    }
 
}
 
</pre>
 
 
== Fazit ==
 
* Nginx wird als Reverse Proxy für den internen Mail-Server '''mail.it113.int''' eingesetzt.
 
* Alle Verbindungen werden durch '''TLS/SSL''' abgesichert.
 
* Optional kann der Zugriff über IP-Beschränkungen gesteuert werden.
 

Aktuelle Version vom 27. März 2025, 20:03 Uhr

Webproxy mit Nginx für HTTP und HTTPS

Einführung

  • Nginx wird als Reverse Proxy für den internen Mail-Server mail.it113.int unter dem Namen revproxy.it113.int eingesetzt.
  • Alle Verbindungen werden über HTTPS gesichert, um eine sichere Kommunikation zu gewährleisten.

SElinux

Um Nginx zu erlauben, auf Netzwerkressourcen zuzugreifen muss man dies SELinux mitteilen-
  • sudo setsebool -P httpd_can_network_connect 1
  • sudo systemctl reload nginx
Bei weiteren Verstössen testen
  • sudo ausearch -m avc -ts recent


Nginx-Konfiguration

  • vi /etc/nginx/conf.d/revproxy.it113.int.conf
server {
    listen 443 ssl;
    server_name revproxy.it113.int;

    # TLS/SSL-Zertifikate
    ssl_certificate /etc/nginx/ssl/revproxy.it113.int.crt;
    ssl_certificate_key /etc/nginx/ssl/revproxy.it113.int.key;

    # Weiterleitung der Anfragen an den internen Mail-Server
    location / {
        proxy_pass https://mail.it113.int;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Nginx neu laden

  • sudo systemctl reload nginx