Как бы мне начать писать свой собственный брандмауэр?

StackOverflow https://stackoverflow.com/questions/18391

  •  09-06-2019
  •  | 
  •  

Вопрос

В Google практически ничего нет на эту тему, кроме людей, задающих этот самый вопрос.

Как бы мне начать писать свой собственный брандмауэр?

Я собираюсь написать его для платформы Windows, но мне также была бы интересна эта информация и для других операционных систем.­­­­­­­­­­­­­­­­­­

Это было полезно?

Решение

Для Windows 2000 / XP есть статья с примерами CodeProject Разработка брандмауэров для Windows 2000 / XP

Для Vista, я думаю, вам нужно будет использовать Платформа фильтрации Windows

Другие советы

Этот вопрос пугающе похож на те, которые задают вопрос о том, как написать алгоритм шифрования.Ответы на оба вопроса должны заканчиваться ненавязчивыми напоминаниями о стандартных отраслевых решениях, которые уже:

  • воплощение многолетнего опыта и постоянного совершенствования,
  • вероятно, они гораздо более безопасны, чем любое домашнее решение, и
  • учитывайте вспомогательные требования, такие как эффективность.

Брандмауэр должен проверять каждый передача пакетов эффективна и точна, и поэтому она выполняется в ядре операционной системы или сетевых стеках.Ошибки или неэффективность ставят под угрозу безопасность и производительность всей машины и тех, кто работает ниже по потоку.

Создание собственного низкоуровневого брандмауэра - отличное упражнение, которое позволит получить представление о многих технологиях.Но для любого реального приложения гораздо безопаснее и разумнее создать оболочку вокруг существующего API брандмауэра.Под окнами, в netsh команда сделает это;Linux использует netfilter и iptables.Погуглив любой из них, вы найдете множество теорий, примеров и другой полезной информации.

Итак, для начала, Я бы освежил информацию о TCP / IP (в частности, информацию о заголовке:порты и протоколы), затем узнайте о различных типах атак и о том, как их обнаружить.Узнайте о каждой интересующей вас операционной системе и о том, как она взаимодействует с сетевыми стеками.Наконец, подумайте об администрировании и ведении журнала:как вы настроите свой брандмауэр и будете отслеживать пакеты через него, чтобы убедиться, что он выполняет то, что вы хотите?

Удачи вам!

Обычный подход заключается в использовании перехвата API.Google может научить вас этому.Просто подключайте все важные сетевые материалы, такие как connect's и listens- это так, и откажись от того, чего ты хочешь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top