Этот вопрос тревожно похож на тех, кто спрашивает, как написать алгоритм шифрования. Ответы на оба должны закончиться в нежных напоминания о стандартных отраслевых решений, которые уже:
- воплощают многолетний опыт и постоянное совершенствование,
- , вероятно, гораздо более безопасным, чем любой доморощенный растворе и
- счет для вспомогательных требований, таких как эффективность.
Брандмауэр должен эффективно и точно проверять каждый пакет, и, следовательно, он работает в пределах OS ядра или сетевых стеков. Ошибки или неэффективность ставят под угрозу безопасность и производительность всей машины и тех, кто находится ниже по течению.
Создание собственного низкоуровневого межсетевого экрана - отличное упражнение, которое обеспечит образование по многим технологиям. Но для любого реального приложения гораздо безопаснее и умнее создавать оболочку вокруг существующего API брандмауэра. В Windows команда netsh
сделает это; Linux использует netfilter
и iptables
. Попытка любого из них укажет вам на множество теорий, примеров и другую полезную информацию.
Итак, для начала, Я бы подкрался по TCP/IP (в частности, информация заголовка: порты и протоколы), а затем узнайте о различных типах атак и о том, как их обнаружить. Узнайте о каждой интересующей операционной системе и о том, как она взаимодействует с сетевыми стеками. Наконец, подумайте об администрировании и протоколировании: как вы будете настраивать свой брандмауэр и трассировать пакеты через него, чтобы убедиться, что он делает то, что вы хотите?
Удачи вам!
API-соединение может быть полезно для так называемого «брандмауэра приложений», но для сетевого брандмауэра вам необходимо работать на уровне стека сетевых драйверов. – jdigital 2008-11-21 23:48:06