Контрольный список безопасности для размещения веб-сайта на выделенном сервере - Linux


1

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

Я работаю с колледжем, и мы установили там сервер IBM.

  1. ОС: CentOS 6.4
  2. Применение Тип: PHP/MYSQL
  3. программного обеспечения терминала доступа: PuTTY с SSH (Я также создал Public | Частные жетоны)

Другое программное обеспечение, которое у меня есть установлены следующие:

  1. Virtualmin (Помогал мне установить стек ЛАМПЫ)
  2. Memcached

В основном я выполнил все шаги, которые я нашел в этом учебнике на youtube. Я счел это порядочным, потому что он дал мне начало: http://www.youtube.com/watch?v=lpJfFZoWeho

Но это не было основанием для обеспечения безопасности.

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

Это будет отличная помощь для всех, кто только хочет начать.

1

Red Hat предоставляет руководство по безопасности для RHEL 6, которое также применимо к CentOS. Это доступно here. СНГ также предоставляет довольно приличный контрольный список, расположенный here.

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


1

Сохраните программное обеспечение, исправленное, особенно программное обеспечение, которое принимает входные данные от ненадежных источников (то есть пользователей, интернет, всех, кто не является вами).

Разрешите только то, что необходимо. Пример: не разрешать глобальный входящий SSH, разрешать соединения только из диапазона IP-адресов ваших офисов.

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

Убедитесь, что ваши запросы к базе данных устойчивы к инъекции SQL

Убедитесь, что ваш корневой документ определен и вы не подавая больше файлов, чем вы собираетесь.

Минимизация привилегий ваши учетные записям базы данных есть (они, вероятно, не нужны падение таблицы и создать, например)

Избегайте места в коде, где вы принимаете ввод данные пользователя и исполняющие или оценивающие его

Определите свои слабые места и установите защитные меры. Пример: memcached не обладает отличными функциями контроля доступа, поэтому привяжите его к localhost или заблокируйте нежелательные входящие подключения с помощью IPTables.

Удалить данные, принадлежащие вашим пользователям, которые больше не имеют ценности для вас. Вы не можете потерять то, чего у вас нет.

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


1

@ Совет Терри довольно прочный. Позвольте мне предложить более концептуальный взгляд.

Ваш сервер будет защищен, если все, что работает на нем, учитывается и поддерживается соответствующим образом. Хотя это звучит как тавтология (это), это указывает на некоторые общие принципы:

  • Всегда наносите обновления безопасности от поставщика программного обеспечения. В дистрибутивах Linux есть инструменты для этого; пусть они бегут.
  • Если возможно, не устанавливайте программное обеспечение, которое не принадлежит поставщику дистрибутива Linux, поскольку дополнительное программное обеспечение означает дополнительную работу по применению исправлений безопасности.
  • Не берите ничего, что вам не нужно. Новая, пустая установка ОС имеет тенденцию порождать целый ряд услуг, которые не являются строго необходимыми для ваших операций. В частности, используйте netstat -a, чтобы увидеть, что удалённо достижимо услуги находятся на вашей машине, и lsof, чтобы найти соответствующий процесс.
  • Удостоверьтесь, что в любое время существует определенная цепочка . Если что-то происходит плохо, люди должны знать, с кем связаться и как. Сервер без четко определенного sysadmin - это сервер, который скоро станет частью ботнета или уже есть. Удостоверьтесь, что, когда вы отправляетесь в отпуск, для выполнения задач системного администрирования есть еще кто-то другой.
  • Сделайте резервные копии. Храните несколько последовательных резервных копий, а не сохраняйте только последнюю. Это очень помогает для восстановления после атаки, хотя бы для анализа postmortem. Помните, что ваш сервер предназначен для запуска службы .: наличие - главная цель. Частые и всеобъемлющие резервные копии могут помочь вам быстрее запустить службу в Интернете.