Скажем, у меня свежая установка Ubuntu. Какие шаги я должен предпринять, чтобы защитить ее для использования в качестве сервера приложений Rails?
Я не могу придумать никаких настроек, специфичных для Ubuntu, но вот несколько, которые применимы ко всем дистрибутивам:
Конечно, этот список неполный, и вы никогда не будете в полной безопасности, но он охватывает все эксплойты. я видели в реальной жизни.
Кроме того, эксплойты, которые я видел, почти всегда были связаны с небезопасным пользовательским кодом, а не с небезопасной конфигурацией. Конфигурации по умолчанию в минимальных серверных дистрибутивах, как правило, довольно безопасны.
На раннем этапе я делаю одно быстрое действие - устанавливаю 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:
имеет отличную документацию и очень простой в освоении синтаксис. Я смог настроить шлюз / брандмауэр за двадцать минут. Единственная причина, по которой я отошел от этого, заключается в том, что он, похоже, не поддерживается (последний выпуск 2 года назад). Не значит, что не работает, но ...
это еще один. Синтаксис больше похож на iptables, но та же концепция. Сообщество поддерживается больше, чем у FireHOL, но требуется больше времени, чтобы набрать его.
это то, что я использую сейчас. Его документация обширна, а формат его конфигурации - табличный. Мне потребовалось около полутора часов, чтобы понять все файлы, необходимые (6) для запуска работающей конфигурации межсетевого экрана / шлюза. Это довольно мощно. СОВЕТ: страницы руководства для различных файлов конфигурации ДЕЙСТВИТЕЛЬНО полезны!
Все они загружают конфигурации брандмауэра из файла конфигурации. Очень эффективен, проще в использовании, чем непосредственно iptables, и (на мой взгляд) проще в использовании и управлении, чем в ufw.
Я поддерживаю рекомендации по использованию ключа SSH.
Настройте IDS.
Узнайте об AppArmor. Он ограничивает доступ к файлам исполняемых файлов только указанными каталогами и файлами, которые ему нужны. Подобно SELinux в мире RHEL. Он устанавливается и активируется с предварительно настроенными «профилями» для многих часто используемых программ.
Помимо других предложений, здесь я упомяну три очевидных, но, возможно, заслуживающих упоминания для полноты картины: