14.20 Design der internen Kommunikation
Es werden zwei Arten von sockets benutzt:sockcomm und sockfriends warten auf eingehende Nachrichten
von "trustedhosts" und "fiends", also explizit in den Firewall-Regeln
eingetragene,vertrauenswürdige befreundete Hosts. Die Funktionen
sock_trusted[] undsock_friends[] sind Listen von Sockets, die Nachrichten
an jeden eizelnen "trusted host" und "friend" senden.Es gibt aber
im Dämon keinerlei Schutz gegen unberechtigte Zugriffe von außen.
Es ist also unbedingt erforderlich, den UDP-Port 7227 für eingehende
Nachrichten von "trusted hosts" und den UDP-Port 7228 für eingehende
Nachrichten von "friends" freizuschalten.
- Nachrichten
Angesichts dessen, daß diese Austauschkanäle einen sicheren IP-Layer benötigen,
der ohnehin Prüfsummen der übertragenen Daten erstellt, wird die Übertragung
über UDP abgewickelt. Trotzdem ist der Transfer
der dynamischen Regeln der Firewalls untereinander über Prüfsummen nochmals
abgesichert. Die Nachrichten selber bestehen aus zwei verschiedenen Nachrichtentypen,
aus Logeinträgen und dynamische Firewallregeln
- Die Logeinträge
Die Logeinträge bestehen aus reinen ASCII- Zeichenketten, die auf
200 Buchstaben Länge begrenzt sind. Die Unterscheidung zwischen Logeintrag
unddynamischen Firewallregeln findet über eine besondere Kennung
(SF_FW_MAGIC)statt. Der empfangene Host fügt dann die IP-Adresse
aus dem Logeintrag hinzu, und fügt dann die vom "trusted host"
übernommenen, dynamischen Firewallregeln zu seinen eigenen hinzu.
- Dynamische Regeln
Eine dynamische Regel besteht aus Zeigern auf Datenstrukturen und
dynamisch angelegte Objekte in einem Dämon. Bevor also eine dynamische
Regel gesendet werden kann, muß der Dämon diese erst aus dem RAM
auslesen, diese in Listen einordnen, mit einer Nummer versehen, und
erst dann können diese an andere Firewalls übermittelt werden. Das
Format dieser Struktur ist folgendermaßen abgelegt: