Warum kann ich mit diesen Firewall-Regeln kein SSH verwenden?

Warum kann ich mit diesen Firewall-Regeln kein SSH verwenden?

Ich versuche derzeit, über SSH auf meinem Windows 10-Host eine Verbindung zu meinem Linux Mint-Gast herzustellen. Genauer gesagt versuche ich, unter Berücksichtigung bestimmter Firewall-Regeln eine erfolgreiche Verbindung zum Gast herzustellen.

Mithilfe von Virtual Box habe ich einen Host-Only-Adapter für die virtuelle Linux Mint-Maschine aktiviert.

Wenn ich mit dieser speziellen „Alles zulassen“-Regel jeglichen Datenverkehr über Port 22 durch die Firewall zulasse, kann ich von meinem Windows-Host aus per SSH erfolgreich eine Verbindung zum Gastcomputer herstellen.

Ich möchte jedoch, dass der Linux-GastnurakzeptierenMeinIP für SSH. Mit anderen Worten, ich möchte, dass meine IP nur für Port 22 akzeptiert wird (falls das Sinn macht).

Ich habe die Linux-Firewall mit diesen Regeln konfiguriert undkonnte nichtdann nach erfolgreicher Verbindung:

GUEST IP 22/tcp ALLOW IN HOST IP 22/tcp

HOST IP 22/tcp ALLOW OUT GUEST IP 22/tcp

Hinweis: Die Begriffe „GUEST IP“ und „HOST IP“ sind im Kontext einfache Platzhalter für die assoziative IP-Adresse. In diesem Fall ist GUEST IP die IP-Adresse des Host-Only-Adapters von der eth1-Schnittstelle. Selbstverständlich stellt HOST IP die Host-IP-Adresse dar, die auf meinem Windows 10-Host gefunden wurde.

Ich habe getan, was ich konnte, damit es funktioniert, aber ich weiß ehrlich gesagt nicht, wie ich im Moment das bekomme, was ich verlange.

Mein aktuelles Setup:

  • Windows 10 (Host) mit MobaXtrem SSH-Client und FreeSSHd SSH-Server
  • Linux Mint 17 (Gast) mit OpenSSH-Client und -Server
  • Habe die Windows-Firewall überhaupt nicht berührt
  • Derzeit ist die Linux-Firewall auf Drop eingestellt, aber in den genannten Regeln hinzugefügt

Ich möchte mitteilen, dass meine Erfahrung mit Linux/Unix-basierten Systemensehreingeschränkt, da es die Verwendung von Shells, SSH und die Konfiguration von Firewalls betrifft.

Ich habe die erwähnte SSH-Software buchstäblich erst vor einem Tag installiert.

Kurz zusammengefasst:Ich möchte, dass mein Linux-Gast so konfiguriert ist, dass er nur SSH-Verkehr von meinem Host-Computer akzeptiert. Ich gehe davon aus, dass dies über IP erfolgt, bin mir aber nicht sicher, wie das geht. Nachdem ich dem Linux-Gast die oben genannten Firewall-Regeln hinzugefügt hatte, war die Verbindung nicht mehr erfolgreich und jeder Versuch wurde mit einer Zeitüberschreitung beendet.

Zusätzliche Information: - Ich habe hier in der Gegend Leute gesehen, die Portweiterleitung erwähnen; ich habe es versucht, es hat nicht funktioniert. Da ich es mit dem Host-Only-Adapter zum Laufen gebracht habe, dachte ich, es würde auch ohne diese Lösung funktionieren.

Nebenbei, ist es überhaupt möglich, über meinen Linux-Gast per SSH eine Verbindung zu meinem Windows-Host herzustellen? Ich habe es von meinem Linux-Terminal aus versucht, aber es wurde immer wieder angezeigt, dass ich keine Berechtigung dazu habe.

Wenn Sie Erläuterungen oder zusätzliche Informationen benötigen, fragen Sie bitte einfach.

Dank im Voraus!

— TRG

Antwort1

TCP-Verbindungen haben zwei Ports, Quelle und Ziel. Bei ausgehenden SSH-Verbindungen ist der Zielport 22, aber der Quellport istzufällig ausgewählt. (Nur sehr wenige Protokolle, z. B. BGP, verwenden identische Quell- und Zielports.)

Daher müssten Sie die Regeln lockern, um:

allow incoming from hostIP (any)/tcp to guestIP 22/tcp
allow outgoing from guestIP 22/tcp to hostIP (any)/tcp

Wenn Sie besorgt sind über dieGastWenn Sie eine Verbindung zum Host herstellen, können Sie die zweite Regel entfernen, solange Sie einenStaatsbürgerlichFirewall (die ausgehende Pakete einer bestehenden Verbindung zulassen würde).

In iptables würde ein funktionierender Regelsatz wie folgt aussehen:

-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT

# (Well, *I think* this should work.)
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j REJECT

(Enthielt "ICMP zulassen", weilEhrlich)

verwandte Informationen