Hardware Firewall

Gast #1091221
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
Gast #1091252
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.
Gast #1091267
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.ä.
Gast #1091272
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.
Gast #1091280
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.
Gast #1091287
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.
#1091288
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.
Gast #1091295
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 ;)
Gast #1091302
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!
Gast #1091311
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.
Gast #1091663
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.
Moderator (Firma: Titel) Persönliche Seite #1091752
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren