Зачем мне брандмауэр, если мой сервер хорошо настроен?

59

Я управляю несколькими облачными (VPS) серверами для компании, в которой я работаю.

Серверы - это минимальные установки Ubuntu, которые запускают биты стеков LAMP / сбора входящих данных (rsync). Данные большие, но не личные, финансовые или что-то в этом роде (т.е. не очень интересные)

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

Например, я использую несколько подходов для защиты серверов (но не ограничиваясь ими)

  • SSH на нестандартных портах; нет ввода пароля, только известные ключи ssh из известных ips для входа в систему и т. д.
  • https и оболочки с ограниченным доступом (rssh) обычно только из известных ключей / ips
  • серверы минимальны, обновлены и регулярно обновляются
  • использовать такие вещи, как rkhunter, cfengine, lynis denyhosts и т. д. для мониторинга

У меня большой опыт работы с админом unix sys. Я уверен, что знаю, что я делаю в моих установках. Я настраиваю / etc файлы. Я никогда не чувствовал настоятельной необходимости устанавливать такие вещи, как брандмауэры: iptables и т. Д.

Отложите на минуту вопросы физической безопасности VPS.

Q? Я не могу решить, являюсь ли я наивным или дополнительная защита, которую может предложить fw, стоит усилий по изучению / установке и дополнительной сложности (пакеты, файлы конфигурации, возможная поддержка и т. Д.) На серверах.

На сегодняшний день (коснитесь дерева) у меня никогда не было проблем с безопасностью, но я не доволен этим.

крестцовой
источник
2
Смотрите также: serverfault.com/questions/201298/why-should-i-firewall-servers
splattne
Вы должны попробовать на security.stackexchange.com
AviD
6
Дайте мне ваш IP - адрес , и я буду показать вам , почему вам нужен брандмауэр.
GregD

Ответы:

87

Я отмечаю, что вы проделали большую работу, связав несколько разных демонов, и из того, что вы сказали, я думаю, вряд ли вы подвергнете себя проблемам из-за тех услуг, которые вы уже обеспечили. Это по-прежнему оставляет вас в состоянии «все разрешено, кроме того, что я запретил», и вы не можете выйти из этого состояния, выслеживая демона за демоном и защищая их одного за другим.

Брандмауэр, настроенный на ЛЮБОЙ ЛЮБОЙ по умолчанию, переводит вас в режим «все запрещено, кроме того, что разрешено», и я обнаружил, что в течение многих лет они лучше.

Прямо сейчас, имея в вашей системе легитимного пользователя с легитимной оболочкой, она может решить запустить некоторый локальный непривилегированный демон для прокси веб-запросов для Интернета, или запустить общий доступ к файлам через порт 4662, или случайно открыть слушателя, используя -g с туннелированием порта ssh, не понимая, что он делает; или установка sendmail может привести к тому, что вы запустите MUA на порту 587, который был неправильно настроен, несмотря на всю работу, которую вы проделали над защитой sendail MTA на порту 25; или может произойти сто одна вещь, которая обойдет вашу осторожную и вдумчивую безопасность просто потому, что их не было рядом, когда вы тщательно обдумывали, что запретить.

Вы понимаете мою точку зрения? На данный момент вы приложили немало усилий, чтобы защитить все, что вам известно, и, похоже, они вас не кусают. То, что может вас укусить, - это вещи, о которых вы не знаете или которых сейчас нет.

Брандмауэр, который по умолчанию установлен как DENY ANY ANY (ЛЮБОЙ ЛЮБОЙ), - это способ, с помощью которого системный администратор может сказать, что если что-то новое появится и откроет сетевой прослушиватель на этом сервере, никто не сможет общаться с ним, пока я не предоставлю явное разрешение .

