Защита и мониторинг виртуального частного сервера

После почти десятилетнего (хостинга) хостинга моих личных веб-сайтов и приложений с приличным провайдером общего веб-хостинга (один в Питтсбурге) я решил, что пришло время рискнуть самостоятельно и попробовать виртуальный частный сервер.

Единственное, что меня сдерживало, это то, что я знаю, что на моем общем веб-хосте есть несколько настраиваемых систем безопасности / настройки обнаружения команд для решения проблем, характерных для хостинговых клиентов, которые хотят запускать приложения PHP. Я не хочу отказываться от этого душевного спокойствия, но мои навыки администратора расширяют возможности анализа причинно-следственных связей с конфигурациями и разбирают журналы, чтобы увидеть: "О, это то, что нас поразило".

Этот контекст установлен, если я собираюсь настроить учетную запись с VPS на основе Linux для веб-хостинга Apache

  1. Какие шаги я предприму, чтобы обезопасить машину?

  2. Какие дополнительные пакеты мониторинга можно / нужно установить?

3 ответа

Решение

Это то, что я обычно делаю:

  • Установите хороший брандмауэр. Выходная фильтрация так же важна, как и вход. Если кому-то удастся запустить IRC-баунсер на вашем VPS, было бы неплохо, если бы он не мог общаться с внешним миром. APF довольно приличный для этого и прост в настройке.
  • Установите mod_security быстро. Вы можете получить некоторые действительно полные правила, которые довольно часто обновляются от ребят из Gotroot. Отказ от ответственности, один из них мой друг.
  • Сконфигурируйте PHP с помощью suexec, убедитесь, что ваши PHP-скрипты запускаются от имени пользователя, которому они принадлежат. Кроме того, настройте PHP только с тем, что вам нужно.
  • Не ослабляйте свою конфигурацию PHP только для запуска найденного вами скрипта. Другими словами, не включайте register_globals только для того, чтобы работала какая-то устаревшая корзина.
  • Удаленные серверы системного журнала всегда хороши. Возможно, получите два VPS-сервера, используйте один для хранения резервных копий и ведения журналов.
  • Запускайте ежедневные проверки руткитов. Запустите первый сразу после того, как настроите свой сервер, прежде чем запустить его в эксплуатацию. Они работают путем хранения хэшей системных исполняемых файлов и обнаружения изменений, а также поиска сигнатур распространенных эксплойтов.
  • Если на VPS, где хост контролирует ваше ядро, настаивайте, чтобы они обновляли его. Например, слабость в linux vmsplice позволила обычным пользователям легко стать пользователем root. Удостоверьтесь, что ваш провайдер делает все возможное для решения ваших вопросов.
  • Заведите друзей на различных форумах, связанных с хостингом, найдите их, а также SF для ответов и советов. Этот тип вопросов довольно часто встречается на этих форумах.

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

Шаг 1. Обновите программное обеспечение по мере выхода исправлений. Если патчи не появляются регулярно для проектов, которые вы используете, пришло время найти альтернативы, которые делают.

Шаг 2: Внешняя регистрация. Злоумышленники могут скомпрометировать компьютер с помощью PHP, но если вы экспортируете журналы по сети на более сильный сервер, это намного сложнее, чтобы скрыть треки.

Шаг 3: Безопасный вход по SSH. Запустите SSH на нестандартном порту. Требуйте надежные пароли или даже ограничьте входы в систему ключами SSH. Установите fail2ban или другой инструмент обнаружения грубой силы, чтобы избежать перегрузки. Отключите root-доступ, если ваш дистрибутив достаточно глуп, чтобы разрешить это.

Шаг 4: Обновите ваше программное обеспечение. Это стоит повторить. Общеизвестно, что PHP плох, а виртуальный хостинг может сделать его огромным количеством обновлений, что ведет к плохому поведению. Такие проекты, как пакеты Debian, которые вы можете найти в PEAR и обновить. Подпишитесь на списки рассылки и планируйте время ежедневно или еженедельно для исправления адресов.

Шаг 5: Резервное копирование. Когда вас взломали, безопаснее всего восстановить из заведомо исправной системы. Инкрементные резервные копии могут помочь вам в этом.

Существует множество пакетов для обнаружения вторжений, таких как snort, aide и acidbase. Есть также инструменты для пентестинга, такие как nessus/openvas.

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

jldugger предлагает много отличных идей - я бы добавил к этому, что вы, вероятно, захотите взглянуть на apache mod_security, а также на suexec. Mod_security поставляется с набором готовых фильтров, которые проверяют http-вызовы на ваш сервер и отклоняют их, если он видит что-то подозрительное. Suexec позволяет вам запускать скрипты php/perl/etc от имени пользователя, которому они принадлежат, а не от имени пользователя www-data.

Другие вопросы по тегам