Skip to content

Commit b9c2369

Browse files
author
Luis Herr
committed
small refactor
1 parent bed5a12 commit b9c2369

1 file changed

Lines changed: 39 additions & 32 deletions

File tree

docs/30_theorie.md

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@
33
## Anwendungsbereiche für Teilempfehlungenen
44

55
### IPv6 Adresse für jeden Service einzeln
6-
Wenn man jeden Server mit einer separaten Adresse (in unserem Fall IPv6, da wir kein IPv4 Netz besitzen) versorgt, so kann man direkt auf OSI Layer 3 Schicht nachvollziehen auf welchem Service die Request kam. Falls diese Request eine bösartige ist, kann man sehr gut einen Service gezielt ausschalten bzw. schnell die IP Adresse für diesen Service ändern.
7-
Wenn man für alle Services eine IP Adresse verwenden würde, so könnte man frühestens auf Layer 5 (TLS/SNI) nachvollziehen auf welcher Applikation die Request kam. Alternativ auch auf Layer 7, aber dies sollte nicht der Anspruch sein und wäre auch zu viel Aufwand alle Application Logs nach einer IP Adresse zu durchsuchen.
8-
9-
6+
Wenn man jeden Nginx reverse Proxy mit einer separaten Adresse (in unserem Fall IPv6, da wir kein IPv4 Netz besitzen)
7+
versorgt, so kann man direkt auf OSI Layer 3 nachvollziehen auf welchem Service die Request kam. Wenn man für alle
8+
Services eine IP-Adresse verwenden würde, so könnte man frühestens auf Layer 5 (TLS/SNI) nachvollziehen auf welcher
9+
Applikation die Request kam. Alternativ auch auf Layer 7, aber dies sollte nicht der Anspruch sein und wäre auch zu viel
10+
Aufwand alle Application Logs nach einer IP-Adresse zu durchsuchen.
1011

1112
### Wofür benötigt man einen IPv4 -> IPv6 Proxy?
1213
#### Use Case 1 - Virtualisierung mit nur einer IPv4 Adresse
13-
Wenn man sich jetzt vorstellt, dass wir einen Server haben, auf dem zwei virtuelle Maschinen laufen auf welche jeweils ein Webserver laufen soll, muss man sich fragen wie man damit umgeht.
14-
1. Wir können uns für einen der Webserver entscheiden
14+
Wenn man sich jetzt vorstellt, dass man einen Server hat, welcher zwei virtuelle Maschinen betreibt auf denen jeweils
15+
zwei Webserver laufen, so muss man sich fragen wie man damit umgeht.
16+
17+
1. Entscheiden für einen Webserver
1518
2. Aufsetzen eines zentralen reverse Proxies
1619
3. IPv4 -> IPv6 Proxy
1720

@@ -21,9 +24,9 @@ Wenn man sich jetzt vorstellt, dass wir einen Server haben, auf dem zwei virtuel
2124
=== "Aufsetzen eines zentralen reverse Proxies"
2225
- Pro:
2326
- Beide VMs können exposed werden
24-
- zentralisierter Aufruf auf einen reverse Proxy
25-
- Cons:
26-
- langsamere Laufzeit durch mehre Proxys (Die Proxys auf den VMs brauchen wir ja immer noch)
27+
- Zentralisierter Aufruf auf einen reverse Proxy
28+
- Contra:
29+
- langsamere Laufzeit durch mehre Proxys (Die Proxys auf den VMs brauchen man ja dennoch)
2730
- SPOF (Single point of failure) - Wenn der erste reverse Proxy nicht mehr funktioniert, kann auf kein Service mehr zugegriffen werden
2831
- Vermehrter Debugging Aufwand durch mehrere Verbindungsstellen
2932
- Aufwendigere Konfiguration (spezifische Header Einstellungen (Real-IP Forwarded-For))
@@ -33,8 +36,8 @@ Wenn man sich jetzt vorstellt, dass wir einen Server haben, auf dem zwei virtuel
3336
- Für IPv6 geringere Laufzeit (veraltetes IPv4 Protokoll)
3437
- Reverse Proxies der VMs sind direkt im Internet
3538
- dadurch keine Header Konfiguration nötig
36-
- Falls der zentrale IPv4 Proxy ist der Service immer noch erreichbar
37-
- Contra
39+
- Falls der zentrale IPv4 Proxy nicht mehr funktioniert, so ist der Service immer noch über IPv6 erreichbar
40+
- Contra:
3841
- Uns keine bekannt, falls euch welche einfallen, bitten wir um einen Pull Request
3942

4043

@@ -49,7 +52,7 @@ Dieser einfache IPv4-to-IPv6 Proxy unterstützt in seiner ersten Version ledigli
4952
Verbindungen auf Port 443. Eine Anpassung dieser Konfiguration um einige anderen Protokolle (SMTPs, IMAPs, POP3s) welche
5053
TLS verwenden zu unterstützten ist denkbar.
5154

