Come iniziare a scrivere il mio firewall?


8

Ci sono precedenti su google su questo argomento a parte le persone che fanno questa stessa domanda.

Come iniziare a scrivere il mio firewall?

Sto cercando di scriverne uno per la piattaforma Windows ma sarei interessato anche a queste informazioni anche per altri sistemi operativi.

8

Per Windows 2000/XP c'è un articolo con esempi su CodeProject Developing Firewalls for Windows 2000/XP

per Vista penso che sarà necessario utilizzare Windows Filtering Platform


2

L'approccio comune è quello di utilizzare API di aggancio. Google può insegnartelo. Basta collegare tutte le cose importanti di networking, come connect e listens, e rifiutare ciò che si desidera.

  0

L'hook dell'API potrebbe essere utile per un cosiddetto "firewall dell'applicazione", ma per un firewall di rete, è necessario lavorare al livello dello stack di driver di rete. 21 nov. 082008-11-21 23:48:06


6

Questa domanda è in modo allarmante simile a quelli che chiedono come scrivere un algoritmo di crittografia. Le risposte a entrambi dovrebbero finire in dolce promemoria sulle soluzioni standard di settore che già:

  • incarnano anni di esperienza e di miglioramento continuo,
  • sono probabilmente molto più sicuro rispetto a qualsiasi soluzione home-grown, e
  • conto per requisiti secondari, come l'efficienza.

Un firewall deve ispezionare ogni pacchetto in modo efficiente e con precisione, e funziona quindi entro il kernel del sistema operativo o di rete stack. Errori o inefficienze compromettono la sicurezza e le prestazioni dell'intera macchina e di quelle a valle.

Costruire il proprio firewall di basso livello è un esercizio eccellente che fornirà una formazione attraverso molte tecnologie. Ma per qualsiasi applicazione reale, è molto più sicuro e intelligente costruire una shell attorno all'API del firewall esistente. Sotto Windows, il comando netsh farà questo; Linux utilizza netfilter e iptables. Googling su uno di questi punti ti indicherà un sacco di teoria, esempi e altre informazioni utili.

Quindi, per iniziare, Mi piacerebbe rispolverare su TCP/IP (in particolare, le informazioni dell'intestazione: porte e protocolli), quindi conoscere i vari tipi di attacchi e come rilevarli. Ulteriori informazioni su ciascun sistema operativo di interesse e su come interagisce con gli stack di rete. Infine, pensa all'amministrazione e al logging: come configurerai il tuo firewall e traccerai i pacchetti attraverso di esso per assicurarti che stia facendo ciò che vuoi che faccia?

Buona fortuna!