Forum: Mikrocontroller und Digitale Elektronik Hardware Firewall


von Frank Rich (Gast)


Lesenswert?

Hallo zusammen,
Ich möchte mal ein Bischen mit Mikrocontrollern rumspielen und wollte 
mir zu diesem Zweck ein developerboard anschaffen. Als erstes Projekt 
möchte ich eine Firewall bauen. Ich habe die Threats hier dazu gelesen 
und mir das ATNGW100 Network Gateway Kit angeschaut. Jetzt mal eine 
dumme Frage: Kann ich da ein Display anschliesen?
Ansonsten hab ich mir als Alternative das EasyARM rausgesucht. Da kann 
ich ein Display anschließen und mehrere serielle LAN-Anschlüsse. Jetzt 
stellt sich mir die Frage ob ich bzw. mit welchem Speed ich bei dem 
Board die Packete vom einen LAN Port zum anderen schicken kann. Auserdem 
wollt ich um Erfahrungen bitten bzgl. des Speeds des Prozessors den ich 
dafür brauch. Ich würde gern eine Statefull Inspection machen.
Achja, Linux sollte nicht auf dem Board laufen, ich will alles von Hand 
machen.
Für Tips und Links zur weiterführenden Literatur wär ich sehr dankbar.

Viele Grüße
Frank

von 6789 (Gast)


Lesenswert?

Eine firewall... bei ADSL Speed von 5000kbit/s ergibt sich die datenrate 
zu 500kbyte/s. Weitefuehrende Literatur ist das 3 baendige Werk : Ich 
und TCP/IP, oder aehnlich, fuer 300 Euro.

von Frank Rich (Gast)


Lesenswert?

Also TCP /IP Grundlagen sind schon vorhanden, mir ging es eher um 
Literatur zur HW.

von Peter (Gast)


Lesenswert?

ich möchte dich ja nicht entmutigen, aber eine "Statefull Inspection" 
macht man nicht mal ebend so. Da hängt viel wissen über die Verwendeten 
Protokolle tran z.b. Aktives-FTP.
Dazu kommt dan eine eventuelle fragmentierung mit der man umgehen muss. 
Das ganze dann noch ohne ein Betriebssystem darunter ist schon nicht 
ohne. Eventuell erstmal mit einen "dummen" Router anfangen und dann zu 
einer einfachen Packet-Filter firewall übergehen.

von Frank Rich (Gast)


Lesenswert?

Also Infos über das FTP brauch ich bei einer Stateful Inspection nicht, 
das wäre dann ja schon eine Deep Packet Inspection oder reden wir 
aneinander vorbei. Ich dachte ich arbeite halt mit SOCKET / DGRAM bzw 
SOCKET / STREAM o.ä.

von Peter (Gast)


Lesenswert?

Leider ebend doch, beim Aktiven FTP wird vom Server eine Verbindung zum 
Client aufgebaut, deine Firewall muss aus dem FTP-Kommando Kanal den 
dynamischen Port auslesen und ihn in der Firewall freischalten. Und 
sicherstellen das dir niemand etwas unterjubelt und du auf jeden Anfrage 
jeden Port öffnest.

Was ist auserdem eine Hardware Firewall, wenn du eh software schreibt. 
Unter Hardwarefirewall könnte ich mir ein Relais vorstellen, der rest 
ist alles Software egal ob es auf einen Richtigen PC oder was "embedded" 
ist.

von Frank Rich (Gast)


Lesenswert?

P.S: Kann mir jemand was zu dem EASYARM Board was sagen.

von Peter (Gast)


Lesenswert?

Nachtrag:
was meist du mit SOCKET  DGRAM bzw SOCKET  STREAM. Eine 
Firewall/Router baut nicht selber eine Verbindung auf. Sie Analysiert 
Packete da gibt es erstmal nur den RAW-Socket mehr nicht. Ob es UDP oder 
TCP ist mussst du alles selber erledigen. Meist kommt ja auch noch NAT 
dazu wo du die packete manipulieren musst und die Antworten neu zuordnen 
musst.

von Frank Rich (Gast)


Lesenswert?

Naja, ich dachte das ich halt in C ein Programm schreib welches 
Verbindungen von ANY animmt, sich forked und dann im TCP die Flags 
auswertet ob SYN SYN/ACK etc, und dann das Packet an die Destination 
weiterleitet oder Verwirft. NAT ist nicht nötig da es hinter meinem 
Router arbeiten soll.

von Roland P. (pram)


Lesenswert?

Also ich denke dass sowas nur Sinn macht, wenn du ein Dev-board findest 
auf dem auch ein Linux läuft. Dann hast schon mal die meisten 
Softwareteile "onboard".

wenn du alles "zu fuß" machen willst fehlt dir (vermutlich) das 
detailierte Wissen über TCP/IP & co., aber auf alle Fälle die Zeit das 
vernünftig und stabil hinzubekommen.

