Защита нового сервера Ubuntu [закрыто]

37

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

Codebeef
источник
здесь есть похожий вопрос, это может помочь; serverfault.com/questions/11659
hayalci

Ответы:

25

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

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

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

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

Can Berk Güder
источник
1
Измените порт для таких служб, как MySQL (бесполезно, если настроить его на использование только сокетов), FTP (хотя, если вы в безопасности, вы вообще не должны использовать FTP), SSH и все виды.
Джош Хант
3
Msgstr "удалить все ненужные пакеты". ХОРОШО. Это довольно расплывчато. Какие «ненужные» пакеты?
Люк
2
@ Люк: Все, что вы не используете, не нужно. Более конкретные, работающие сервисы, которые вам не нужны, подвергают машины ненужному риску.
Андриоид
@Luke: cat / etc / services должен дать вам несколько идей.
Иешурун
17

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

Алистер Булман
источник
3
когда вы ссылаетесь на домашнюю страницу sourceforge - denyhosts также доступен в хранилище (вселенная) через «sudo aptitude install denyhosts»
Олаф,
хорошая точка зрения @olaf. Большинство серверов, на которых я его установил, были RHEL, где он также находится в репозитории DAG.
Алистер Булман
+1 Для денихостов
wimvds
2
Похоже, что DenyHosts обнаруживает и блокирует атаки с использованием грубой силы ssh. Лучшим выбором был бы fail2ban (он также доступен в репозиториях), который отслеживает множество вещей, включая журналы apache и другие. Проверьте вики сообщества на help.ubuntu.com/community/Fail2ban
jeshurun
10

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

Майк Маккуэйд
источник
У вас есть ссылка для этого?
Пламя
1
Извините, думал, что ссылка была в посте. Это по адресу: debian.org/doc/manuals/securing-debian-howto
Майк
5

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

Тим Хоулэнд
источник
4

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

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

Mikeage
источник
3

Делай, что может предложить ...

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

Джодер Хо
источник
2
На любом сервере, доступном через Интернет, iptables всегда необходим. ;-)
Кристофер Кашелл
3

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

Тимо Гюш
источник
3

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

оборота Кристиан Чиупиту
источник
3

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

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

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

FireHOL

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

Ferm

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

Shorewall

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

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

Другие:

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

  • Установите IDS.

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

Люк не имеет имени
источник
2

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

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