Warum kommen die Fehlermeldungen?
Ich habe einen Minecraft Server, vor kurzen öffentlich gemacht und deswegen die Firewall auf dem Server sehr viel blockierend konfiguriert, vermutlich zu viel.
Also; Wenn ich meinen Minecraft Server starte kommt diese Fehlermeldung in der Konsole (verwalte ihn mit pufferpanel):
[11:40:29 ERROR]: Failed to request yggdrasil public key com.mojang.authlib.exceptions.MinecraftClientException: Failed to read from https://api.minecraftservices.com/publickeys due to api.minecraftservices.com at com.mojang.authlib.minecraft.client.MinecraftClient.readInputStream(MinecraftClient.java:108) ~[authlib-6.0.54.jar:?] at com.mojang.authlib.minecraft.client.MinecraftClient.get(MinecraftClient.java:57) ~[authlib-6.0.54.jar:?] at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo.fetch(YggdrasilServicesKeyInfo.java:114) ~[authlib-6.0.54.jar:?] at com.mojang.authlib.yggdrasil.YggdrasilServicesKeyInfo$1.run(YggdrasilServicesKeyInfo.java:89) ~[authlib-6.0.54.jar:?] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?] at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?] Caused by: java.net.UnknownHostException: api.minecraftservices.com at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567) ~[?:?] at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?] at java.base/java.net.Socket.connect(Socket.java:751) ~[?:?] at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304) ~[?:?] at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[?:?] at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531) ~[?:?] at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636) ~[?:?] at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) ~[?:?] at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:377) ~[?:?] at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193) ~[?:?] at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1282) ~[?:?] at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1123) ~[?:?] at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179) ~[?:?] at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1675) ~[?:?] at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1599) ~[?:?] at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:531) ~[?:?] at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:307) ~[?:?] at com.mojang.authlib.minecraft.client.MinecraftClient.readInputStream(MinecraftClient.java:84) ~[authlib-6.0.54.jar:?] ... 9 more
Das gleiche gilt auch wenn ich etwas versuche herunter zu laden oder ganz simple: sudo apt get update ausführe -> ebenfalls ein Error.
Ich vermute es liegt an der Firewall, denn da habe ich nur einen port für ssh, 8080 für das pufferpanel und 25565 für den Minecraft Server geöffnet (alle tcp)also müsste ich jetzt:
sudo ufw allow out on eth0 to any port 80,443 proto tcp
machen also port 80 für HTTP und 443 für HTTPS oder liege ich da falsch? und wenn ich diese öffne dann sollte mein problem doch behoben sein oder?
Falls jemand sonst noch Verbesserungs Tipps bezüglich der Sicherheit hat, wäre ich auch sehr dankbar ebenfalls um ein Feedback ob das Sicherheitstechnisch schon in Ordnung ist so.
Testweise könnte ich doch auch die Firewall kurz deaktivieren und den Minecraft Server dann starten oder etwas herunterladen und wenn es funktioniert liegt das Problem an der Firewall.
Falls der oben genannte Befehl nicht die Lösung ist was wäre dann die Lösung?
LG
Xevex
2 Antworten
du musst tcp Verbindungen ausgehend auf die Ports erlauben, ja.
und eingehend musst du Verbindungen mit dem Status ESTABLISHED,RELATED erlauben, falls die ufw das nicht alleine macht, mit ufw kenne ich mich nicht so genau aus.
die genaue Syntax müsste ich auch erst in der Doku nachschlagen. inhaltlich klingt es richtig.
Du blockierst anscheinend alle ausgehenden Verbindungen.
Zumindest TCP mit Destination Port 443 (HTTPS) solltest du zulassen. Filterregeln für ausgehenden Traffic sind nur sinnvoll, um die Exfiltration von Daten durch einen Angreifer, der bereits (begrenzten) Zugriff auf deinen Server hat, zu verhindern. Wenn du also nicht eine Liste mit erlaubten Destination IP Adressen pflegen möchtest, kannst du eigentlich auch gleich alle ausgehenden Verbindungen erlauben.
Vielen Dank für die Antwort!
Ja klar werde einfach alle ausgehenden Verbindungen erlauben ich hoffe mal ein Angreifer wird nie soweit kommen :p
Also dann würde:
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp
Das Problem lösen statt meinem befehl (sudo ufw allow out on eth0 to any port 80,443 proto tcp) oder macht das mehr oder weniger das gleiche?
Ich kenne mich nicht mit ufw Befehlen aus. Die Syntax sollte aber in der man page beschrieben sein.
Vielen Dank für die Antwort. Also ist der befehl sudo ufw allow out on eth0 to any port 80,443 proto tcp
richtig? oder wie wären dann die befehle dafür?