PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

Port-Fetischismus oder dirty Games mit Ports

Haach, wie herrlich kann bloggen sein! Grad läuft’s mal wieder: Ein Kommentar zum letzten Artikel bringt mich auf eine Idee zum Nächsten. Ihr habt’s bestimmt schon bemerkt - ich versuche mich immer mal wieder in schönen unsachlichen Ausdrucksweisen, die trotzdem die Sache auf den Punkt bringen. Oder auch nicht. Naja. Aber weiter im Text:

Was könnte man nur mit Port-Fetischismus meinen? Ich liebe Code-Usability. Ein super Thema, über das ich ja schon öfter referiert habe. Es ist so schön wie zeitlos… Was dabei bis lang unter den Tisch gefallen ist, sind lesbare URLs (Vielleicht mal in einem anderen Artikel) und Portangaben. Also schöne Portangaben.

Nur so zur Erinnerung: http://www.phpblogger.net:80/ ist eine Möglichkeit, einen Port zu erzwingen. Klar, das Du das schon wusstest. Welcher Port macht denn im Browser noch Sinn? Naja 443 für SSL zum Beispiel. Aber statt das zu erzwingen, wird einfach das Protokoll auf HTTPS geändert, was implizit auf Port 443 verweist.

Um das klar zustellen: Schöne Portangaben, sind nicht vorhandene Portangaben. Aber wie ein aufmerksamer Leser im Artikel zu HTTPS und SSL richtig angemerkt hat, kann man über verschiedene Ports unter ein und derselben IP mehrere SSL-Zertifikate betreiben. Und jetzt geht es mit den dreckigen Spielchen weiter, die man mit Portangaben in der URL machen kann:

Natürlich gibt es sinnvolle Möglichkeiten, die das Web-Protokoll erlaubt, um Webseiten abzurufen und Web-Applikationen anzusteuern:

  • Mehrere SSL-Zertifikate über eine einzige IP betreiben
  • Den PHP-Interpreter switchen (z.B. Port 80 = PHP 5, Port 8080 = PHP 4)
  • Den Webroot wechseln
  • Allgemein die Webserver-Konfiguration switchen (z.B. zwischen Entwicklungs- und Live-Modus einer Web-Applikation umschalten)
  • Mehrere Webserver gleichzeitig betreiben
  • Prinzipiell eine andere Server-Applikation oder einen Webservice ansteuern
  • Durch einen Reverse-Proxy einen Blackbox-Server in einer DMZ ansprechen

Okay, wer es gemerkt hat, wurde eigentlich in allen Fällen die Serverconfig geswitched. Ich wollte aber ja eigentlich auch nur die Vielzahl an Möglichkeiten aufzeigen, die es unter Umständen rechtfertigen, mit Port-basierten zu arbeiten.

Wie bereits erwähnt - ich finde Port-Angaben in der URL grundsätzlich hässlich. In den meisten Fällen kann man alles, was über Port-Basierte-VirtualHosts gelöst wird, auch mit Subdomains lösen. Im Falle eines SSL-Betriebes müsste natürlich unter Umständen auf eine separate IP-Adresse in Verbindung mit einem Zertifikat zurückgegriffen werden.

Aber auch dort gibt es die Möglichkeit mit kostenlosen selbst ausgestellten Zertifikaten zu arbeiten und eine zusätzliche IP ist im lokalen Netz auch schnell und kostenlos organisiert. Sogar eine einzige Netzwerkkarte kann mit verschiedenen IPs betrieben werden, falls kein weiterer freier Netzwerkport zur Verfügung steht.

Du stehst trotzdem auf “dreckige Spielchen” mit Ports? Sinn macht die Verwendung von unterschiedlichen Ports aus meiner Sicht vor allem auf Staging- oder Entwicklungs-Servern.

Aber auch um seine Applikation besonders abzusichern, kann man mit verschiedenen Ports oder Subdomains arbeiten. Sicherheit ergibt sich dadurch, das eine eventuelle Admin-Oberfläche nur auf solchen besonderen Vhosts zur Verfügung steht oder gleichzeitig noch eine IP-Sperre eingebaut ist.

