• d – no dump. Программе, создающей дампы системы, дается указание игнорировать данный файл во время создания резервной копии;
• с – compress. Система использует прозрачную компрессию для данного файла;
• s – secure deletion. Удаление такого файла сопровождается записью блоков диска, на которых он располагался, нулями;
• u – undelete. Когда приложение запрашивает файл на удаление, система должна сохранить его блоки на диске, чтобы потом его можно было восстановить.
Несмотря на то, что файловая система поддерживает данный набор атрибутов, у ядра и различных приложений остается выбор, учитывать или не учитывать их.
К сожалению, ядро Linux версии 2.4 игнорирует флаги с, s и и.
Флаг A или Atime для определенных файлов может дать некоторую прибавку производительности, т. к. Избавляет систему от необходимости постоянно обновлять поле access time для этих файлов каждый раз, когда их открывают на чтение. Атрибут s или sync увеличивает надежность сохранения данных ценой некоторой потери производительности системы.
Команды для установки и чтения атрибутов в Ext2
Есть две утилиты, специально предназначенные для установки и чтения данных атрибутов: chattr и lsattr.
Команда chattr используется для установки и снятия флагов:
• chattr +Si test. txt – установить флаги sync и immutable для файла test.txt;
• chattr – ai test.txt – убрать флаги append-only и immutable у test.txt;
• chattr =aiA test.txt – установить ограничение на использование только флагов a, i и A.
Команда lsattr выводит список файлов и каталогов с атрибутами и функционально напоминает команду ls.
Команда lsattr -a test*, например, выдаст на экран:
–i– test.conf
–а– test.log
– test.txt
Использование для защиты файлов атрибутов файловой системы не является стопроцентной гарантией защищенности системы. Конечно, атрибуты а и i запрещают изменение защищенных файлов даже процессами, владельцем которых является root, однако в обычных обстоятельствах ничто не мешает пользователю root снять эти флаги. Тем не менее, есть возможность решить эту проблему.
Утилита leap позволяет конфигурировать параметры ядра, и в том числе те, которые определяют работу файловой системы Ext2 с расширенными атрибутами. Вот наиболее важные вызовы leap, которые нас интересуют:
• leap cap_linux_immutable;
• leap CAP_SYS_RAWIO.
Первый параметр запрещает процессам root изменять флаги а и i, а второй параметр запрещает низкоуровневый доступ к блочным устройствам, таким как диски, чтобы предотвратить изменение флагов, используя прямой доступ к файлам.
Пароли и шифрование
Стандартным атрибутом безопасности системы в наше время является пароль. Наиболее общие рекомендации по выбору паролей приведены ниже:
• длина пароля не должна быть менее, чем 8 символов;
• пароль должен состоять из букв, набираемых в разных регистрах, символов типа # $ @ /. , и цифр;
• не рекомендуется использовать что-либо обозначающие слова;
• желательно периодически изменять пароли.
Семейство Linux для шифрования паролей использует односторонний алгоритм шифрования, называемый DES (Data Encription Standard, стандарт шифрования данных). Хэши паролей затем сохраняются в файле /etc/shadow. Использование одностороннего алгоритма шифрования исключает возможность провести расшифровку /etc/shadow для получения паролей. Однако наличие у взломщика файла /etc/shadow значительно облегчает подбор пароля пользователя программами типа John the Ripper. На современных машинах шестисимвольный пароль подбирается этой программой за пару часов. РАМ-модули (такие как MD5 или подобные) позволяют использовать различные алгоритмы шифрования для паролей.
Протоколы шифрования трафика
Для надежной (в плане безопасности) передачи данных в Интернете используются следующие методы и протоколы:
• SSL – Secure Sockets Layer, метод шифрования, разработанный Netscape для обеспечения безопасности в сети. Он поддерживает несколько различных протоколов шифрования и обеспечивает идентификацию как на уровне клиента, так и на уровне сервера. SSL работает на транспортном уровне и создает безопасный шифрованный канал данных. Чаще всего он используется при посещении пользователем защищенного Web-узла;
• S-HTTP – интернет-протокол, реализующий сервис безопасности;
• S/MIME – Secure Multipurpose Internet Mail Extension, стандарт шифрования, используемый в электронной почте или других типах сообщений в Интернете.
SSH
SSH (Secure Shell) – программа, позволяющая зарегистрироваться на удаленном сервере и иметь шифрованное соединение. SSH используется вместо устаревших и небезопасных утилит rlogin, rsh и rep. Применяемый протокол использует шифрование с помощью открытого ключа как для шифрования соединения между двумя машинами, так и для опознавания пользователей. Существует также несколько бесплатных реализаций SSH-клиентов для Windows.
РАМ
РАМ (Pluggable Authentication Modules) – унифицированный метод идентификации. Практически все современные приложения, которые используют идентификацию пользователя, имеют соответствующий модуль РАМ. Это позволяет пользователю «на лету» изменять методы идентификации, требования, инкапсулировать все локальные методы идентификации без перекомпиляции программ.
Вот что можно делать с РАМ:
• использовать различные алгоритмы шифрования для своих паролей;
• устанавливать лимиты на ресурсы для пользователей;
• «налету» активизировать теневые пароли (shadow password);
• разрешать определенным пользователям регистрироваться только в определенное время и/или из определенного места.
CIPE
CIPE – криптографическая IP-инкапсуляция, шифрует данные на сетевом уровне. Шифруются пакеты, которые передаются между компьютерами в сети. CIPE можно также использовать при тунелировании (tunnelling) для создания виртуальных частных сетей (VPN, Virtual Private Networks). Преимущество низкоуровневого шифрования состоит в том, что оно разрешает прозрачную работу между двумя сетями, соединенными в VPN, без каких-либо изменений в программном обеспечении.
Kerberos
Kerberos является идентификационной системой, разработанной по проекту Athena в Массачусетском технологическом институте (MIT). Kerberos представляет сервер идентификации, услугами которого могут пользоваться компьютеры, подключенные к сети. Таким образом нет необходимости заводить на всех компьютерах учетную запись пользователя. Очень часто используется при модемном соединении провайдерами, имеющими несколько удаленных площадок.
CFS и TCFS
CFS – криптографическая файловая система. Это метод шифрования всей файловой системы, позволяющий пользователям сохранять в ней зашифрованные файлы. Метод использует NFS-сервер, запущенный на локальной машине.