jms3000
Anmeldungsdatum: 29. Januar 2015
Beiträge: 802
Wohnort: Schwetzingen
|
ich habe mehrere Rechner im gleichen LAN. Es gibt auf Maschine TWO eine Datenbankanwendung, die auf Port 9999 auf Clientanfragen lauscht. Diese Datenbankanwendung soll nicht mehrer Cients parallel bedienen, sondern jeder Client soll seine eigene Instanz haben.
Ich verbinde mich also vom Rechner ONE mit SSH auf eine Maschine TWO und aktiviere port fowarding 9999->9999. Dann starte ich auf der Maschine TWO die Anwendung, die auf Port 9999 lauscht. Dann kann ich ja über ONE:9999 dem TWO etwas schicken. Ist der offene Port 9999 auf TWO auch für andere Benutzer sichtbar oder wird der virtualisiert? Also würde man mit "telnet TWO 9999" eine verbindung bekommen oder ist das zu? Könnte ein andere Benutzer sich von Maschine THREE nach TWO verbinden und das selbe machen wie ich, auch über Port 9999, aber völlig getrennt von mir sein?
|
DJKUhpisse
Supporter, Wikiteam
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Du musst uns mehr über dein Netzwerk sage. Betriebst du einen NAT-Router?
Im Standardfall ja für IPv4, bei IPv6 wird kein NAT gemacht, ergo auch keine Portweiterleitung erforderlich. Sind denn beide PCs im gleichen Netz (z.B. beide in deinem Heimnetz hinter dem Router)?
Zeige uns mal von beiden die IP-Adressen sowie Subnetzmasken, das bekommt man mit ip a
|
jms3000
(Themenstarter)
Anmeldungsdatum: 29. Januar 2015
Beiträge: 802
Wohnort: Schwetzingen
|
DJKUhpisse schrieb: Du musst uns mehr über dein Netzwerk sage. Betriebst du einen NAT-Router?
Ich habe mein Ursprungsposting erweitert.
|
DJKUhpisse
Supporter, Wikiteam
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Leide nicht ausreichend. Sind denn beide PCs im gleichen Netz? Wenn ja, ist weder Routing noch ein Port-Forwarding notwendig, da Letzteres bei NAT gebraucht wird, wenn man von außen auf dem PC hinter dem NAT zugreifen will.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
jms3000 schrieb: ich habe mehrere Rechner im gleichen LAN. ...Ist der offene Port 9999 auf TWO auch für andere Benutzer sichtbar oder wird der virtualisiert? ..., aber völlig getrennt von mir sein?
I. d. R. ist der offene Port auch für andere Benutzer sichtbar, wenn sie absichtlich danach scannen/suchen.
Wenn es ein TCP-Port ist, dann teste mal von einem anderen Rechner (THREE) mit z. B.:
nc -zv <IP-Adresse-Rechner-TWO) 9999
(oder gleichwertig; IP-Adresse anpassen und ohne spitze Kleammern). Was genau meinst Du mit "völlig getrennt von mir sein"?
|
DJKUhpisse
Supporter, Wikiteam
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Wenn alle Rechner im gleichen LAN sind braucht es am NAT-Router keinerlei Port-Weiterleitung, die Rechner im LAN können direkt miteinander kommunizieren.
Wenn du von außen aus dem Internet durch deinen NAT-Router auf diese Zugreifen willst, dann braucht es eine Portweiterleitung.
|
jms3000
(Themenstarter)
Anmeldungsdatum: 29. Januar 2015
Beiträge: 802
Wohnort: Schwetzingen
|
Ok ich mache mal ein Beispiel. In diesem Beispiel laufen alle Rechner im gleichen LAN, es gibt keine Firewall:
Mehrere Benutzer sollen auf dem Server TWO sich anmelden können und Influxdb und Grafana starten können. Aber diese Anwendungen sollen nur für die jeweiligen Benutzer sichtbar sein. Wenn Benutzer 1 auf den Grafana-Port 3000 zugreift, soll er nur auf *sein* Grafana zugreifen, das er gestartet hat. Und Benutzer 2 soll nur *sein* Grafana auf Port 3000 sehen. Also jeder geht mit SSH rein, macht port-forwarding auf port 3000 und greift dann über localhost:3000 zu. Aber auf Maschine TWO sollte der Port 3000 für jeden Benutzer sozusagen privat sein. (Influxdb, Grafana und Port 3000 sind einfach nur Beispiele, es geht ums Prinzip)
|
DJKUhpisse
Supporter, Wikiteam
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Die Software läuft auf einem Port und dieser ist an eine IP (z.B. ::1 für den IPv6-Localhost) gebunden, nicht an einen Benutzer.
Man kann nicht gleichzeitig 2 Programme auf dem gleichen Port auf der gleichen IP lauschen lassen.
Man kann aber einem PC mehrere IP-Adressen zuordnen.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
jms3000 schrieb: Also jeder geht mit SSH rein, macht port-forwarding auf port 3000 und greift dann über localhost:3000 zu. Aber auf Maschine TWO sollte der Port 3000 für jeden Benutzer sozusagen privat sein.
Wie schon geschrieben worden ist, ist port-forwarding nicht erforderlich.
Wenn der Dienst schon mal gestartet ist und auf dem Port 3000 lauscht, muss er auch nicht ein 2.mal gestartet werden. Dass sich mehrere Benutzer verbinden können bzw. den Dienst via Port 3000 nutzen können, sollte mit Hilfe der Konfiguration dieses Dienstes geregelt/ermöglicht werden.
|
jms3000
(Themenstarter)
Anmeldungsdatum: 29. Januar 2015
Beiträge: 802
Wohnort: Schwetzingen
|
DJKUhpisse schrieb: Die Software läuft auf einem Port und dieser ist an eine IP (z.B. ::1 für den IPv6-Localhost) gebunden, nicht an einen Benutzer.
Man kann nicht gleichzeitig 2 Programme auf dem gleichen Port auf der gleichen IP lauschen lassen.
Gib es kein Tool, das diese Ports sozusagen privat macht, dass sie nur für diese Benutzersitzung gelten und nur für das SSH mit port-forwarding?
|
DJKUhpisse
Supporter, Wikiteam
Anmeldungsdatum: 18. Oktober 2016
Beiträge: 17660
Wohnort: in deinem Browser, hier auf dem Bildschirm
|
Bitte verstehe, dass du für den Fall, dass alle Rechner, die die Dienste nutzen sollen und anbieten, keine Portweiterleitung brauchen. Es ist so gedacht, dass jeder Port auf jeder IP-Adresse getrennt genutzt werden kann, z.B. ein PC hat die Adressen 192.168.0.1 und 192.168.0.2.
Dann kann man 192.168.0.1:3000 mit einem ganz anderen Dienst versehen aks 192.168.0.2:3000
Das geht auch mit dem Localhost, bei IPv4 ist das ein /8er-Netz mit 2²⁴ -2 Adressen. Sollte für dich ausreichen, wenn sich die Benutezr eh per SSH einloggen und mit dem Localhost arbeiten.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
DJKUhpisse schrieb: Man kann nicht gleichzeitig 2 Programme auf dem gleichen Port auf der gleichen IP lauschen lassen.
BTW: Indirekt, mit z. B. einem Multiplexer wäre das schon möglich:
sslh lets one accept HTTPS, SSH, OpenVPN, tinc and XMPP connections on the
same port. This makes it possible to connect to any of these servers on
port 443
|
Into_the_Pit
Ehemalige
Anmeldungsdatum: 25. Juni 2008
Beiträge: 9490
Wohnort: Bochum
|
jms3000 schrieb: Gib es kein Tool, das diese Ports sozusagen privat macht, dass sie nur für diese Benutzersitzung gelten und nur für das SSH mit port-forwarding?
Ein Port hat keinen Bezug zu einem Benutzer, sondern zu seinem Dienst. Läuft der Dienst, ist der Port offen. Du kannst also nur am Dienst selber bestimmen, ob der Port lokal auf 127.0.0.1 lauscht oder auf 0.0.0.0. Bei SSH gäbe es eine Möglichkeit, dass sich jeder Benutzer ein Forwarding/Tunneling einrichtet, was dann lokal am Client gestartet wird. So kann jeder Benutzer dann über seinen Localhost auf den Port mappen und den Dienst erreichen. Für Dein genanntes Beispiel ist das aber eher der umständliche Weg, wenn ein Dienst Mehrbenutzerfähig ist.
|
jms3000
(Themenstarter)
Anmeldungsdatum: 29. Januar 2015
Beiträge: 802
Wohnort: Schwetzingen
|
Das heisst wenn ich einen Serverdienst mit seinem Port privatisieren will gibt es keinen anderen Weg als mit Qemu oder Virtualbox eine komplette Virtuelle Maschine hochzufahren und dann den Port über SSH zu tunneln?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13938
|
jms3000 schrieb: Gib es kein Tool, das diese Ports sozusagen privat macht, dass sie nur für diese Benutzersitzung gelten ...
Lokal wäre das mit iptables (mit der user-ID) möglich. Z. B.:
:~$ nc -zv 127.0.0.1 631
Connection to 127.0.0.1 631 port [tcp/ipp] succeeded!
iptables-Regel setzen:
sudo iptables -I OUTPUT 1 -o lo -p tcp --dport 631 -m owner --uid-owner 1000 -j REJECT
:~$ nc -zv 127.0.0.1 631
nc: connect to 127.0.0.1 port 631 (tcp) failed: Connection refused
|