Falls es dir nur darum geht, eine Hardware-Firewall (*) zu haben, würde 
ich mir irgend einen Router besorgen, auf dem DD-WRT oder so was in der 
Richtung läuft. (ich weiß, das bietet nicht den hier gewünschten 
Bastelfaktor)

Gruß
Roland



* eine Hardware-Firewall ist für mich jede Firewall die nochmal zwischen 
Rechner und Internetanschluss hängt und mich "schützt" ohne dass ich auf 
meinem Rechner zus. Software installieren muss. Dass auf dieser Box auch 
Software läuft ist (denke ich) klar.

von Frank Rich (Gast)


Lesenswert?

@Roland: Genau so definiere ich eine HW Firewall auch.

Ansonsten geht es mir NICHT darum das es stabil Läuft sondern darum das 
ich etwas über Microcontroller Programmierung lerne und mir die 
Ansteuerung einer Segment Anzeige zu langweilig ist ;)

von Unbekannter (Gast)


Lesenswert?

> Naja, ich dachte das ich halt in C ein Programm schreib welches
> Verbindungen von ANY animmt, sich forked und dann im TCP die Flags
> auswertet ob SYN SYN/ACK etc, und dann das Packet an die Destination
> weiterleitet oder Verwirft. NAT ist nicht nötig da es hinter meinem
> Router arbeiten soll.

Popcorn!

von Peter (Gast)


Lesenswert?

> Naja, ich dachte das ich halt in C ein Programm schreib welches
> Verbindungen von ANY animmt, sich forked
Das ist schon der falsche Ansatz, hast du mal geschaut wie viele 
Packet/Verbindungen aufgebaut werden?
Das Forken braucht dafür viel zu viele Resourcen ist ist zu langsam. Was 
du willst ist eine Router mit Firewall funktionalität.
Dafür bekommt du alle ankommende Packete einfach als Packet (void* + 
length) und dann musst du entscheiden was mit dem Packet gemacht wird, 
weiter leiten, zurückweisen, ignorieren und musst eine neues Packet 
zusamemnbauen und über das passende Lan Interface übertragen.
Was du vor hast ist eine Art universeller Proxy aber keine Firewall.
Wenn du mit Socket und Forks anfängst bist du auf Layer6  ein 
Router/Firewall treibt sich auf layer 3 und 4 rum.

von 6789 (Gast)


Lesenswert?

>Naja, ich dachte das ich halt in C ein Programm schreib welches
Verbindungen von ANY animmt, sich forked und dann im TCP die Flags
auswertet ob SYN SYN/ACK etc...

Forken macht man allenfalls auf einem PC, aber sicher nicht auf einem 
Embedded System, egal wieviel RAM da nun ist. Die Denkensweise ist eine 
ganz andere, der erste Gedanke ist immer, wieviel RAM und Code braucht 
das, und der zweite : Wieviele Mikrosekunden dauert es. Der dritte 
Gedanke ist dann : wieviel Strom braucht die Maschine.

Ich wuerd mal ein einfacheres Projekt anpacken.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich möchte mal ein ...
> Ich würde gern eine Statefull Inspection machen.
> ... ich will alles von Hand machen.
Will, möchte, würde...

> Als erstes Projekt möchte ich eine Firewall bauen.
> ... das ich etwas über Microcontroller Programmierung lerne
> und mir die Ansteuerung einer Segment Anzeige zu langweilig ist ;)
Ja, so ist das: gleich alles wollen und zwei Schritte auf einmal machen,
und dann auf die Schnauze fallen.

Und dann:
> Jetzt mal eine dumme Frage: Kann ich da ein Display anschliesen?
Mir scheint, du vermutest die Probleme an einer anderen Stelle, als sie 
in der Wirklichkeit auftreten werden.

Machs doch erst mal einfach:
- nimm so ein Dev-Board
- und schalte übers Internet die LEDs an und aus
- dann schliess ein LCD an
- und gib übers Internet Text aus
Du wirst nicht glauben wie schön die Blumen blühen,
bis das fehlerfrei läuft ;-)


BTW:
> Ich würde gern eine Statefull Inspection machen.
http://de.wikipedia.org/wiki/Stateful_Packet_Inspection

von Martin (Gast)


Lesenswert?

>Du wirst nicht glauben wie schön die Blumen blühen,
>bis das fehlerfrei läuft ;-)

Und dies Sonnenwenden dazwischen nicht vergessen ;-)

von Gast (Gast)


Lesenswert?

Mein erstes Elektronik Projekt nennt sich Airbus Flightcontrol alles 
Andere ist mir auch zu primitiv lol.

von Sachich N. (dude) Benutzerseite


Lesenswert?

Ach Gott, wie langweilig, das war doch neulich in der Elektor...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.