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 host
eine Fehlermeldung. Die einzige Ausnahme ist der SSH-Dienst, der problemlos funktioniert.
ufw
Nachdem ich diese Instanz installiert hatte , habe ich sie später deaktiviert und entfernt ufw
. Danach habe ich iptables
auch 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 ufw
in Ubuntu verwenden:https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw
Ich muss ufw
die Datei deaktivieren oder entfernen und bearbeiten, /etc/iptables/rules.v4
wie 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 ufw
Regeln 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:
sudo vim /etc/iptables/rules.v4
(oder welchen Editor Sie auch immer verwenden)Fügen Sie nach der Zeile
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
Folgendes 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!)
- An der Shell-Eingabeaufforderung:
sudo su -
iptables-restore < /etc/iptables/rules.v4
exit
- 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 -nvL
sollten 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.