„Keine Route zum Host“ beim Versuch, eine Verbindung zu einem TCP-Dienst auf einer Oracle Cloud-Instanz herzustellen

„Keine Route zum Host“ beim Versuch, eine Verbindung zu einem TCP-Dienst auf einer Oracle Cloud-Instanz herzustellen

Ich habe eine Ubuntu-Instanz erstellt aufOracle Cloud-Infrastruktur (OCI). Ich kann mich mit dieser Instanz per SSH (TCP 22) verbinden. Ich habe einige Dienste auf dieser Instanz erstellt, wie daytime (TCP 13), mail (TCP 25), http (TCP 80), dns (TCP/UDP 53). Ich habe ähnliche Regeln hinzugefügt zuStandard-Sicherheitslisteauf der OCI-Verwaltungswebseite dieser Instanz ähnlich der Standard-SSH-Regel. Wenn ich jedoch versuche, eine Verbindung herzustellen zubeliebigBei diesen Diensten aus dem Internet erhalte ich No route to hosteine Fehlermeldung. Die einzige Ausnahme ist der SSH-Dienst, der problemlos funktioniert.

ufwNachdem ich diese Instanz installiert hatte , habe ich sie später deaktiviert und entfernt ufw. Danach habe ich iptablesauch das Paket entfernt. Jetzt gibt es also überhaupt keine Linux-Firewall mehr. Dieses Problem habe ich jedoch immer noch.

Dies scheint ein OCI-bezogenes Problem zu sein. Ich habe ähnliche Konfigurationen auf anderen Cloud-Plattformen (AWS, GCP usw.) ohne Probleme durchgeführt.

Wo kann ich sonst noch nachsehen, um dieses Problem zu isolieren?


Update: Iptables entfernenund Neustartdas Problem wurde gelöst. Jetzt werde ich versuchen, iptables neu zu installieren.

Antwort1

Das Problem scheint damit zusammenzuhängen, dass OCI nicht möchte, dass Sie es ufwin Ubuntu verwenden:https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw

Ich muss ufwdie Datei deaktivieren oder entfernen und bearbeiten, /etc/iptables/rules.v4wie im oben angegebenen Link beschrieben. Danach muss ich Folgendes ausführen, um die neuen Regeln zu aktivieren:

# iptables-restore </etc/iptables/rules.v4

Es scheint, dass die ufwRegeln in einer solchen Konfiguration keine Wirkung haben, und ichhabenzu verwenden iptables. Dies ist jedoch keine sehr benutzerfreundliche Möglichkeit, die Firewall-Regeln auf einem Ubuntu-Server auf der OCI-Plattform zu verwalten.

Antwort2

Ich habe dieses Problem mit Oracle Linux in der Oracle Cloud gefunden. Es hat einen vordefinierten Satz von Sperrregeln. Ich habe also erfolgreich eine Verbindung über Port 22 (SSH) hergestellt, aber beim Versuch, eine Verbindung über andere Ports herzustellen, wurde die Meldung „Keine Route zum Host“ angezeigt.
Sie müssen die Ports einzeln öffnen:

Beispiel für Docker:

firewall-cmd  --permanent --zone=public --add-port=2377/tcp
firewall-cmd  --reload

Außerdem müssen Sie eine Sicherheitsliste für das virtuelle Cloud-Netzwerk einrichten.

Antwort3

Dies sind die genauen Schritte, die bei mir funktioniert haben, basierend auf der Antwort von FedKad auf seinen ursprünglichen Beitrag …

Die folgenden zusätzlichen Schritte waren in der Oracle-Cloud erforderlich, um Ports unter Ubuntu 20 zu öffnen:

  1. sudo vim /etc/iptables/rules.v4 (oder welchen Editor Sie auch immer verwenden)

  2. Fügen Sie nach der Zeile -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPTFolgendes ein:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1234 -j ACCEPT

(Ändern Sie die Nummer des Ports, der geöffnet werden muss!)

  1. An der Shell-Eingabeaufforderung:

sudo su -

iptables-restore < /etc/iptables/rules.v4

exit

  1. Der neu eröffnete Port kann getestet werden, indem manein andererLinux-Maschine und Eingeben des Befehls:

nc -zvw100 THE_IP_ADDRESS_OF_MACHINE_WHOSE_PORT_WE_OPENED THE_PORT_NUMBER

Antwort4

Es kann im Netzwerk oder in der Linux-Instanz sein. Und wenn es in Linux ist, kann es die iptables oder der Dienst sein.

Beginnen wir mit dem letzten und da Sie E-Mail haben, versuchen Sie es auf der Linux-Box:

telnet 127.0.0.1 smtp
helo there
quit

Werden die Nachrichten 220, 250 und 221 angezeigt? Dann funktioniert Ihr E-Mail-Dienst. Wenn die Nachricht angezeigt wird Connection refused, ist Ihr Dienst nicht einsatzbereit.

Als nächstes iptables -nvLsollten Sie erfahren, ob die Ports für die Außenwelt geöffnet sind. Wenn Sie mit der Ausgabe nicht klarkommen,

service iptables stop

sollte iptables stoppen, was für einen Test akzeptabel sein könnte. Sie sagten, Sie hätten es entfernt ufw, also gehe ich davon aus sudo ufw disable, dass es nicht mehr benötigt wird.

Wenn Sie trotz deaktivierter iptables immer noch keine Verbindung herstellen können, liegt es wahrscheinlich an einer Einstellung in der Amazon-Cloud, mit der ich keine Erfahrung habe.

verwandte Informationen