Безопасность файлов и файловой системы
Несколько минут подготовки и прогнозного планирования прежде чем открыть вашу систему Интернету может помочь защитить как ее, так имеющиеся в ней данные.
- Нет ни одной причины, по которой нужно было бы разрешать запуск SUID/SGID программ из пользовательских домашних каталогов. Для тех разделов, в которые разрешена запись не только администратору, в /etc/fstab поставьте опцию `nosuid'. Вы также можете захотеть использовать `nodev' и `noexec' для домашних каталогов, а также /var, которые запретят выполнение программ и создание символьных и блочных устройств, которые и так никогда не нужны.
- Если вы экспортируете файловые системы используя NFS, обязательно отконфигурируйте /etc/exports с максимально возможными ограничениями. Это означает не использовать символы подстановки (wildcards), не разрешать запись администратору удаленной системы, а также монтирование с правами "только чтение" где только возможно.
- Настройте umask создания файлов для ваших пользователей настолько ограничивающей насколько это возможно. Общеупотребительными являются 022, 033, и наиболее ограничивающая 077, и добавьте все это к /etc/profile.
- Установите лимит использования файловой системы вместо разрешения неограниченного использования, что установлено по умолчанию. Вы можете контролировать лимиты каждого пользователя используя специальный модуль лимитов ресурсов PAM и /etc/pam.d/limits.conf. Например, лимиты для группы `users' могут выглядеть следующим образом:
@users hard core 0 @users hard nproc 50 @users hard rss 5000
Это запрещает создание core файлов, ограничение количества процессов значением 50, и ограничение использования памяти 5МВ на пользователя.
Найдите все SUID/SGID программы в вашей системе и посмотрите, что они из себя представляют, таким образом вы будете знать, что любое изменение в них является индикатором возможного взлома. Чтобы найти все SUID/SGID программы в вашей системе используйте следующую команду:
root# find / -type f \( -perm -04000 -o -perm -02000 \)
Вы можете дискриминативно убрать все SUID или SGID права для всех подозрительных программ используя chmod(1), а затем поставить обратно, если вы будете абсолютно уверены в необходимости этого.
root# find / -perm -2 -print
и убедитесь, что вы действительно знаете, почему в эти файлы разрешена запись. В условиях нормальной работы только для некоторых файлов будет разрешена запись, включая некоторые из /dev и символьные ссылки.
Файлы без владельца также могут быть индикатором внедрения в вашу систему взломщика. Файлы без владельца или с таковым без принадлежности к какой-либо группе можно обнаружить с помощью команды:
root# find / -nouser -o -nogroup -print
root# find /home -name .rhosts -print
И наконец, перед тем как изменить права доступа каких-либо системных файлов, убедитесь, что вы понимаете, что делаете. Никогда не изменяйте права доступа файла только потому, что это является простым способом заставить что-то работать. Прежде чем изменять, всегда определяйте, почему файл имеет именно такие права доступа.