Aus Sicherheitsgründen sind in Google Chrome und auch im Firefox viele Ports mittlerweile gesperrt. Im Chrome-Browser wird einem der Aufruf einer Seite die einen solchen Port verwendet mit einer „ERR_UNSAFE_PORT“-Meldung verwehrt. Dadurch soll verhindert werden, dass Standard-Ports für SMTP und dergleichen missbräuchlich von einer Webseite genutzt werden und der Browser als Proxy ausgenutzt wird. Wenn nötig kann man die Ports aber auch wieder freigeben.
Einfachste Lösung um ERR_UNSAFE_PORT in Chrome zu vermeiden
Die einfachste Lösung ist es wohl Ports zu verwenden die von Google Chrome nicht blockiert werden. Sofern dies möglich ist kann man beispielsweise problemlos einen Port zwischen 6698 und 10079 verwenden.
Die Fehlermeldung kann man dadurch umgehen:
Sollte dies keine Option sein zeige ich weiter unten im Artikel noch wie man geblockte Ports auch freigeben kann.
Wozu andere Ports in Chrome verwenden?
Normalerweise werden Webseiten unter Port 80 oder 443 bereitgestellt, für interne Geschichten tauchen auch öfters vierstellige Ports wie 8080 auf. Um meine Webseiten in PHP zu entwickeln und zu testen, habe ich eine Xampp-Installation auf meinem Rechner eingerichtet, auf der ich eine Vielzahl von Webseiten laufen lasse.
Dies ermöglicht es mir, Änderungen vor der Aktualisierung auf dem Webserver zu testen. Jede Seite hat einen eigenen lokalen Port, um sicherzustellen, dass sie korrekt voneinander getrennt laufen und nicht in Unterordnern innerhalb eines Projekts liegen müssen. Die Seiten können über localhost:Portnummer oder Rechnername:Portnummer aufgerufen werden. Leider habe ich beim Einrichten einiger neuer Ports festgestellt, dass der Chrome-Browser und auch der Firefox statt der Seite eine Fehlermeldung anzeigen.
Unsichere Ports in Google Chrome – Ursache
Man kann sich ansehen welche Ports in Google Chrome von Haus aus gesperrt sind und zur „ERR_UNSAFE_PORT“-Meldung führen werden, wenn man eine Seite unter einem dieser Ports aufruft:
Port | Dienst |
---|---|
1 | tcpmux |
7 | echo |
9 | discard |
11 | systat |
13 | daytime |
15 | netstat |
17 | qotd |
19 | chargen |
20 | ftp data |
21 | ftp access |
22 | ssh |
23 | telnet |
25 | smtp |
37 | time |
42 | name |
43 | nicname |
53 | domain |
69 | tftp |
77 | priv-rjs |
79 | finger |
87 | ttylink |
95 | supdup |
101 | hostriame |
102 | iso-tsap |
103 | gppitnp |
104 | acr-nema |
109 | pop2 |
110 | pop3 |
111 | sunrpc |
113 | auth |
115 | sftp |
117 | uucp-path |
119 | nntp |
123 | NTP |
135 | loc-srv /epmap |
137 | netbios |
139 | netbios |
143 | imap2 |
161 | snmp |
179 | BGP |
389 | ldap |
427 | SLP (Also used by Apple Filing Protocol) |
465 | smtp+ssl |
512 | print / exec |
513 | login |
514 | shell |
515 | printer |
526 | tempo |
530 | courier |
531 | chat |
532 | netnews |
540 | uucp |
548 | AFP (Apple Filing Protocol) |
554 | rtsp |
556 | remotefs |
563 | nntp+ssl |
587 | smtp (rfc6409) |
601 | syslog-conn (rfc3195) |
636 | ldap+ssl |
989 | ftps-data |
990 | ftps |
993 | ldap+ssl |
995 | pop3+ssl |
1719 | h323gatestat |
1720 | h323hostcall |
1723 | pptp |
2049 | nfs |
3659 | apple-sasl / PasswordServer |
4045 | lockd |
5060 | sip |
5061 | sips |
6000 | X11 |
6566 | sane-port |
6665 | Alternate IRC [Apple addition] |
6666 | Alternate IRC [Apple addition] |
6667 | Standard IRC [Apple addition] |
6668 | Alternate IRC [Apple addition] |
6669 | Alternate IRC [Apple addition] |
6697 | IRC+TLS |
10080 | Amanda |
Dies kann man sich auch direkt im Quellcode von Google Chrome ansehen: https://chromium.googlesource.com/chromium/src.git/+/refs/heads/master/net/base/port_util.cc
Unsichere Ports in Google Chrome freigeben
Um blockierte Ports wieder freizugeben muss man die Standard-Vorgabe „überschreiben“. Hierzu nutzt man die Option „–explicitly-allowed-ports“. Dies kann man über die Command-Line oder die Verknüpfung zu Google Chrome erreichen. Eine generelle Einstellung in den Optionen in Chrome selber gibt es leider nicht.
Chrome mit unsicheren Ports über Kommandozeile starten
Die CMD kann man einfach über das Startmenü öffnen indem man „cmd“ eintippt und dann öffnet. In der Kommandozeile kann man, abhängig davon wo der Chrome installiert ist, beispielsweise den Port 95 so freigeben:
1 2 |
taskkill /IM "chrome.exe" /f "C:\Program Files\Google\Chrome\Application\chrome.exe" --explicitly-allowed-ports=95 |
Da die Einstellung trotz geschlossenem Chrome nicht griff, habe ich den Taskkill noch vorher angesetzt. Denn leider waren noch einige Chrome-Prozesse im Hintergrund offen, die über den Task-Manager geschlossen werden mussten.
Chrome mit unsicheren Ports über Verknüpfung starten
Um einen Port per Verknüpfung in Chrome zuzulassen, muss man nur in die Eigenschaften der Chrome-Verknüpfung gehen und die Zeile des Verknüpfungsziels so anpassen wie auch im vorherigen Beispiel mit der Kommandozeile gezeigt.
- Mit der rechten Maustaste auf die Chrome-Verknüpfung klicken.
- Im Kontextmenü auf Eigenschaften klicken.
- Im Eigenschaften-Fenster zur Registerkarte Verknüpfung wechseln.
- Am Ende der Zeile Ziel die Option hinzufügen: –explicitly-allowed-ports=95
- Die Änderungen speichern.
Danach kann über die Verknüpfung der Chrome mit den definierten unsicheren Ports genutzt werden. Allerdings muss man auch hier darauf achten, dass keine chrome.exe mehr geöffnet ist. Ansonsten wird die Änderung leider nicht übernommen!
Wenn alles geklappt hat und der Chrome-Browser wirklich neu gestartet ist, kann man die Seite unter dem sonst blockierten Port aufrufen und bekommt keine ERR_UNSAFE_PORT-Meldung mehr angezeigt:
Wer Webseiten entwickelt sollte diese auch in verschiedenen Browsern testen. In Firefox und Chrome sind die Ports auch gesperrt. Wie man in Firefox weitere Ports freigibt erfährt man hier. Wie man es in Chrome freigibt erfährst du hier.