Назад | Перейти на главную страницу

Обеспечение безопасности нового сервера Ubuntu

Скажем, у меня свежая установка Ubuntu. Какие шаги я должен предпринять, чтобы защитить ее для использования в качестве сервера приложений Rails?

Я не могу придумать никаких настроек, специфичных для Ubuntu, но вот несколько, которые применимы ко всем дистрибутивам:

  1. Удалите все ненужные пакеты
  2. Использовать аутентификацию только с открытым ключом в SSH
  3. Отключить вход в систему root через SSH (не относится к Ubuntu)
  4. Используйте производственные настройки для PHP (рекомендуется php.ini)
  5. Настройте MySQL для использования только сокетов

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

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

На раннем этапе я делаю одно быстрое действие - устанавливаю DenyHosts. Он будет регулярно просматривать / var / log / secure в поисках неудачных попыток входа и после пары неудач блокировать IP. Я установил блокировку после первого не такого пользователя, при второй попытке получить root-доступ и после пары попыток для реальных пользователей (на случай, если вы ошиблись, но вы должны использовать открытый ключ SSH для входа в систему).

Ubuntu основан на Debian, и я нашел Руководство по обеспечению безопасности Debian быть очень полезным в дистрибутивах на основе Debian, чтобы полностью провести вас по вашей системе и проверить каждую часть. По сути, это действительно исчерпывающий ответ на ваш вопрос.

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

Установите logcheck, но настройте так, чтобы вы никогда не получали сообщения от обычных событий, иначе вы получите привычку игнорировать электронные письма.

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

Делайте то, что предлагает Can ...

Nmap хоста и отключите все второстепенные службы. При необходимости используйте iptables.

Если вы собираетесь подключиться к Интернету с сервером, установите систему обнаружения вторжений, например snort.

Используйте отдельные разделы для разных каталогов, например /tmp или /var и установите их с nosuid, nodev и noexec если возможно.

Некоторые предложения по брандмауэру.

Научитесь использовать брандмауэр и концепции правильной блокировки ящика. Смена портов по умолчанию в значительной степени бесполезна; Гораздо важнее правильная настройка приложения и брандмауэра.

Оба находятся в репозиториях Ubuntu:

FireHOL

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

Ферм

это еще один. Синтаксис больше похож на iptables, но та же концепция. Сообщество поддерживается больше, чем у FireHOL, но требуется больше времени, чтобы набрать его.

Shorewall

это то, что я использую сейчас. Его документация обширна, а формат его конфигурации - табличный. Мне потребовалось около полутора часов, чтобы понять все файлы, необходимые (6) для запуска работающей конфигурации межсетевого экрана / шлюза. Это довольно мощно. СОВЕТ: страницы руководства для различных файлов конфигурации ДЕЙСТВИТЕЛЬНО полезны!

Все они загружают конфигурации брандмауэра из файла конфигурации. Очень эффективен, проще в использовании, чем непосредственно iptables, и (на мой взгляд) проще в использовании и управлении, чем в ufw.

Другой:

  • Я поддерживаю рекомендации по использованию ключа SSH.

  • Настройте IDS.

  • Узнайте об AppArmor. Он ограничивает доступ к файлам исполняемых файлов только указанными каталогами и файлами, которые ему нужны. Подобно SELinux в мире RHEL. Он устанавливается и активируется с предварительно настроенными «профилями» для многих часто используемых программ.

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

  1. Если вы не думаете, что вам нужен брандмауэр, подумайте еще раз. ufw прост, но разработан для Ubuntu и основан на iptables
  2. Обновите пакеты: как минимум примените все исправления безопасности
  3. Задокументируйте, что вы сделали для защиты сервера и почему. Включите процессы настройки (автоматические) для мониторинга журналов, тестирования конфигурации и отчетов об обновлениях безопасности, которые необходимы.