Iptables funktioniert nicht

0

Hallo, in virtualbox habe ich Debian 8 und meine Webanwendung installiert, die auf Port 8000 läuft. Virtualbox Netzwerk Ich habe in den Netzwerkeinstellungen einen Bridged Adapter und kann dort über ssh von meinem Computer aus eine Verbindung herstellen. Virtualbox haben IP-Adresse: 192.168.88.65 Mein Computer hat die IP-Adresse: 192.168.88.51 Es ist an einem Ort.

Ich möchte von meinem Computer über Port 8000 auf meine Web-App zugreifen können. Aber wenn ich nmap auf meinem Computer starte, sehe ich nur diese Ports:

Nmap scan report for test (192.168.88.65)
Host is up (0.0023s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
3306/tcp open  mysql

aber in virtualbox computer ist es:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 996 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
111/tcp  open  rpcbind
3306/tcp open  mysql
8000/tcp open  http-alt

Wie kann ich den Port 8000 von meinem Computer aus sehen?

Ich versuche, diese Befehle in virtualbox auszuführen, aber es funktioniert nicht:

root @ debian /root ### iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
root @ debian /root ### iptables-save

# Generated by iptables-save v1.4.21 on Mon Mar  6 10:11:58 2017
*filter
:INPUT ACCEPT [57:123601]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [44:124193]
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
COMMIT
# Completed on Mon Mar  6 10:11:58 2017
Applemann
quelle
Bitte geben Sie die Ausgabe von netstat -tlpn.
Daniel B

Antworten:

0

Das iptables Regeln, die Sie eingefügt haben, sind redundant, da sie die Ausgabe Ihrer iptables-save Befehl zeigt, die INPUT Politik ist ACCEPTDaher wird jede Verbindung zugelassen.

Ich könnte mich irren, aber mein Verdacht ist, dass Sie einen Bridged-Adapter verwenden, der den Firewall-Regeln auf Ihrem Host-Computer unterliegt und es Ihnen nicht ermöglicht, Ihren Zielport zu erreichen.

Sofern Sie nicht unbedingt einen Bridged-Adapter in Ihrer VM benötigen, würde ich empfehlen, auf NAT zu wechseln und einfach die Port-Weiterleitungsfunktion von VirtualBox zu verwenden.

Unter Settings > Network > Adapter 1

Ändern Sie das Feld "Attached To" in NAT.

Klicken Sie unter "Erweitert" auf die Schaltfläche "Portweiterleitung" und fügen Sie einen Eintrag hinzu:

Name: http (or any name you want)
Protocol: TCP
Host IP: (blank)
Host Port: 8888 (or any port you want)
Guest IP: (blank)
Guest Port: 8000 (match your web app port)

Sie können dann Ihre VM (Gast) starten und dann von Ihrem Host-Computer aus einen Browser öffnen und auf Ihre Web-App zugreifen, indem Sie zum unten angegebenen Endpunkt gehen (und einen beliebigen Pfad anhängen).

localhost:8888

Wenn Ihr Hostcomputer auf UNIX basiert, können Sie der Einfachheit halber eine Zeile hinzufügen /etc/hosts so was:

127.0.0.1 myapp.com

Dann können Sie verwenden:

myapp.com:8888

diametralpitch
quelle