52-
Aus Gründen der Vollständigkeit hier einmal die nginx Konfiguration für den Proxy für Alpine Linux. Die Einrichtung ist
55+
Aus Gründen der Vollständigkeit hier einmal die Nginx Konfiguration für den Proxy für Alpine Linux. Die Einrichtung ist
5356
denkbar einfach: nginx installieren, die untenstehende Konfiguration kopieren und den Proxy starten:
5457

5558
```nginx
@@ -102,31 +105,35 @@ stream {
102105

103106
### Vergleich der Proxy Möglichkeiten
104107

105-
# TODO: Is this Diagram needed?
106-
# ![Schaubild](../img/schaubild_cloudflare-vs-transparent-proxy.png){: loading=lazy }
108+
![Schaubild](../img/schaubild_cloudflare-vs-transparent-proxy.png){: loading=lazy }
109+
110+
Aus unserer Sicht ergibt die Verwendung eines eigenen vorgeschalteten Proxies nur Sinn, wenn mehr als ein Server
111+
administriert wird und die Web-Server über IPv6 Adressen nach außen bereitstellt werden.
112+
113+
Wird lediglich ein System betreut (wie z.B. der oben erwähnte Cloudserver), kann die zugewiesene IPv4 Adresse natürlich
114+
ebenfalls auf den Ports 80 und 443 verwendet werden und dann auf den Reverse Proxy zeigen. Dadurch entfällt die
115+
Abhängigkeit zu anderen Systemen.
116+
117+
Sofern der Cloudserver über keine eigene IPv4 Adresse oder keine eigenen IPv6 Adressen verfügt, sollte ein Proxy
118+
vorgeschaltet werden, um den Nutzern, die keine IPv4/IPv6 Adresse verfügen, den Zugriff zu ermöglichen.
119+
120+
[//]: # (TODO: Cloudflare soll raus, oder?!)
121+
[//]: # ()
122+
[//]: # (Wird Cloudflare Proxy verwendet erkauft man sich neben der Erreichbarkeit diverse Vorteile (DDoS Protection,)
123+
124+
[//]: # ([Web Application Firewall](https://developers.cloudflare.com/waf/managed-rules/),)
125+
126+
[//]: # ([Page Rules](https://www.cloudflare.com/features-page-rules/)).)
107127

108-
Aus meiner Sicht ergibt die Verwendung eines eigenen vorgeschaltenen Proxies nur Sinn, wenn mehr als ein
109-
Server administriert wird und die Web-Server über IPv6 Adressen exposiert bereitstellt werden.
128+
[//]: # (Jedoch sollte man einige Details beachten, bevor man sich auf Cloudflare festlegt.)
110129

111-
Wird lediglich ein System betreut (wie z.B. der oben erwähnte Cloudserver), kann die zugewiesene IPv4
112-
Adresse natürlich ebenfalls auf den Ports 80 und 443 verwendet werden und dann auf den Reverse Proxy
113-
zeigen. Dadurch entfällt die Abhängigkeit zu anderen Systemen.
130+
[//]: # (Der Datenverkehr der Nutzer liegt bei Cloudflare unverschlüsselt vor, da diese die)
114131

115-
Sofern der Cloudserver über keine eigene IPv4 Adresse oder keine
116-
eigenen IPv6 Adressen verfügt, sollte ein Proxy vorgeschaltet werden,
117-
um den Nutzern, die keine IPv4/IPv6 Adresse verfügen den Zugriff zu
118-
ermöglichen.
132+
[//]: # (TLS Pakete terminieren. In der kostenfreien Version von Cloudflare Proxy können)
119133

120-
Wird Cloudflare Proxy verwendet erkauft man sich neben der Erreichbarkeit
121-
diverse Vorteile (DDoS Protection,
122-
[Web Application Firewall](https://developers.cloudflare.com/waf/managed-rules/),
123-
[Page Rules](https://www.cloudflare.com/features-page-rules/)).
134+
[//]: # (des Weiteren keine gestackten Subdomains (`sub.sub.domain.de`) eingerichtet werden,)
124135

125-
Jedoch sollte man einige Details beachten, bevor man sich auf Cloudflare festlegt.
126-
Der Datenverkehr der Nutzer liegt bei Cloudflare unverschlüsselt vor, da diese die
127-
TLS Pakete terminieren. In der kostenfreien Version von Cloudflare Proxy können
128-
des Weiteren keine gestackten Subdomains (`sub.sub.domain.de`) eingerichtet werden,
129-
da dafür kein TLS Zertifikat angefordert werden kann.
136+
[//]: # (da dafür kein TLS Zertifikat angefordert werden kann.)
130137

131138

132139

0 commit comments

Comments
 (0)