Auch die Applikation kann mit Hilfe von $_SERVER["SERVER_PORT"] auf einen anderen Port reagieren, Deiner Phantasie sind keine Grenzen gesetzt - ob das dann schön oder praktisch ist, ist eine andere Frage ;)

Fazit

Mit portbasierten Vhosts sind schöne Spielereien möglich. Ich würde solche Dinge allerdings nur auf Entwicklungs- oder Stagingservern umsetzen. Maschinen im Livebetrieb freuen sich über die Verwendung von Subdomains.

Ähnliche Artikel:

  1. SSH Server absichern: Port-Salat
  2. Wissenswertes über SSL und HTTPS

David meint dazu:

17. Dezember 2009 um 14:08

Endlich bloggst du wieder, dachte schon der Blog ist tot. Würde mich freuen wenn du wieder Codebeispiele einpflegen könntest oder z.B. wie man am besten IP’s (bitte mit IPv6) in einer Datenbank speichert.

Kevin meint dazu:

18. Dezember 2009 um 23:16

Eine der besonders häufig anzutreffenden Verwendungen “im freien” ist sicher die Nutzung von Admin Oberflächen wie Plex u.ä. auf höheren Ports.

Wieso man das nicht auf Live Maschinen nutzen sollte wird mir nicht so ganz klar. Mit der Verwendung von Ports lassen sich doch ganz andere Szenarien umsetzen als über Subdomains.

timi meint dazu:

22. Dezember 2009 um 10:09

@Kevin: Rein technisch gesehen gibt es in Bezug auf Web-Anwendungen zwischen Ports und Subdomains eigentlich kaum Unterschiede - Beide Angaben können genutzt werden um in Applikationen Zustände bzw. Konfigurationen frei- oder umzuschalten.

Der große Vorteil von Ports ist natürlich, das das ein Systemweiter Standard ist und sich auch andere Server-Applikationen aufschalten lassen, die nicht unbedingt an die Webserver-Konfiguration gekoppelt sind. Aber gerade Fremd-Applikationen die übliche Ports verwenden (wie Plesk), können nicht unerhebliche Sicherheitsrisiken birgen, dazu kannst Du Dir mal den Artikel zu Port-Salat durchlesen: http://www.phpblogger.net/2009/02/06/ssh-server-absichern-port-salat/

Im Artikel ging es ganz konkret um URL-Ästhetik im weiten Sinne. Und Ports fallen da meiner Meinung nach unangenehm auf (meine persönliche Ansicht) - darüber sollte man nicht streiten, aber eine Diskussion schadet ja nie ;) Auch ich lerne sehr gerne dazu…

Im Übrigen kann man auch “Port-Applikationen”, die nicht vom Webserver gehostet werden über einen Reverse-Proxy und eine Subdomain ziemlich schick tunneln.

PS: Prinzipiell finde ich Oberflächen zur Webserver-Konfiguration ziemlich mühsam: Nie wird das ganze Leistungs-Spektrum abgedeckt und schneller (ebenso wie sicherer) ist es über die Shell zu konfigurieren. Die Gefahr bei Oberflächen ist halt immer, das Sie nicht auf dem aktuellen Sicherheitslevel sind und/oder von N00bs bedient werden, die nicht wissen, was sie tun. Das ist gerade bei Live-Maschinen ein riesen Problem.

Thorsten meint dazu:

21. Februar 2010 um 17:37

sehr interessant! Vielen Dank für die Informationen

Lotje meint dazu:

24. Februar 2010 um 21:47

hallo! Vielen Dank für die interessanten Artikel! Ich will einen Blog zu den Favoriten hinzufügen!

Mika meint dazu:

27. Februar 2010 um 22:12

Eine sehr interessante Angelegenheit, die mir so noch gar nicht bewusst war. Aber ich kann Dir nur zustimmen - als Portangabe direkt in der URL ist es wirklich nicht schön. Ich glaube auch nicht, dass das so akzeptiert wird.

