Tux als Türsteher

Linux für Embedded-Gateways: Im Folgenden soll die Softwareseite des Themas behandelt werden – immerhin ist praktisch kein Betriebssystem auf dem Markt, das standardmäßig dafür geeignet wäre.

Linux für Embedded-Gateways: Im Folgenden soll die Softwareseite des Themas behandelt werden – immerhin ist praktisch kein Betriebssystem auf dem Markt, das standardmäßig dafür geeignet wäre.

INHALT:
Verteile und herrsche
Betriebssysteme für Gateways
Du kommst hier nicht rein!
Schlüsseldienst
Literatur
Autor

Die Schnittstellenvielfalt in der Labor- und Fabrikautomatisierung – den Zielmärkten sehr vieler Embedded Systeme – nimmt weiterhin zu. Ein Grund hierfür ist die ständig wachsende Anzahl echtzeitfähiger Industrial- Ethernet-Konzepte.

Hinzu kommt die nach wie vor rasante Verbreitung verschiedener Wireless-Standards. Für zahlreiche Embedded- Anwendungen sind neben Bluetooth und IEEE- 802.11-konformen Wireless- LANs auch drahtlose Sensordatenübertragungsverfahren wie IEEE 802.15.4, ZigBee und Z-Wave von Bedeutung. Nicht zu vergessen die Datenkommunikation per SMS, CSD, GPRS beziehungsweise EDGE in GSM-Mobilfunknetzen. Weiterhin gibt es im Umfeld der Embedded Systeme nach wie vor eine sehr große Anzahl konventioneller Schnittstellen wie zum Beispiel RS-232, RS-422, RS-485, USB, FireWire, I2C, SPI sowie verschiedene Feldbusse. Hinter all diesen Schnittstellenkonzepten stehen zum Teil völlig unterschiedliche physikalische Spezifikationen und – in der Regel sehr komplexe – Protokollregelwerke, welche die logische Art und Weise der Datenübertragung beschreiben.

In der IT-Welt, also dem Bereich eines Unternehmens, welcher praktisch alle relevanten Daten langfristig speichern und im Rahmen der Unternehmensprozesse verarbeiten muss, sieht es deutlich übersichtlicher aus. Physikalisch dominieren hier Ethernet und WLAN. Protokolltechnisch hat sich TCP/IP durchgesetzt. Die unternehmensweite durchgängige Vernetzung schafft daher immer wieder die Notwendigkeit, typische Embedded- Anwendungen und -Schnittstellen in ein IT-Netzwerk zu integrieren. Diese Koppelaufgabe erfolgt in der Regel durch ein Gateway.

Verteile und herrsche

Der Zweck eines Gateways ist es, den Transport der Nutzdaten zwischen unterschiedlichen Netzwerken sicherzustellen. Die Kommunikationsprotokolle und -schnittstellen lassen sich dabei in das OSI-Modell der ISO einordnen [1]. Es verbindet dabei die verschiedenen Schichten zweier Netze. Problematisch ist dabei zunächst einmal, dass nicht alle Schnittstellenkonzepte und Protokollregelwerke sämtliche sieben Schichten des OSI-Modells besetzen. In einem TCP/IP-basierten Ethernet-LAN sind zum Beispiel die Schichten 1 (Physical Layer = Ethernetkabel), 2 (Data Link Layer = Ethernet Controller), 3 (Network Layer = IP-Protokoll), 4 (Transport Layer = TCP, UDP) und 7 (Application Layer = HTTP, FTP, SMTP, usw.) besetzt. Eine RS-232- Schnittstellenverbindung deckt hingegen lediglich die OSI-Schichten 1 und 2 ab. Bei einem RS-485-basierten Mikrocontrollernetzwerk kommt in der Regel noch die Schicht 3 (Network Layer) hinzu, um einzelne Zeichen zu einfachen Paketen zusammenzufassen und mit Adressinformationen auszustatten (Bild 1).

