Скажем, у меня новая версия Ubuntu, какие шаги я должен предпринять, чтобы защитить ее для использования в качестве сервера приложений Rails?
linux
ubuntu
security
application-server
Codebeef
источник
источник
Ответы:
Я не могу думать ни о каких специфических настройках Ubuntu, но вот некоторые из них, которые применимы ко всем дистрибутивам:
Конечно, этот список не полный, и вы никогда не будете в полной безопасности, но он охватывает все подвиги, которые я видел в реальной жизни.
Кроме того, эксплойты, которые я видел, почти всегда были связаны с небезопасным пользовательским кодом, а не с небезопасной конфигурацией. Конфигурации по умолчанию в минимальных серверных дистрибутивах, как правило, довольно безопасны.
источник
Одна из первых вещей, которые я делаю на ранних этапах, - это установка DenyHosts . Он будет регулярно просматривать / var / log / secure, искать неудачные входы в систему и после нескольких сбоев блокировать IP. Я установил блокировку после первого отсутствия такого пользователя, со второй попытки рута и после пары попыток для реальных пользователей (на случай, если у вас не получится, но вы должны использовать открытый ключ SSH для входа в систему).
источник
Ubuntu основана на Debian, и я обнаружил, что Руководство по безопасности Debian очень полезно в дистрибутивах на основе Debian, чтобы полностью провести вас по вашей системе и проверить каждую часть. По сути, это действительно очень всеобъемлющий ответ на ваш вопрос.
источник
Я обычно устанавливаю RKHunter, который сканирует руткиты и проверяет целостность различных важных двоичных файлов системы. Он находится в стандартном репо и будет запускаться ежедневно из cron. Это не идеально, с точки зрения безопасности, но это элемент с минимальными усилиями, который нужно добавить, и он обеспечивает определенную степень защиты.
источник
Установите logcheck, но настройте его так, чтобы вы никогда не получали сообщений от обычных событий, иначе вы привыкнете игнорировать электронные письма.
Проверьте, какие процессы прослушивают, используя netstat, и убедитесь, что ничего не запущено и не требует запуска. Многие демоны могут быть настроены только на прослушивание внутреннего IP (или локального хоста) вместо всех интерфейсов.
источник
Делай, что может предложить ...
Nmap хост и отключить все несущественные услуги. При необходимости используйте iptables.
источник
Если вы собираетесь работать с сервером рядом с Интернетом, установите систему обнаружения вторжений, например, snort.
источник
Используйте отдельные разделы для различных каталогов, таких как
/tmp
или,/var
и смонтируйте ихnosuid
,nodev
и,noexec
если возможно.источник
Некоторые предложения брандмауэра.
Научитесь использовать брандмауэр и концепции правильной блокировки коробки. Изменение портов по умолчанию в значительной степени бесполезно; правильная настройка приложения и брандмауэра гораздо важнее.
Оба находятся в репозиториях Ubuntu:
FireHOL
имеет потрясающую документацию и очень простой в освоении синтаксис. Мне удалось настроить шлюз / брандмауэр за двадцать минут. Единственная причина, по которой я отошел от этого, заключается в том, что он не поддерживается (последний выпуск 2 года назад). Это не значит, что это не работает, но ...
Ferm
это еще один. Более похожий на iptables синтаксис, но та же концепция. Больше сообщества поддерживается чем FireHOL, но занимает больше времени, чтобы забрать.
Shorewall
это то, что я сейчас использую. Его документация обширна, и его формат конфигурации является табличным. Мне потребовалось около полутора часов, чтобы понять все файлы, необходимые (6) для запуска работающей конфигурации брандмауэра / шлюза. Это довольно мощный. СОВЕТ: Справочные страницы для различных конфигурационных файлов ДЕЙСТВИТЕЛЬНО полезны!
Все они загружают конфигурации брандмауэра из файла конфигурации. Очень эффективно, проще в использовании, чем iptables, и (на мой взгляд) проще в использовании и управлении, чем ufw.
Другие:
Я второй рекомендации для использования ключа SSH.
Установите IDS.
Узнайте о AppArmor. Он ограничивает доступ к файлам исполняемых файлов только указанными каталогами и файлами, которые ему нужны. Подобно SELinux в мире RHEL. Он установлен и включен с предварительно настроенными «профилями» для многих хорошо используемых программ.
источник
Помимо других предложений здесь я упомяну три очевидных, но, возможно, заслуживающих упоминания для полноты:
источник