Aus Linux-Magazin 08/2005

Aus dem Alltag eines Sysadmin: Portfwd

Auf einem Server einlaufenden TCP-Connections kann man nicht immer auch genau dort gebrauchen. Ein frei konfigurierbarer Redirector lenkt das digitale Strandgut an einen neuen, besseren Ort um.

Inhalt
62 TCP-Reset
TCP-Verbindungen lassen sich viel leichter abschießen, als
Protokollexperten immer dachten. Wo genau lag deren Rechenfehler?
Und wie real ist die daraus entstehende Bedrohung?
69 Admin-Workshop
Der X-Server ist Grundlage fast jeder grafischen Darstellung unter
Linux. X11 bietet zudem hervorragende Netzwerkfähigkeiten und
Möglichkeiten fürs Tuning. Der Workshop vermittelt
Grundlagen, um sie zu nutzen.

Vor einiger Zeit habe ich an dieser Stelle über Rinetd geschrieben [1], einen TCP-Redirector. Rinetd ist einfach konfigurierbar, schlank und zuverlässig. Im Gegenzug fehlen ihm alle fortgeschrittenen Features. Heute tritt Portfwd an, um diese Lücke zu schließen. Portfwd (Port Forwarding Daemon, [2]) kommt als 116 KByte großer Tarball, der sich wie üblich per

./configure; make; make install

installiert. Jedenfalls fast, denn das entscheidende Binärfile versteckte sich bei mir nach dem »make install« im Unterverzeichnis »src«. Ein Symlink (»ln -s /usr/local/portfwd-0.27/src/portfwd /usr/bin/portfwd«) behebt dies.

Erstes Beispiel: Kaum der Schreibe wert

Zunächst schauen ich mir an, wie Portfwd eine einfache Umleitung konfiguriert bekommt. Er soll alle TCP-Pakete, die auf Port 80 ankommen, an den Port 80 des Servers 10.20.30.40 weiterleiten. Die Konfigurationsdatei sieht so aus:

user nobody
group nobody
tcp { 80 { => 10.20.30.40:80 } }

In den äußeren geschweiften Klammern steht der Port, auf dem Portfwd eingehende Verbindungen annimmt, und in den inneren Klammern macht es sich das Ziel der Weiterleitung gemütlich. Das kann der gute alte Rinetd auch. Aber durch Angabe mehrerer Ziele entpuppt sich Portfwd schnell als einfacher Round-Robin-Loadbalancer. Ich modifiziere das erste Beispiel so, dass es eingehende Verbindungen auf Port 80 an zwei Server, 10.20.30.40 und 10.20.30.41, weiterleitet:

tcp { 80 { => 10.20.30.40:80,
              10.20.30.41:80 } }

Hat meine Maschine mehrere IP-Adressen, so ist mittels »bind-adress« spezifizierbar, welches Interface ich meine. In meinem dritten Versuch hat mein Rechner die Adressen 192.168.1.1 und 192.168.1.2. Hier auf Port 25 einlaufende Verbindungen soll der Rechner auf zwei andere Mailserver weiterbeamen:

bind-adress 192.168.1.1
tcp { 25 { => 10.20.30.40:25 } }
bind-adress 192.168.1.2
tcp { 25 { => 10.20.30.41:25 } }

Portfwd verbiegt im Gegensatz zu Rinetd nicht nur TCP-Verbindungen, sondern gibt UDP-Datagrammen auch eine neue Richtung. Die Regel

udp { 53 { => dns.example.com:53 } }

sorgt dafür, dass er DNS-Anfragen annimmt und an den Server »dns.example.com« weiterleitet.

Wackelkandidatinnen

Außerdem erlaubt mir Portfwd, Verbindungen zu Servern, die an einer wackligen Anbindung hängen, einer Spezialbehandlung zu unterziehen. Das zarte Stichwort »fragile« weist Portfwd dazu an, bei Verbindungsfehlern großzügig zu sein und es – wie bei einer anmutigen Dame – öfter aufs Neue zu versuchen:

fragile tcp { 80 { => 
dialup.example.com:8080 } }

Mit diesem Rüstzeug statte ich gern all jene zentralen Rechner aus, die von außen wie Funktionsmonster wirken sollen, deren Dienste ich aber in Wirklichkeit auf andere Maschinen ausgelagert habe. Hauptsache die neuen Flugbahnen der TCP-Verbindungen stimmen. (jk)

Infos
[1] Charly Kühnast, “Aus dem Leben eines Sysadmin: Rinetd”: Linux-Magazin 10/02, S. 67

[2] Portfwd: [http://portfwd.sf.net]

Der Autor

Charly Kühnast administriert Unix-Betriebssysteme im Rechenzentrum Niederrhein in Moers. Zu seinen Aufgaben gehören die Sicherheit und Verfügbarkeit der Firewalls und der DMZ (demilitarisierte Zone). In seiner Freizeit lernt er Japanisch, um endlich die Bedienungsanleitung seiner Mikrowelle lesen zu können.
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben