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


10

Какова процедура защиты Linux, Apache, MySQL, PHP Server (или даже Perl) для производственного использования?

Кроме установки пароля MySQL и пароля root для Linux, какие другие (возможно, не столь очевидные) шаги следует предпринять?

Кроме того, какие шаги я могу предпринять, если я собираюсь быть параноиком, это обычно не требуется?

Это для базового использования одного сайта, но должно быть безопасным.


Apache Hardening на родственном сайте.
— Марчин

Ответы:


13

Эти рекомендации не в моей голове и не должны быть исчерпывающими.

Проверьте Bastille, это серия сценариев, которые реализуют лучшие практики в Linux.

Не отправляйте данные аутентификации по незашифрованным протоколам. Например, отключить FTP. Если вы отправляете данные аутентификации через Apache, используйте SSL.

Отключите и удалите все ненужное программное обеспечение, включая графический интерфейс.

Аудит любых файлов с установленным битом SUID и удаление. (Это будет серьезно ограничивать некорневые способности. Понимать последствия для каждого отдельного изменения.)

Аудит общедоступных записываемых каталогов и удаление доступных для записи битов. (Оставьте / TMP в одиночку.)

Избегайте запуска любого демона как root.

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

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

Применять стандарты паролей. Например: минимум 10 символов, не алфавитно-цифровые символы, используя буквы и цифры. Это делает грубое принуждение более сложным в случае компрометации файла паролей. Обеспечить это через систему.

Блокируйте пользователей после 5 неудачных попыток аутентификации с минимальной блокировкой 10 минут. Вести историю паролей, чтобы пользователи не могли использовать последние 5 паролей.

Если вы используете большую среду, абсолютное требование - использовать сегрегацию сети с несколькими подсетями для изоляции риска. Если среда меньше, рекомендуется использовать брандмауэр в локальной системе для ограничения воздействия. Например, разрешить только SSH к вашему IP. Также можно использовать tcpwrappers для дополнительного слоя. (/etc/hosts.allow, /etc/hosts.deny)

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

С SSH:

  • Отключить протокол SSH 1
  • Разрешить только аутентификацию root without-password(только пара ключей)

С Apache:

  • Отключите все ненужные модули
  • Отключить .htaccess и публичные каталоги
  • Отключить FollowSymlink и любые ненужные опции
  • Не устанавливайте PHP, если он вам не нужен.

С MySQL:

  • Отключить пользователей по умолчанию.
  • Не используйте подстановочные хосты.
  • Обязательно установите уникальный хост для каждого пользователя.
  • Не слушайте tcp без необходимости. (Необычно неизбежно.)
  • Максимально ограничьте права пользователя приложения. (SELECT, INSERT, UPDATE, DELETE идеально подходит для записи и SELECT для чтения)

Я бы порекомендовал изучить настройку php.ini для безопасности. По умолчанию это более рискованное программное обеспечение.

Бастилия



2

Вот хорошая статья, которую вы можете использовать в качестве основы для вашей настройки и изменить в соответствии с вашим названием: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- сервера с CentOS-5-36786-


Но в основном не загружайте модули, которые вам явно не нужны, скрывайте все номера версий и страницы отладки / информации, создавайте пользователя mysql для каждого приложения с надежными паролями, всегда заставляйте людей работать на вашем сервере, используя учетную запись обычного пользователя, и делайте их sudo если им нужны полномочия root, используйте брандмауэр, такой как iptables, и открывайте порты только в зависимости от того, что вам абсолютно необходимо, чтобы войти в ваш ящик ... Это плюс последние патчи уже обеспечат вам довольно безопасную настройку.
— Александр Низу

Эта статья не хороша. Отключение selinux, ничего про усиление mysql, отключение ненужных модулей apache ...
— sumar

0

У Агентства информационной безопасности обороны есть множество контрольных списков безопасности, которые являются хорошими местами, чтобы начаться. Еще лучше понять смысл каждой записи, но это не быстрый ответ. Я бы порекомендовал вам взглянуть на STIG- ы Enclave, Network, Unix и Web Server .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.