Andreas meint dazu:

13. März 2010 um 15:25

Mir sind bisher noch nirgends Portangaben in der URL aufgefallen, und ich habe sie auch nicht verwendet. Ich finde bei SSL-Verschlüsselungen auch die Variante mit dem https:// besser, vor allem, da diese auch den meisten Usern bekannt ist, die sich nicht sonderlich gut mit Webprogrammierung auskennen. Diese können so leicht erkennen, dass sie sich auf einer sicheren Seite befinden, was bei der Portangabe zumindest bei Laien nicht der Fall sein dürfte.

Alejandro meint dazu:

23. Juli 2010 um 14:27

Ja ich finde die Informationen die dieser Text enthält auch sehr hilfreich.
Vielen Dank!

php gamer meint dazu:

9. November 2010 um 20:33

Das war ja mal ein Super Blog, viele Deiner alten Artikel sind sehr Interessant. Hast Du vor bei Zeiten wieder zu bloggen? Würde mich freuen :)

Lr4You meint dazu:

20. Januar 2011 um 19:17

Wirklich toller Beitrag, aber ich denke auch als Portangabe direkt in der URL ist es wirklich nicht schön. Kann dir also nur zustimmen.

Christian meint dazu:

15. Februar 2011 um 10:33

Guter Blog hier und gute Artikel schreibst du auch. Lob an dich. Die Texte sind wirklich hilfreich und informativ. Wenn der Blog auf dem Laufenden bleibt und immer mal wieder aktualisiert wird, schaue ich öfter vorbei.

reifrund meint dazu:

18. Februar 2011 um 01:11

Ja, ich kann meinem Vorredner nur zustimmen. Ich werde auch noch öfter vorbei schauen. Mach einfach so weiter … ;-)

tet meint dazu:

1. April 2011 um 18:18

estest

Gina meint dazu:

4. April 2011 um 08:42

Leider verstehe ich noch nciht allzu viel von der Materie, aber ich denke, es könnte sehr interessant werden, sich die Tipps hier genauer anzusehen. Danke dafür!

Kevin meint dazu:

13. Mai 2011 um 16:00

Prinzipiell finde ich Oberflächen zur Webserver-Konfiguration ziemlich mühsam: Nie wird das ganze Leistungs-Spektrum abgedeckt und schneller (ebenso wie sicherer) ist es über die Shell zu konfigurieren. Die Gefahr bei Oberflächen ist halt immer, das Sie nicht auf dem aktuellen Sicherheitslevel sind und/oder von N00bs bedient werden, die nicht wissen, was sie tun. Das ist gerade bei Live-Maschinen ein riesen Problem.

medion meint dazu:

14. Juni 2011 um 09:05

sehr interessant! Vielen Dank für die Informationen

GodsBoss meint dazu:

11. Juli 2011 um 10:12

Beliebige Ports zu verwenden, kann manchmal zu Problemen führen. Z.B. sind bei uns in der Firma nach außen grundsätzlich alle Ports gesperrt und nur einige freigegeben. Das führte schon mehrfach dazu, dass Dinge erst später erledigt werden konnten, weil auch sowas wie SSH oder der oben genannte Plesk-Port gesperrt waren und erst freigeschaltet werden mussten.

Wenn eine Webseite auf Port 215 lauschen würde (als Beispiel), könnte ich sie nicht aufrufen (aus der Firma).

Max meint dazu:

23. Oktober 2011 um 19:11

Auch viele Standard-Firewalls für den täglichen Benutzer sehen es gar nicht so gern, wenn mit den Ports rumgepfuscht wird. Insofern sollte es wirklich nur in der Entwicklungsumgebung exzessiv genutzt werden, für den großen Markt halte ich es für zu riskant.

Mark meint dazu:

17. Januar 2012 um 09:29

Man kann sich da schon wirklich verkünsteln. Trotzdem kann es kaum schaden, sich mal mit Ports und deren Bedeutung auseinanderzusetzen.

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung