Какова процедура защиты Linux, Apache, MySQL, PHP Server (или даже Perl) для производственного использования?
Кроме установки пароля MySQL и пароля root для Linux, какие другие (возможно, не столь очевидные) шаги следует предпринять?
Кроме того, какие шаги я могу предпринять, если я собираюсь быть параноиком, это обычно не требуется?
Это для базового использования одного сайта, но должно быть безопасным.
Ответы:
Эти рекомендации не в моей голове и не должны быть исчерпывающими.
Проверьте Bastille, это серия сценариев, которые реализуют лучшие практики в Linux.
Не отправляйте данные аутентификации по незашифрованным протоколам. Например, отключить FTP. Если вы отправляете данные аутентификации через Apache, используйте SSL.
Отключите и удалите все ненужное программное обеспечение, включая графический интерфейс.
Аудит любых файлов с установленным битом SUID и удаление. (Это будет серьезно ограничивать некорневые способности. Понимать последствия для каждого отдельного изменения.)
Аудит общедоступных записываемых каталогов и удаление доступных для записи битов. (Оставьте / TMP в одиночку.)
Избегайте запуска любого демона как root.
Изучите все многопользовательские программы, которые прослушивают сокеты, для получения рекомендаций по безопасности.
Избегание добавления пользователей в систему - один из лучших подходов. Многопользовательские системы требуют большего внимания к деталям.
Применять стандарты паролей. Например: минимум 10 символов, не алфавитно-цифровые символы, используя буквы и цифры. Это делает грубое принуждение более сложным в случае компрометации файла паролей. Обеспечить это через систему.
Блокируйте пользователей после 5 неудачных попыток аутентификации с минимальной блокировкой 10 минут. Вести историю паролей, чтобы пользователи не могли использовать последние 5 паролей.
Если вы используете большую среду, абсолютное требование - использовать сегрегацию сети с несколькими подсетями для изоляции риска. Если среда меньше, рекомендуется использовать брандмауэр в локальной системе для ограничения воздействия. Например, разрешить только SSH к вашему IP. Также можно использовать tcpwrappers для дополнительного слоя. (/etc/hosts.allow, /etc/hosts.deny)
И, конечно же, поддерживая все программное обеспечение в актуальном состоянии. Особенно публично встречающиеся демоны.
С SSH:
without-password
(только пара ключей)С Apache:
С MySQL:
Я бы порекомендовал изучить настройку php.ini для безопасности. По умолчанию это более рискованное программное обеспечение.
Бастилия
источник
Вот хорошая статья, которую вы можете использовать в качестве основы для вашей настройки и изменить в соответствии с вашим названием: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- сервера с CentOS-5-36786-
источник
У Агентства информационной безопасности обороны есть множество контрольных списков безопасности, которые являются хорошими местами, чтобы начаться. Еще лучше понять смысл каждой записи, но это не быстрый ответ. Я бы порекомендовал вам взглянуть на STIG- ы Enclave, Network, Unix и Web Server .
источник