Безумный Шляпник
источник
Это очень проницательный ответ, в частности текст о переключении с «все разрешено ...» на «все запрещено ...». Твоё мнение также хорошо про местные демоны. Как это часто бывает - я уверен, что вы согласитесь - опасность часто находится "изнутри"
Aitch
12
(Aitch, если я могу немного предположить, ваш профиль предполагает, что вы новичок на сервере. Местный этикет таков, что, когда вы довольны ответом, вы принимаете его, нажимая на схему галочки, если память служит; Это движет системой репутации. Конечно, если вы уже знаете это, или вы ждете, чтобы увидеть, появятся ли другие, более качественные ответы, то это тоже очень правильно и правильно, и, пожалуйста, игнорируйте меня. Сообщество просит об этом только один раз. Вы полностью удовлетворены ответом на свой вопрос, вы принимаете его.)
MadHatter
+1 @MatHatter - хорошее описание того, как брандмауэры могут обеспечивать безопасность по умолчанию, а не выбор.
Coops
Это расчетный риск. По крайней мере, в OpenBSD, включение pf добавляет 35K строк кода в ядре, которые могут содержать ошибки. С другой стороны, отказ по умолчанию - и надлежащий брандмауэр регистрации - это лучшая IDS, которую можно купить за деньги. Перестаньте пытаться использовать Snort для поиска плохих вещей: всякий раз, когда любая из ваших машин делает что-то, что вы не разрешаете, вы должны получать уведомления.
Алекс Холст
14

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

Другое дело, что ваши серверы, скорее всего, будут стандартными аппаратными средствами или оборудованием, специфичным для обработки серверного программного обеспечения, работающего поверх стандартной серверной ОС (Unix, NT, Linux). То есть у них нет специализированного оборудования для эффективной обработки и фильтрации входящего трафика. Хотите, чтобы ваш сервер обрабатывал все возможные многоадресные, ICMP-пакеты или сканирование портов?

Скорее всего, вы хотите, чтобы ваши серверы физически обрабатывали запросы только к некоторым портам (80, 443, ваш порт ssl, ваш типичный порт oracle 1521, ваш порт rsync и т. Д.) Да, конечно, вы устанавливали программные брандмауэры на своем серверы для прослушивания только этих портов. Но ваши сетевые адаптеры по-прежнему будут нести основную нагрузку на нежелательный трафик (будь то злокачественный или нормальный в вашей организации). Если ваши сетевые адаптеры становятся заблокированными, то сетевые пути проходят через ваши серверы (и, возможно, между вашими серверами и внутренними клиентами и подключениями к другие внутренние серверы и сервисы.)

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

С другой стороны, брандмауэры, особенно те, которые находятся на краях подсетей (или отделяют ваши подсети от внешнего мира), как правило, представляют собой специализированное оборудование, специально созданное для обработки тома такого типа.

Вы можете окружить N количество серверов M количеством брандмауэров (с N >> M). И вы настраиваете аппаратное обеспечение брандмауэра для вывода всего, что не направлено на определенные порты. Сканирование портов, ICMP и другое дерьмо отсутствуют. Затем вы настраиваете программный брандмауэр на своих серверах в соответствии с их конкретными функциями.

Теперь вы только что уменьшили (но не устранили) вероятность полного отключения, уменьшив его до разбиения сети или, в худшем случае, до частичного сбоя. И, таким образом, вы повысили способность своих систем пережить атаку или неправильную конфигурацию.

Отсутствие брандмауэра из-за того, что на ваших серверах он есть, похоже на ощущение безопасности при пристегнутом ремне безопасности при движении на скорости 120 миль в час при нулевой видимости из-за тумана. Это не работает таким образом.

luis.espinal
источник
4

Существует множество атак, на которые вы могли бы попасть, если у вас нет брандмауэра, который выполняет какую-то проверку на уровне пакетов:

Пример - рождественский пакет

http://en.wikipedia.org/wiki/Christmas_tree_packet

DDOS-атаки могут быть направлены против вашей системы, брандмауэр (возможно, внешний, прежде чем какой-либо из ваших серверов) остановит / замедлит / уничтожит трафик, прежде чем он нанес вред вашим серверам.

Тот факт, что у вас нет финансовых или личных данных на серверах, не означает, что вы не пострадаете. Я уверен, что вы платите за пропускную способность, или использование процессора, или у вас есть измеренная скорость. Представьте, что в течение ночи (пока вы спите) кто-то прибегает к вашему счетчику (я видел, как это происходило с провайдерами VOIP-коммутаторов, получающими по ночам миллионы минут трафика, за которые им приходится платить по счетам).

