Гигабитный брандмауэр с открытым исходным кодом
Кто-нибудь создал брандмауэр на базе *BSD/Linux, который может обрабатывать гигабитный трафик, надежно работающий годами? Существует довольно много программных решений, но есть ли аппаратные средства для обеспечения надежного гигабитного межсетевого экрана?
Кто-то из открытых брандмауэров или коммерческих брандмауэров заявил
"взгляните на Juniper SRX. Вы никогда не получите такую же производительность с pfSense на Dell".
Он не означает, что pfSense на Dell не может даже сравниться с SRX100 за 480 долларов, верно?
5 ответов
Он, вероятно, имеет в виду аппаратное и программное обеспечение.
Вид сверху
Да, до определенного момента все аппаратные брандмауэры являются программными, но при наличии правильного оборудования вы можете перепрограммировать оборудование. Обычно это довольно дорогая операция, но после перепрограммирования оборудования брандмауэр может работать на скорости линии.
Производительность в Linux
У нас была DDOS-атака на один из наших сайтов с использованием GBit uplink. В нормальных условиях мы были в состоянии доставить почти со скоростью проволоки. Атака, однако, была простым SYN-Flood, и мы не могли ее выдержать.
Причиной была "дрянная" карта с единственной очередью приема. Это означало, что Linux использовал только одно ядро для получения пакетов с карты. Это привело к тому, что одно ядро работало на 100%, что было слишком медленно для обработки всех пакетов. Таким образом, все серверы за брандмауэром были скучны, но одно ядро было максимально задействовано (Да, у нас была защита SYN-Flood, но поскольку на карту было только много входящих пакетов - еще до того, как Linux узнал об этом - мы не выдержал)
После того, как мы обновили аппаратное обеспечение (только сетевую карту, а не что-либо еще на сервере) до сетевой карты с большим количеством очередей приема, мы увидели, что используется больше ядер, и этого было достаточно для нашего случая. Аппаратное обеспечение было (IIRC) 16 ядер процессора, 8 очередей на сетевой карте. Внезапно у нас было в 8 раз больше производительности, и этого было достаточно.
Что, как говорится:
Вы ничего не можете сделать против достаточно большой DDOS-атаки - нам просто повезло, что она не была больше, и новая установка смогла это выдержать.
Я бы всегда использовал аппаратный брандмауэр, если он подразумевает лучшее прикрытие: оставляя технические характеристики в стороне, это всего лишь вопрос управления рисками. Получите любое Cisco/Juniper/ любое другое оборудование и приличный контракт на поддержку, и вам нужно будет позвонить кому-нибудь, кто должен решить проблему или оплатить убытки в случае, если они не выполнят то, что обещали. Конечно, вам нужно получить бюджет на такие вещи, но в определенный момент деньги на инвестиции, вероятно, составят часть ожидаемого дохода. Также наличие контракта на поддержку и обвинение кого-то еще - хорошая тактика прикрытия:)
РЕДАКТИРОВАТЬ: отсутствует, если в последнем абзаце.
Уэлп, TIL Juniper Junos основан на FreeBSD, и это то, что происходит на их оборудовании маршрутизации. При этом вы, вероятно, сэкономите деньги и сэкономите небольшую головную боль при использовании устройства можжевельника, потому что в случае сбоя оборудования вы можете получить поддержку для него. Однако есть компании, которые производят устройства, предназначенные для работы с PFSense, и все, что вам нужно знать, это то, какой объем трафика вы приблизительно планируете пропустить через него.
Проблемы с программным обеспечением спорны, например, PFSense широко используется даже в корпоративных средах, поэтому их форумы переполнены информацией, и вы всегда можете обратиться к Faultserver.ru за помощью в PFSense.
Вы вроде как ответили на свой вопрос здесь.
Да, можно построить брандмауэр с высокой пропускной способностью, который обеспечит бесперебойную работу в течение многих лет и высокую пропускную способность, но вы не можете просто использовать нежелательное оборудование, чтобы добиться успеха, вы должны платить больше!
Если вы получаете HP DL360 G6 (например, с аналогичной спецификацией Dell или IBM подойдет) с двумя блоками питания, дисками SAS (или используете USB-флешку, подключенную к материнской плате) и устанавливаете его на приличную систему ИБП, конфигурация будет сидеть в течение многих лет и легко очищать Gig-трафик (встроенная поддержка NICS, если вы хотите лицензировать это), но если вы используете домашнюю материнскую плату с реалтеком Nic и i3, который вы получили из нижнего ящика вашего стола, у вас может быть беда.
Также имейте в виду, что приличные устройства брандмауэра используют FPGA для получения большого количества сумм, то есть логики скорости передачи данных, и ни одно программное решение не может приблизиться к такому, что для повышения эффективности раскрутка 2-х четырехъядерных Xeon в течение 3 лет будет стоить энергии!!
Вышеприведенный конфиг является дешевым из рынка восстановления, если вы зависаете от этого брандмауэра, вам нужен HP gen8 (или его эквивалент) с полной гарантией на месте, и, вероятно, 2 из них кластеризованы для восстановления после отказа...
У меня есть работающий ведущий / ведомый, использующий 10 Гбит с дросселированием до 2 Гбит через softtare, работающий в течение 1 1/2 года.
Это двухъядерные 6-ядерные процессоры Xeon с сетевыми картами Intel. Сетевые адаптеры Intel, которые мы выбрали тогда, были важны, но я забыл точную причину. Я знаю, что это как-то связано с драйверами и тем, как прерывания распределяются между ядрами.
У нас также было требование маршрутизировать интерфейс другого типа. То, что вы не могли купить в аппаратном брандмауэре, так что это было очень экономичное решение.
Так что да, это очень возможно сделать. Используйте серверное оборудование, хотя.
Я собираюсь предложить контрапункт к Server Horror и подробнее рассказать о том, что сказал migabi. Для малых и средних установок мне очень нравится OpenBSD с постоянно развивающимися pf, CARP и друзьями. Насколько я знаю, FreeBSD (и, следовательно, pfSense) отстают в получении последних обновлений pf и CARP.
Конечно, вы должны быть готовы провести собственное тестирование и найти достойные системы с приличными сетевыми картами и знать об ограничениях pf, но, по моему опыту, все настройки имеют свои ограничения. Включение одной конкретной функции проверки в аппаратном устройстве может несколько раз снизить производительность в два раза или даже хуже. И действительно ли вы внедрили бы коммерческое решение в производство без значительного тестирования для проверки заявлений производителя?
Во многих случаях вы можете получить два приличных блока для отработки отказа, а также третий для тестирования за меньшую сумму, чем вам придется заплатить за коммерческую альтернативу.
И, наконец, мне просто неудобно платить деньги за поддержку, когда она не обязывает их правильно документировать, покрывать убытки или исправлять ошибки в своем продукте. Я чувствую эту особую боль прямо сейчас, и боль без исходного кода - это не мое.