Sicherheit für SRCP Server

Sicherheit wird groß geschrieben. Also auch die Sicherheit, die eigene Modellbahn zu schützen. Da bei Sicherheit immer gleich die martialischen Worte Angriff und Verteidigung fallen, ein paar Worte vorab.

Ein SRCP System besteht mindestens aus einem Rechner. Der ist dann gleichzeitig Server und Client. Solange dieser Rechner nicht mit anderen Rechnern verbunden ist (Ethernet, ISDN-Karte, Modem), besteht die einzige (realistische) Gefährdung des SRCP Systems durch den Beutzer selbst. Da gegen die eigene Dummheit nun mal kein Kraut gewachsen ist, beschäftigen wir uns lieber mit den anderen Dingen, bei denen man etwas tun kann.

Sobald ein Rechner ein Modem, eine ISDN Karte oder eine Ethernetkarte hat, um mit anderen Rechnern zu kommunizieren, wird es interessant. Denn dann können die "bösen Buben" die Modellbahn ganz nach Gusto manipulieren und auch sonst ihrem bösen Taten fröhnen. So sie nicht daran gehindert werden.

Haftungsfragen

Die nachfolgenden Tipps sind zwar nach bestem Wissen und Gewissen entstanden, es ist aber trotzdem davon auszugehen, das sie Fehler enthalten. Für diesen Fall weise ich alle Verantwortung zurück. Wer die Tipps befolgt, tut dies auf eigene Gefahr. Wer damit also Schiffbruch erleidet (und wichtige Daten verliert oder dessen Firma bankrott geht oder alle Loks von der Anlage gekegelt werden und nur noch Schrott sind): Sorry, dumm gelaufen. Wer speichert schon wichtige Daten auf einem Spielesystem. Ich würde es dennoch gerne wissen, damit ich die Tipps überarbeiten kann.

Linux

Sicherheit hat viel mit dem zugrundeliegenden Betriebssystem zu tun. Weniger das OB als vielmehr das WIE. OB können sie alle, WIE ist sehr unterschiedlich. Deswegen zunächst Linux. Windows folgt weiter unten. Auch nehme ich Bezug auf den Standardtext, was die Portnummern (12345 ff) angeht. Wer anderes eingestellt muß natürlich anpassen.

Einzelrechner mit Internetzugang

Er (oder Sie) sollte während der SRCP Server läuft, nicht online gehen/online sein. Falls das nicht geht, ist eine Firewall zum Internet hin dringend anzuraten. Am einfachsten ist folgendes kleines Script, das den SRCP Port sperrt (alles andere bleibt aber ggf. offen!):

iptables -A INPUT -p tcp --dport 12345 -i ppp0 -j REJECT
Damit werden alle Verbindungen, die vom Internet (ppp0) kommen und auf den Port 12345 gehen, abgewiesen. Am besten plaziert man dieses Script so, das es beim Systemstart ausgeführt wird (/etc/init.d/firewall mit Links nach /etc/init.d/rc.5/S99firewall und .../rc.3/S99firewall). Wer ISDN benutzt, wird sicherlich anstelle von -i ppp0 den String -i ippp0 einsetzen, bei DSL ist es aber wieder ppp0 (und nicht eth-irgendwas), auch wenn sonst noch ISDN existiert. Keiner hat je behauptet, das die Welt einfach wär.

Genauso sind die Ports 12346 und 12347 beim "alten" SRCP schutzwürdig.

Dass es auch sonst eine gute Idee ist, Verbindungen vom Internet auf die eigene Maschine zu verhindern, zumindest aber zu protokollieren, sei nur am Rande erwähnt. Es gibt sehr viele Anleitungen dafür.

Kleines Lokales Netz mit Internetzugang

Im Grunde exakt genauso wie der Einzelrechner. Entscheidend ist, das es keine Verbindungen aus dem Internet heraus geben kann. Für gewöhnlich wird unter diesen Bedingungen zusammen mit Adressen nach RFC 1918 das NAT (Masquerading) eingeschaltet. Solange der SRCP-Server nicht auf dem Zugangsrechner läuft, ist davon auszugehen, das er nicht erreicht werden kann (Ausnahmen bestätigen die Regel, aber dann hat jemand das Netz eingerichtet, der wissen sollte, was er/sie tut).

Großes Lokales Netz

In einem großen lokalen Netz (z.B. Uninetze) sind die Dinge etwas komplexer. Hier sind die "Guten" und die "Bösen" nicht mehr so einfach voneinander zu trennen. Hier sind folgende Regeln vielleicht brauchbar. Eingesetzt werden sie auf dem Rechner, der den SRCP Serverdienst bereitstellt:

friendip=192.168.1.0/24
iptables -A INPUT -p tcp --source ! $friendip --dport 12345 -j REJECT

Falls es mehrere, individuelle IP Adressen der Freunde gibt, sind die beiden obigen Zeilen mehrfach zu wiederholen. Keine Angst, es gibt keine Perfomanceeinbrüche, auch bei Uraltpentiums nicht...

SSH verschlüsselte Übertragung

Wenn ein Clientrechner trotz allem via Internet kommunizieren muß, bleibt die Verschlüsselung. Dabei ist zunächst ein funktionierender SSH Login des "Guten" auf dem SRCP Server Voraussetzung. Dann kann mit dem Befehl

<client> $ ssh -L 12345:<server-hostname>:12345 <server-hostname>
eine verschlüsselte Verbindung zum SRCP Server aufgebaut werden. Der Client ist hierfür aber nicht mit der Adresse des wirklichen SRCP Servers zu versorgen, sondern mit dem Localhost!!

Auf dem Clientrechner können sodann beliebig viele Verbindungen zu SRCP Server aufgebaut werden, indem die Programme sich mit dem Port 12345 (die erste Zahl in obiger ssh -L - Zeile) verbinden:

client $ telnet localhost 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
srcpd V1.1; SRCP 0.7.3; March 2002; WELCOME

SSH sorgt übrigens dafür, das die verschlüsselte Verbindung nicht von einem dritten Rechner aus benutzt werden kann (damit sind nur alle direkten Benutzer des Rechners <client> wirksam.

Schöner Nebeneffekt dieser Methode ist, das zusammen mit der oben erwähnten Firewall nur eine IP Adresse erlaubt werden braucht, da alle Verbindungen nicht mehr von den Clientrechnern stammen sondern vom Tunnelenpunkt von ssh auf dem Server, der nun mal die IP Adresse des Servers hat:

iptables -A INPUT -p tcp --source ! <server_ip_addr> --dport 12345 -j REJECT

Windows

Später vielleicht. Texte und Bilder (png) werden gerne angenommen.

Glossar

RFC 1918: Dies sind die allseits bekannten Adressen 10/8, 172.16-31/16 und 192.168.0-254/24. Deren Besonderheit ist, das sie normalerweise nicht geroutet werden, es also keine solchen Adressen im "Internet" gibt, wenn, dann nur mit sehr lokal begrenzter Reichweite (ISP), keinesfalls sind sie global benutzbar. Sie werden häufig in Intranets eingesetzt.

© by srcpd team

Hosted by SourceForge Logo