rinetd
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.10 Kinetic Kudu
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
rinetd ist ein zustandsloser -Umleiter für TCP- und UDP-Verbindungen, nicht zu verwechseln mit dem Internet-Superserver rlinetd. Er übersetzt die Adressen nicht direkt, sondern es wird eine TCP-Verbindung vom Anfrager zum rinetd-Server aufgebaut. Anschließend wird vom rinetd zum Ziel eine weitere TCP-Verbindung aufgebaut. Der Inhalt der TCP-Verbindung (z.B. Telnet oder HTTP) wird dann vom Anfrager zum Ziel über den rinet transportiert. Das Ziel bekommt weder Portnummer noch IP-Adresse vom Anfrager mit, da sowohl Quell- und Ziel-IP als auch Quell- und Zielport von rinetd übersetzt werden.
Installation¶
Folgendes Paket muss installiert werden:
rinetd (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install rinetd
Oder mit apturl installieren, Link: apt://rinetd
Konfiguration¶
Die Datei /etc/rinetd.conf muss mit root-Rechten geändert werden. In diesem Beispiel wird alles, was an 10.0.0.234:23 gerichtet ist, an 10.0.0.254:23 umgeleitet. Die Quelladresse ist die IP des rinetd-Servers, der Quell-Port ist zufällig. In der zweiten Zeile wird alles, was an 10.0.0.234:222 gerichtet ist, an 10.1.0.254:22 umgeleitet. In der dritten Zeile wird ein Hostnamen statt einer IP-Adresse verwendet. IPv6 funktioniert ab Ubuntu 22.10 ebenfalls, auch eine Umleitung von IPv4 nach IPv6 oder umgekehrt ist problemlos möglich. Die Nutzung von link-local mit Angabe einer Schnittstelle (fe80:abcd::123%etho) ist aktuell nicht möglich. UDP kann ebenfalls ab Ubuntu 22.10 verwendet werden.
#IP vom rinetd Port Ziel-IP Ziel-Port 10.0.0.234 23 10.0.0.254 23 10.0.0.234 222 10.1.0.254 22 10.0.0.234 80 example.org 80 2001:db8::3 100 fd00:abcd::1 23 127.0.0.1 100 fd00:abcd::1 23 2001:db8::56 23 10.0.0.254 23 10.0.0.238 53/udp 9.9.9.9 53/udp #/udp muss bei beiden Ports angegeben werden, sonst findet eine Umleitung UDP <--> TCP statt.
ACLs¶
Der Zugriff kann durch ACLs eingeschränkt werden, einerseits global, andererseits für bestimmte Regeln. Globale Regeln kommen vor der ersten Weiterleitungs-Regel. Spezifische direkt unter eine Regel und gelten dann nur für diese. Sobald eine globale deny-Regeln zutrifft, wird die Verbindung sofort geschlossen. Sind globale allow-Regeln festgelegt und die IP trifft nicht zu, wird die Verbindung ebenso geschlossen.
#global allow 10.0.0.* #10.0.0.0/24 global erlaubt 10.0.0.234 23 10.0.0.254 23 deny 10.0.0.77 #Zugriff für 10.0.0.77 für obere Regel verboten 10.0.0.234 222 10.0.0.254 22 #Hier wäre Zugriff für 10.0.0.77 möglich 2001:db8::345 100 fd00:abcd::1 23 deny 2001:470:*
Links¶