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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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