После почти десятилетия (yikes) хостинга моих личных веб-сайтов и приложений у приличного провайдера общего веб-хостинга (тот, что в Питтсбурге) я решил, что пришло время рискнуть самостоятельно и попробовать виртуальный частный сервер.
В один то, что меня сдерживало, - это то, что я знаю, что на моем общем веб-хосте есть несколько настраиваемых систем безопасности / обнаружения инструкций для решения проблем, типичных для клиентов хостинга, которые хотят запускать приложения PHP. Я не хочу отказываться от этого спокойствия, но мои административные навыки занимаются исследованием причинно-следственных связей с помощью конфигураций и анализом журналов, чтобы увидеть: «О, вот как они нас трахнули».
Этот контекст установлен, если я собирался настроить учетную запись с VPS на базе Linux для веб-хостинга Apache
Какие шаги я предприму, чтобы обезопасить машину?
Какие дополнительные пакеты мониторинга я могу / должен установить?
Шаг 1: Обновляйте программное обеспечение по мере выхода исправлений. Если патчи для проектов, которые вы используете, выходят нерегулярно, пора найти альтернативы.
Шаг 2: Выездной лог. Злоумышленники могут скомпрометировать машину с помощью PHP, но если вы экспортируете журналы по сети на более сильный сервер, будет намного сложнее замести следы.
Шаг 3: Безопасный вход по SSH. Запустите SSH на нестандартном порту. Требовать надежные пароли или даже ограничивать вход с помощью ключей SSH. Установите fail2ban или какой-нибудь другой инструмент обнаружения грубой силы, чтобы предотвратить перегрузку. Отключите root-доступ, если ваш дистрибутив достаточно глуп, чтобы его разрешить.
Шаг 4: Обновите свое программное обеспечение. Стоит повторить. PHP, как известно, плохой, и виртуальный хостинг может сделать его огромной проблемой для обновления, укоренившей плохое поведение. Такие проекты, как пакет Debian, вы можете найти в PEAR и обновить. Подпишитесь на списки рассылки и назначьте время для внесения исправлений ежедневно или еженедельно.
Шаг 5: Резервные копии. Когда вас взломают, безопаснее всего выполнить восстановление из заведомо исправной системы. В этом вам могут помочь дополнительные резервные копии.
Существует множество пакетов обнаружения вторжений, таких как snort, aide и acidbase. Также существуют инструменты для тестирования на проникновение, такие как nessus / openvas.
Мне также нравится направлять простой инструмент времени безотказной работы на VPS, чтобы задокументировать перебои в работе на случай возврата денег.
Вот что я обычно делаю:
Это в дополнение к предложениям, предложенным другими. Существует множество более продвинутых инструментов, таких как snort - я рекомендую вам изучить их. Тем не менее, этот контрольный список должен помочь вам перейти на VPS.
jldugger предлагает много отличных идей - я бы добавил к этому, что вы, вероятно, захотите изучить apache mod_security, а также suexec. Mod_security поставляется с набором готовых фильтров, которые проверяют http-вызовы на ваш сервер и отклоняют их, если обнаруживают что-то подозрительное. Suexec позволяет запускать скрипты php / perl / etc от имени пользователя, которому они принадлежат, в отличие от того, что все они запускаются под пользователем www-data.