Die separaten Schichten in einem TCP/IP-Ethernet-LAN und einer RS-232- beziehungsweise RS-485-Anwendung sind weiterhin völlig inkompatibel zueinander und lassen sich daher nicht direkt koppeln. Ein Gateway- Rechner muss demzufolge eine recht aufwändige Schnittstellen- und Protokollumsetzung durchführen, um zum Beispiel die Daten aus einem TCP-Paket im Ethernet- LAN über eine RS-232- Schnittstelle an den Mikrocontroller einer SPS zu senden. Dem Gateway ist dabei alles erlaubt, was zur Konvertierung der Daten notwendig ist. Auch das Weglassen von Informationen ist denkbar, wenn diese im Zielnetz nicht transportiert werden können. Im Detail entfernt das Gateway sämtliche Protokollinformationen, die an ein Datenpaket angehängt werden (beispielsweise die Adressen in RS-485-Netzwerken), und ersetzt sie durch andere (zum Beispiel die TCP/IP-Kopfdaten für ein Ethernet-LAN).

Iptables-Regelwerke sind Textdateien mit recht komplexen Befehlszeilen. In der Praxis bereiten das Erstellen und Bearbeiten dieser Dateien hin und wieder große Probleme.

Zum einen sind dafür umfangreiche Kenntnisse der Protokolldetails von TCP/IP erforderlich. Zum anderen ist die Syntax der Iptables- Kommandos selbst sehr komplex. Für die Implementierung von EGL/2 wurde daher mit »Firewall Builder« (FWB) ein weiteres Werkzeug hinzugezogen. Mit dem FWB [5], der auf einem externen Windows- oder Linux- PC läuft, lässt sich das Regelwerk per Drag & Drop mit Hilfe einer grafischen Benutzeroberfläche erstellen (Bild 5).

Dabei entsteht eine Datei mit den Regelwerken, die per LAN in das EGL/2-basierte Embedded-Gateway geladen und zur Ausführung gebracht wird. Das gesamte Iptables-Regelwerk lässt sich über den FWB interaktiv erstellen. Dabei steht ein leistungsfähiges Hilfesystem zur Verfügung. Kenntnisse der Iptables-Kommandos sind gar nicht erforderlich. Ein gewisses Grundverständnis von TCP/IP reicht in den meisten Fällen aus.

Die TCP/IP-Kommunikation erfolgt von Haus aus im Klartext, also völlig unverschlüsselt auf Basis allgemein anerkannter Zeichensätze. Weiterhin ist der Zugriff auf einen Server entweder ohne jede Authentifizierung (zum Beispiel bei einem Webserver) oder mit Hilfe einfacher Passwörter (beispielsweise bei einem FTP-Server) möglich. Aus diesem Grund wurden in den letzten Jahren zahlreiche TCP/IP-Erweiterungen entwickelt, um zum einen die Vertraulichkeit und zum anderen eine sichere Authentifizierung zu gewährleisten.

Das wohl sicherste Verfahren ist das Bilden eines VPN (Virtual Private Network). Dabei werden Rechner in unterschiedlichen lokalen Netzwerken mit Hilfe eines weiteren unsicheren Netzwerks zu einem virtuellen Netz zusammengeschaltet. An den Schnittpunkten zum unsicheren Netz kommt jeweils ein VPN-Gateway zum Einsatz. Dieses Gateway übernimmt die Verschlüsselung und Authentifizierung mit Hilfe privater und öffentlicher Schlüssel sowie digitaler Zertifikate.

Zur einfachen Realisierung eines VPN-Gateways wurde in EGL/2 die Open-Source- Software »OpenVPN« [6] integriert. Dadurch sind Kommunikationsstrukturen wie in Bild 6 möglich. Hier kommunizieren die beiden Rechner A und B über das Internet völlig sicher und geschützt miteinander. Beide Rechner benötigen nur einen Standard-TCP/IP-Protokollstack. Die beiden VPN-Gateways verschlüsseln sämtliche IP-Pakete an den Schnittstellen S1 und übertragen sie per S2 an das jeweils andere Gateway. Dort werden sie entschlüsselt und an S1 weitergeleitet. Über diesen abgesicherten Tunnel können sich nur per Zertifikat autorisierte Gateways an der Kommunikation beteiligen. Solche VPNs genügen hohen Sicherheitsanforderungen. Marcel Consée