Безопасность сервера для хостинга

Безопасность сервера для хостинга — комплексное решение, включающее в себя настройку многих компонентов на слаженную работу.

Я условно разделил защиту сервера на пассивную и активную. Пассивная защита это то, что можно один раз настроить и забыть — эффективность не зависит от внимания администратора, активная же требует периодического внимания и каких-либо действий со стороны администратора.

К элементам пассивной защиты можно отнести:

  1. Изоляция пользователей
  2. Права на папки и файлы (chmod)
  3. Резервное копирование
  4. Настройка веб-сервера
  5. Настройка файрвола

К активной защите я отношу следующее:

  1. Анализ логов на предмет нежелатльной активности
  2. Проверка файлов сайта на предмет наличия вредоносного кода
  3. Обновления программ и скриптов

Теперь подробнее по каждому пункту, начнём с пассивной защиты т.к. это на мой взгляд важнее — чем тщательнее вы настроите пассивную защиту, тем меньше времени будет тратиться на активную.

Изоляция пользователей

Это крайне важная и серьёзная тема, описал в подробностях в отдельной статье.

Права на папки и файлы (chmod)

Этот пункт напрямую вытекает из предыдущего. Если мы разделили между собой сайты, можно поставить жесткие права на папки и файлы. На папку загрузок теперь достаточно стандартных прав 755 т.к. туда пишет наш пользователь, а не сервер. На конфиг с данными доступа нужно поставить права 444 — чтобы никто туда не мог ничего записать, только читать. Если система управление сайтом разделяет загруженные файлы по месяцам — можно ставить права 444 на папки и файлы предыдушего месяца.

Резервное копирование

Про бэкапы написано очень много специализированной литературы, так что я просто повторю:

  • Делайте бэкапы. Регулярно!
  • Храните бэкапы на севрвере в другом ДЦ
  • Восстанавливайте бэкапы для теста

Я делаю ежедневные бэкапы на соседний винт, еженедельные на сервер в другом ДЦ и ежемесячные в облако.

И, конечно, не могу не напомнить, что администраторы делятся на две группы — те кто ещё не делает бэкапы и те кто уже делает.

Настройка веб-сервера

К этому пункту относится настройка как самого веб-сервера, так и интерпретатора PHP. Большая часть данного пункта описана в статье по реализации принципа 1 сайт = 1 пользователь. Из остального — максимально ограничить информаци, отдаваемую сервером. Нужно скрыть версию используемого ПО и запретить вывод ошибок на экран, все ошибки нужно записывать в логи.Так же нужно запретить исполнение скриптов в папке загрузок системы управления сайтом. Запретить исполнение опасных функций php и вывод phpinfo — лишняя информация опять же.

Настройка файрвола

С этим пунктом всё просто. Нужно проследить какие порты используются на сервере и закрыть всё остальное. Так же через файрвол можно задать такие полезные параметры как количество соединений на одного пользователя и количество соединений в промежуток времени — это поможет в борьбе с простейшими DDoS атаками.

Анализ логов на предмет нежелательной активности

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

Проверка файлов сайта на наличие вредоносного кода

Проверяйте новые файлы сайта на предмет подозрительных участков кода — зашифрованные участки, внешние ссылки, опасные функции. Для первичного анализа могу посоветовать AiBolit — скрипт отечественного разработчика.

Авторизация и пароли

Отключите root логин, настройте авторизацию по ключам вместо пароля, ограничьте доступ к авторизации по IP. Если же нужна авторизация по ключам — не сохраняйте пароли в программах, зачастую пароль там хранится в обычном текстовом файле в открытом виде и его не составит труда найти и использовать.

Кроме всего перечисленного, хочу ещё раз напомнить — не устанавливайте лишних скриптов и программ. На сервере помимо операционки с ssh, должен стоять только веб-сервер, php, mysql и почтовый сервер отправки почты. Всё остальное стоит делегировать специализированным сервисам.

Comments

  1. skeptic says

    Если пассивная безопасность настроена хорошо, достаточно иногда просматривать текстовые файлы. Можно это автоматизировать написав парсер и выдёргивать строки с ошибками например или с кривыми запросами.
    Если хочется сразу банить негодяев, можно использовать готовые решения типа fail2ban или подобные

  2. skeptic says

    Agronom, зависит от типа размещения сайта. На шаредах есть панели управления и в них вкладка для бэкапов — просто настроить расписание и готово. Главное не забывать проверять восстанавливаются ли это бэкапы.
    На серверах можно использовать готовые решения типа backula, duplicity или написать свой велосипед — там скрипт на пару десятков строк баша будет.

Добавить комментарий для Сергей Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *