Security

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

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

Я использую множество подходов для защиты серверов, например:

  1. ssh на нестандартных портах; никакого ввода пароля, только известные ключи ssh с известных ip для входа и т. д.;

  2. https и ограниченные оболочки (rssh), как правило, только с известных ключей/ips;

  3. серверы с минимальными настройками, регулярно обновляются и исправляются;

  4. для мониторинга использую такие вещи, как rkhunter, cfengine, lynis denyhosts и т. д.

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

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

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

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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

 

Схожие статьи

Security

Нужен ли в Linux антивирус?

Security

Контрольный список ИТ-аудита

Как зашифровать в MD5 важную информацию и как работает шифрование MD5
Security

Как зашифровать в MD5 важную информацию и как работает шифрование MD5

Security

Отключить сеть или питание (при подключении корневого сервера)?