Эти рекомендации не в моей голове и не должны быть исчерпывающими.
Проверьте 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 для безопасности. По умолчанию это более рискованное программное обеспечение.
Бастилия