Так что будьте умны, используйте защиту, если она есть, вы НЕ СОВЕРШЕННЫ, как и программное обеспечение. Это только безопасно, пока не найден следующий эксплойт. ;)

Якуб
источник
2

Если вы можете применять принцип наименьших привилегий без использования брандмауэра, вам, вероятно, он не нужен. С моей точки зрения, создание безопасной системы без использования брандмауэра требует больше усилий, и я довольно ленив. Почему я должен беспокоиться об ограничении TCP-подключений с помощью других инструментов и, возможно, многих файлов конфигурации, когда я могу разделить привилегии на транспортном уровне с помощью одной конфигурации.

Alex
источник
1
Хорошая мысль об одном конфиге, меньше места для ошибок. Я согласен с тем, чтобы быть ленивым везде, где это возможно! cfengine устраняет некоторые из этих сложностей для меня, частично смягчая проблему многих конфигурационных файлов .... но ... это только так хорошо, как правила, которые написаны, конечно. Таким образом, вы оставляете большинство конфигурационных файлов по умолчанию (или почти как) в качестве вторичного барьера, а брандмауэр является (по крайней мере, на уровне слоя) основной задачей.
Aitch
2
Сначала я проголосовал за PoLP, а затем проголосовал за лень. Брандмауэры не являются инструментами, позволяющими их владельцам быть небрежными. Вам следует напрячь свою поверхность атаки, потому что, если злоумышленник пройдет через брандмауэр (в конце концов, у вас должно быть что-то открытое), он может просто отключить iptables. Примените свою лень там, где она есть: сделайте систему как можно более свободной, чтобы вам не пришлось долго ее чинить.
Марцин
@ Марчин Я имею в виду, что если кто-то хочет обезопасить систему без использования брандмауэра, он должен сначала создать всеобъемлющую модель угроз. Брандмауэры подразумевают известную и хорошо описанную модель угроз, поэтому мне не нужно создавать ее с нуля для каждого хоста. Конечно, если мы говорим о безопасности военного уровня, выбора нет, формальная модель угрозы должна быть построена.
Алекс
1

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

Например, если злоумышленник получил контроль над внешним IP-адресом и засыпает ваши серверы нежелательными пакетами, и вы хотите уменьшить влияние, которое он оказывает на ваши серверы ... вы можете настроить каждый из уязвимых серверов на удаление вредоносных пакетов. или просто внесите изменения в брандмауэр, и все ваши серверы будут защищены. Наличие брандмауэра уменьшило ваше время реакции.

Аллен
источник
Кроме того, в любом случае настройка брандмауэра происходит на каждом сервере.
mfinni
1

Вы или кто-то другой можете сделать ошибку при настройке вашего сервера в один прекрасный день, тогда брандмауэр дает вам второй шанс остановить кого-то, входящего. Мы не идеальны, мы делаем ошибки, и поэтому немного «ненужной» страховки может быть полезно ,

(Старайтесь не запускать брандмауэр в той же ОС, что и ваши серверы, иначе вы обнаружите одну ошибку в ОС .... Я считаю, что все версии Unix - это одна и та же ОС, поскольку у них так много общего)

Ян Рингроз
источник
Отлично, смешивание платформ (ОС и оборудования) является ключевым.
DutchUncle
1

Брандмауэры специализируются на манипулировании трафиком. Они делают это быстро и имеют ресурсы. И вы не тратите ресурсы сервера на фильтрацию трафика (время на диске / время процесса / и т. Д.). Вы должны настроить некоторую безопасность в серверной среде, но все проверки трафика, вирусов и т. Д. Должны выполнять специализированные серверы.

MealstroM
источник
-2

Я был бы обеспокоен тем, что если вас когда-нибудь взломают и у вас не будет брандмауэра. Хакеры могут открыть другие порты на ваших серверах. Кроме того, если консультант привлекается для очистки и проверки, первое, что он скажет: «ЧТО?!?! У вас нет брандмауэра!» Тогда тебя могут сжечь.

jftuga
источник
-1 Немного сенсационный ответ + не очень конструктивно.
Coops
2
Если сервер скомпрометирован, то брандмауэр не обязательно поможет, когда взломанный bozo просто отключает его! * Disclaimer, в вопросе упоминалось использование iptables, а не отдельного аппаратного брандмауэра.
Брайан