Атрибуты immutable (неизменяемый) и appendOnly (только добавление) в GPFS 3.4v на AIX

Обеспечение неизменяемости коммерческой информации для соблюдения требований нормативных актов и безопасности

Защитите свою коммерческую информацию в системах IBM AIX®, используя атрибуты immutable (неизменяемый) и appendOnly (только добавление), поддерживаемые файловой системой IBM® General Parallel File System (IBM GPFS™) V3.4, чтобы обеспечить соблюдение требований различных нормативных актов. Благодаря богатому выбору интерфейсов командной строки GPFS позволяет установить соответствующие ограничения на файлы с коммерческой и аудиторской информацией, медицинские карточки и файлы регистрации событий, чтобы эффективно защитить их от несанкционированного доступа или случайного удаления. В этой статье объясняется, как использовать ограничения атрибутов immutable и appendOnly, предоставляемых системой IBM GPFS V3.4, для защиты данных в AIX.

Сендип Рамеш Патил, старший программист, IBM

SandeepСендип Рамеш Патил работает штатным инженером по программному обеспечению в IBM India Software Labs. Последние двенадцать лет его работа в IBM в основном связана с масштабируемыми сетевыми хранилищами (IBM SONAS), распределенными технологиями, включая DCE, SARPC, и продуктами по обеспечению безопасности, такими как IBM Network Authentication Services (IBM Kerberos). Он является заслуженным автором IBM developerWorks и заслуженным изобретателем IBM. Сендип имеет степень бакалавра в области информационных технологий и технологий, полученную в университете Пуны, Индия. С ним можно связаться по адресу sandeep.patil@in.ibm.com.



Уджвала П. Тулшигири, программист, IBM

UjwalaУджвала П. Тулсхигири – программист компании IBM India Software Labs. Работала с системами контроля состояния SONAS. Принимала участие в проекте интернатуры Extreme Blue под названием “Использование ODF для социального взаимодействия с составными приложениями и мэшапами”. Уджвала имеет степень бакалавра информатики, полученную в Техническом колледже Пуны (COEP). С ней можно связаться по адресу ujwala.tulshigiri@gmail.com.



01.11.2012

Введение

Файловая система компании IBM General Parallel File System (GPFS) представляет собой кластерную файловую систему с совместным доступом к дискам, как правило используемую для высокопроизводительных вычислений. Преимущества GPFS заключаются в быстром одновременном доступе к файлам в кластеризованной среде. Одной из основных характеристик GPFS, способствующих повышению производительности, является ее способность распределять блоки данных одного файла по нескольким дискам кластера и параллельно выполнять циклы чтения и записи. Кроме того она предлагает множество функций, таких как регистрация метаданных для восстановления после отказа узла, фиксация мгновенного состояния для сохранения данных файловой системы в данный момент времени, репликация данных в случае отказа системы, высокая доступность данных и масштабируемость. По этой причине GPFS традиционно используется в мощных вычислительных системах и развертывается во многих самых мощных в мире суперкомпьютерах.

В последнее время GPFS все чаще применяется даже в повседневных коммерческих приложениях. Последние версии GPFS были дополнены многими новыми возможностями, которые помогают развертывать функции управления жизненным циклом информации и даже способствуют соблюдению требований различных нормативных актов. Поскольку GPFS доступна для кластеров AIX и Linux®, эти возможности можно применить к приложениям и хранилищам, работающим на этих разновидностях UNIX®. Одна из новых интересных функций, поддерживаемых в GPFS V3.4 для AIX — возможность установки флагов immutable и appendOnly. Под неизменяемостью обычно понимают защиту файлов или данных от несанкционированного доступа и от злонамеренного ввода данных. Другими словами, неизменяемые файлы не может удалить или изменить даже суперпользователь или пользователь root. Аналогичным образом, установка для файла флага appendOnly не позволяет пользователю изменять его содержимое, но в то же время позволяет добавлять в него данные. Такие возможности, как правило, необходимы для соблюдения требований различных нормативных актов, таких как Закон об ответственности и переносимости данных о страховании здоровья граждан (HIPAA) в здравоохранении и Федеральный совет по надзору за финансовыми учреждениями (FFIEC) в финансовой сфере или оборонных приложениях. (Дополнительную информацию о соблюдении нормативных актов можно найти в Ресурсах.)

В этой статье мы исследуем атрибуты immutable и appendOnly, доступные в AIX в версии GPFS V3.4. Статья описывает различные файловые операции, доступные благодаря этим атрибутам, и поясняет, какие преимущества они дают организациям благодаря созданию безопасной и защищенной от несанкционированного доступа среды, обязательной для соблюдения нормативных актов.


Потребность в неизменяемости

Зачастую хранящиеся в файловой системе файлы содержат конфиденциальные данные, которые нужно постоянно защищать от повреждения, удаления и ошибочного ввода данных несанкционированными пользователями или даже пользователем root. Некоторым организациям необходима возможность однократной записи и многократного чтения (WORM) файлов, тогда как некоторые отраслевые нормативные документы, такие как HIPAA, требуют обязательной защиты от несанкционированного доступа к разного рода файлам, например, файлам аудиторских проверок, файлам регистрации событий, медицинским карточкам и т.п. Неизменяемость — это методика, обеспечивающая защиту данных от повреждения и несанкционированного доступа. Также эта методика называется проверкой целостности содержимого.

Если файл помечен как неизменяемый, его больше нельзя изменить. В то же время файлы, используемые для регистрации событий, постоянно растут в размерах. Для сохранения целостности данных в таких случаях необходимо позволить пользователю добавлять данные, запретив при этом другие полномочия, такие как изменение списков контроля доступа (ACL) или владельцев, редактирование или удаление файла.

Неизменяемость в UNIX

В традиционной файловой системе UNIX файлы делаются неизменяемыми первоначальным владельцем или любым централизованным процессом архивирования с помощью команды chmod, которая убирает право пользователя на запись из ACL-файла, в результате чего файл становится недоступным или не может быть изменен. IBM GPFS предлагает значительно больше вариантов обеспечения неизменяемости, а также атрибут appendOnly, которым пользователи могут воспользоваться по мере необходимости.


Атрибуты immutable и AppendOnly в GPFS

Во избежание случайного изменения или удаления файлов GPFS предлагает два флага, которые называются immutable и appendOnly. В этой статье мы продемонстрируем, как эти флаги работают с файлами в файловой системе.

Как показано на приведенном ниже рисунке, система c103rp03.gpfs.net в AIX является одним из узлов кластера karmic.gpfs.net в котором установлена GPFS 3.4v. (Дополнительную информацию об установке GPFS в узел AIX можно найти в Ресурсах.)

Код 1: Используемый сервер AIX
(08:17:37) c103rp03 / $ hostname
c103rp03.gpfs.net

(08:17:40) c103rp03 / $ uname -a
AIX c103rp03 3 5 002405FB4C00

(08:17:45) c103rp03 / $ oslevel
5.3.0.0

Чтобы проверить версию GPFS, имеющуюся на машине AIX, подайте команду ‘lslpp -l gpfs*’

Код 2: Используемая версия GPFS
(08:17:58) c103rp03 /gpfs/fs1 $ lslpp -l gpfs*
  Fileset                      Level  State      Description
  --------------------------------------------------------------------------------------
  Path: /usr/lib/objrepos
    gpfs.base                3.4.0.0  COMMITTED  GPFS File Manager
  Path: /usr/share/lib/objrepos
    gpfs.docs.data           3.4.0.0  COMMITTED  GPFS Server Manpages and  Documentation

GPFS имеет собственный обширный набор интерфейсов командной строки (CLI), которые позволяют пользователю AIX взаимодействовать с системой. Одной из команд является mmlscluster, которая показывает конфигурацию кластера GPFS.

Код 3: Отображение конфигурации кластера
(08:18:34) c103rp03 / $ mmlscluster
GPFS cluster information
========================
  GPFS cluster name:         karmic.gpfs.net
  GPFS cluster id:           13882456366448342595
  GPFS UID domain:           karmic.gpfs.net
  Remote shell command:      /usr/bin/rsh
  Remote file copy command:  /usr/bin/rcp

GPFS cluster configuration servers:
-----------------------------------
  Primary server:    c103rp04.gpfs.net
  Secondary server:  c103rp07.gpfs.net
  
 Node  Daemon node name          IP address       Admin node name        Designation
-----------------------------------------------------------------------------------------
   1   c103rp04.gpfs.net         192.168.100.132  c103rp04.gpfs.net
   2   c103rp05.gpfs.net         192.168.100.133  c103rp05.gpfs.net      quorum-manager
   3   c103rp06.gpfs.net         192.168.100.134  c103rp06.gpfs.net      quorum-manager
   4   c103rp07.gpfs.net         192.168.100.135  c103rp07.gpfs.net      manager
   5   c103rp08.gpfs.net         192.168.100.136  c103rp08.gpfs.net      manager
   6   c103rp09.gpfs.net         192.168.100.137  c103rp09.gpfs.net      quorum-manager
   8   c103rp10.gpfs.net         192.168.100.138  c103rp10.gpfs.net      quorum-manager
   9   c103rp03.gpfs.net        192.168.100.131  c103rp03.gpfs.net

Кластер karmic.gpfs.net имеет файловую систему GPFS 'fs1', смонтированную в точке /gpfs/fs1, которая представляет собой общую директорию, доступную из всех узлов кластера. Для создания файловой системы в кластере GPFS используется команда mmcrfs. Точку монтирования файловой системы можно проверить командой mmlsfs.

Код 4: Точка монтирования GPFS
(08:19:06) c103rp03 / $ mmlsfs fs1 -T
flag                value                    description
------------------- ------------------------ -----------------------------------
 -T                 /gpfs/fs1                Default mount point

Давайте создадим файл Test_File_1 из узла AIX ‘c103rp03.gpfs.net’ в смонтированной директории /gpfs/fs1. Команда GPFS mmlsattar показывает все атрибуты указанного файла.

Код 5: Список атрибутов файла
(08:19:20) c103rp03 / $ cd /gpfs/fs1

(08:19:25) c103rp03 /gpfs/fs1 $ touch Test_File_1

(08:19:33) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_1
file name:            Test_File_1
metadata replication: 1 max 2
data replication:     1 max 2
immutable:	      no
appendOnly:    	      no
flags:
storage pool name:    system
fileset name:         root
snapshot name:

Как видите, здесь имеются два флага: immutable и appendOnly, которые относятся к файлу Test_File_1. В настоящее время оба флага имеют значения 'no' (нет), поскольку ни один из них не установлен.


Ограничения неизменяемости в GPFS

GPFS имеет специальную команду mmchattr, которая используется для установки или снятия флага immutable. Если файл помечен как неизменяемый, ни сам файл, ни его родительские директории переименовать нельзя. Такие файлы имеют единственный путь, то есть для неизменяемых файлов не допускаются жесткие ссылки и удаление наборов файлов.

Команда mmchattr -i yes|no устанавливает или снимает флаг immutable для файла.

Причем -i yes устанавливает атрибут immutable в состояние yes (да), а команда -i no устанавливает атрибут immutable в состояние no (нет).

Чтобы проверить, установлен ли флаг для данного файла, подайте команду mmlsattr.

Код 6: Установка и проверка состояния флага immutable для файла
(08:19:52) c103rp03 /gpfs/fs1 $ mmchattr -i yes Test_File_1

(08:20:03) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_1
file name:            Test_File_1
metadata replication: 1 max 2
data replication:     1 max 2
immutable:            yes
appendOnly:           no
flags:
storage pool name:    system
fileset name:         root
snapshot name:

Файловые операции с неизменяемыми файлами

Если файл помечен как неизменяемый, соответствующим образом меняется и поведение файловых операций.

  1. Удаление: неизменяемый файл нельзя удалить.
    Код 7: Операция удаления неизменяемого файла
    (08:20:13) c103rp03 /gpfs/fs1 $ rm -rf Test_File_1
    rm: Test_File_1 not removed.
    Read-only file system
  2. Изменение/Добавление: такие файлы нельзя редактировать, также как и добавлять в них данные. Любая попытка изменения неизменяемого файла или добавления в него данных приведет к ошибке.
    Код 8: Операция изменения/добавления для неизменяемого файла
    (08:20:24) c103rp03 /gpfs/fs1 $ echo "abc" > Test_File_1
    bash: Test_File_1: Read-only file system
    
    (08:20:51) c103rp03 /gpfs/fs1 $ echo "abc" >>  Test_File_1
    bash: Test_File_1: Read-only file system

    Заметьте, что применение к файлу флага immutable вступает в силу только после закрытия файла. Таким образом, если после установки флага файл остается открытым, его все еще можно изменять или добавлять в него данные.

  3. Изменение ACL: ACL (разрешения чтения/записи/исполнения для владельца/группы/пользователя) неизменяемого файла нельзя изменить или удалить.

    Команда mmgetacl показывает текущий список разрешений файла, а команда mmdelacl используется для удаления существующих разрешений файла. После установки для файла атрибута immutable удалить или изменить разрешения доступа невозможно.

    Код 9: Изменение ACL для неизменяемого файла
    (09:30:32) c103rp03 /gpfs/fs1 $ mmgetacl Test_File_1	
    #owner:root
    #group:system
    user::rw-c
    group::r---
    other::r---
    
    (09:31:09) c103rp03 /gpfs/fs1 $ mmdelacl Test_File_1
    mmdelacl: Authorization failure
  4. Изменение режима: режим неизменяемого файла изменить нельзя.
    Код 10: Изменение режима неизменяемого файла
    (08:21:04) c103rp03 /gpfs/fs1 $ chmod u+x Test_File_1
    chmod: Test_File_1: Not owner
  5. Неизменяемые директории:если директория помечена как неизменяемая, в ней нельзя создавать, удалять или переименовывать файлы. Однако поддиректории по-прежнему можно изменять, если только вы непосредственно не пометили их как неизменяемые.

    Например, в следующем фрагменте кода создается директория Test_Dir с четырьмя файлами m1, m2, m3, m4 и поддиректория sub_dir1. Затем для директории Test_Dir устанавливается флаг immutable с помощью команды mmchattr, а затем выводятся ее атрибуты с помощью команды mmlsattr.

    Код 11: Установка флага immutable для директории
    (09:34:22) c103rp03 /gpfs/fs1 $ mkdir Test_Dir
    
    (09:34:29) c103rp03 /gpfs/fs1 $ cd Test_Dir
    
    (09:34:34) c103rp03 /gpfs/fs1/Test_Dir $ touch m1 m2 m3 m4
    
    (09:36:08) c103rp03 /gpfs/fs1/Test_Dir $ mkdir sub_dir1
    
    (09:36:10) c103rp03 /gpfs/fs1/Test_Dir $ ls
    m1        m2        m3        m4        sub_dir1
    
    (09:36:39) c103rp03 /gpfs/fs1/Test_Dir $ cd ..
    
    (09:36:43) c103rp03 /gpfs/fs1 $ mmchattr -i yes Test_Dir
    
    (09:36:56) c103rp03 /gpfs/fs1 $ mmlsattr -L  Test_Dir
    file name:            Test_Dir
    metadata replication: 1 max 2
    data replication:     1 max 2
    immutable:            yes
    appendOnly:           no
    flags:
    storage pool name:    system
    fileset name:         root
    snapshot name:

    Теперь любые попытки удаления, создания или переименования файла в этой директории потерпят неудачу с выдачей сообщения об ошибке.

    Код 12: Операция удаления/создания/переименования в неизменяемой директории
    (09:37:30) c103rp03 /gpfs/fs1 $ cd Test_Dir/
    
    (09:37:41) c103rp03 /gpfs/fs1/Test_Dir $ rm -rf m1
    rm: m1 not removed.
    Read-only file system
    
    (09:38:18) c103rp03 /gpfs/fs1/Test_Dir $ touch m5
    touch: m5 cannot create
    
    (09:38:29) c103rp03 /gpfs/fs1/Test_Dir $ mv m2 m5
    mv: cannot rename m2 to m5:
    Read-only file system

    Тем не менее поддиректория sub_dir1 все еще может быть изменена и допускает такие операции, как создание в ней новых файлов и переименование существующих файлов.

    Код 13: Файловые операции в поддиректориях неизменяемой директории
    (09:41:16) c103rp03 /gpfs/fs1/Test_Dir $ cd sub_dir1
    
    (09:41:18) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ touch s1 s2
    
    (09:41:27) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ ls
    s1  s2
    
    (09:41:29) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ mv s1 s3
    
    (09:41:51) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ ls
    s2  s3
  6. Метка времени: метку времени неизменяемого файла можно изменить.
    Код 14: Изменение метки времени неизменяемого файла
    (09:32:47) c103rp03 /gpfs/fs1 $ ls -ltr Test_File_1
    -rw-r--r--    1 root     system            0 Nov  9 08:19 Test_File_1
    
    (09:33:43) c103rp03 /gpfs/fs1 $ touch Test_File_1
    
    (09:33:46) c103rp03 /gpfs/fs1 $ ls -ltr Test_File_1
    -rw-r--r--    1 root     system            0 Nov  9 09:33 Test_File_1

Ограничения appendOnly в GPFS

В GPFS вы можете установить для файла флаг appendOnly с помощью той же команды mmchattr с опцией -a yes|no. Также вы можете проверить состояние флага appendOnly той же командой mmlsattr.

Команда mmchattr -a yes|no устанавливает или снимает флаг appendOnly. Причем -a yes устанавливает атрибут appendOnly файла в состояние yes (да), а -a no устанавливает атрибут appendOnly файла в состояние no (нет).

Код 15: Флаг appendOnly для файла
(09:42:25) c103rp03 /gpfs/fs1 $ pwd
/gpfs/fs1

(09:42:28) c103rp03 /gpfs/fs1 $ touch Test_File_2

(09:42:47) c103rp03 /gpfs/fs1 $ mmchattr -a yes Test_File_2

(09:42:56) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_2
file name:            Test_File_2
metadata replication: 1 max 2
data replication:     1 max 2
immutable:            no
appendOnly:           yes
flags:
storage pool name:    system
fileset name:         root
snapshot name:

Файловые операции с файлами appendOnly

  1. Удаление: файл appendOnly удалить нельзя.
    Код 16: Операция удаления файла appendOnly
    (09:42:59) c103rp03 /gpfs/fs1 $ rm -rf Test_File_2
    rm: Test_File_2 not removed.
    Read-only file system
  2. Изменение/добавление: такие файлы нельзя редактировать, но в них можно добавлять данные.
    Код 17: Операция изменения/добавления для файла appendOnly
    (09:43:01) c103rp03 /gpfs/fs1 $ echo "abc" > Test_File_2
    bash: Test_File_2: Read-only file system
    
    (09:43:41) c103rp03 /gpfs/fs1 $ echo "abc" >> Test_File_2
    
    (09:43:42) c103rp03 /gpfs/fs1 $ cat Test_File_2
    abc
  3. Изменение ACL: ACL (разрешения чтения/записи/исполнения для владельца/группы/пользователя) файла appendOnly нельзя изменить или удалить.
    Код 18: Изменение ACL файла AppendOnly
    (09:44:04) c103rp03 /gpfs/fs1 $ mmgetacl Test_File_2
    #owner:root
    #group:system
    user::rw-c
    group::r---
    other::r---
    
    (09:44:15) c103rp03 /gpfs/fs1 $ mmdelacl Test_File_2
    mmdelacl: Authorization failure
  4. Изменение режима: режим файла с установленным атрибутом appendOnly изменить нельзя.
    Код 19: Изменение режима файла appendOnly
    (09:43:47) c103rp03 /gpfs/fs1 $ chmod u+x Test_File_2
    chmod: Test_File_2: Not owner
  5. Директория с атрибутом appendOnly: если директория помечена как appendOnly, в ней нельзя удалять или переименовывать файлы.

    Тем не менее в ней можно создавать файлы нулевого размера. В следующем примере директория Test_AppendOnly содержит файлы a1, a2, a3 и поддиректорию sub_dir1. Далее для директории Test_AppendOnly устанавливается флаг appendOnly с помощью команды mmchattr.

    Код 20: Установка флага appendOnly для директории
    (09:44:24) c103rp03 /gpfs/fs1 $ mkdir Test_AppendOnly
    
    (09:44:30) c103rp03 /gpfs/fs1 $ cd Test_AppendOnly
    
    (09:44:35) c103rp03 /gpfs/fs1/Test_AppendOnly $ touch a1 a2 a3
    
    (09:44:43) c103rp03 /gpfs/fs1/Test_AppendOnly $ mkdir sub_dir1
    
    (09:44:51) c103rp03 /gpfs/fs1/Test_AppendOnly $ ls
    a1        a2        a3        sub_dir1
    
    (09:44:58) c103rp03 /gpfs/fs1/Test_AppendOnly $ cd ..
    
    (09:45:09) c103rp03 /gpfs/fs1 $ mmchattr -a yes Test_AppendOnly
    
    (09:45:15) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_AppendOnly
    file name:            Test_AppendOnly
    metadata replication: 1 max 2
    data replication:     1 max 2
    immutable:            no
    appendOnly:           yes
    flags:
    storage pool name:    system
    fileset name:         root
    snapshot name:

    Теперь, как показано ниже, файлы в директории Test_AppendOnly нельзя удалять или переименовывать. Тем не менее в этой директории по-прежнему можно создавать файлы.

    Заметьте, что если установить для файла или директории оба атрибута immutable и appendOnly, то действовать будет атрибут immutable.


Отраслевые приложения

В зависимости от требований вашего бизнеса и характера защищаемых данных вы можете выбрать соответствующий флаг для своих файлов. Кроме того, файлы иногда случайно удаляются владельцем из-за простой опечатки. Ограничения, устанавливаемые этими флагами GPFS, помогают избежать таких распространенных ошибок.

Организациям необходимо защищать файлы аудиторских проверок, медицинские карты пациентов, файлы регистрации событий и многие другие типы файлов от повреждений или злонамеренного добавления информации. В таких случаях применение атрибутов immutable и appendOnly помогает эффективно защитить ваши данные.


Заключение

В этой статье мы рассказали, как защитить от несанкционированного доступа конфиденциальные файлы системы AIX с помощью атрибутов immutable и appendOnly в GPFS 3.4v. Дополнительную информацию об этих функциях GPFS можно найти в Расширенном руководстве по администрированию GPFS V3.4 (GPFS V3.4 Advanced Administration Guide)(см. Ресурсы).

Благодарности

Авторы искренне благодарны Бхушану Джаину (Bhushan Jain) (bhujain1@in.ibm.com) из Корпорации IBM за рецензирование этой статьи и ценные предложения.

Ресурсы

Научиться

Получить продукты и технологии

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX, Технология Java
ArticleID=844089
ArticleTitle=Атрибуты immutable (неизменяемый) и appendOnly (только добавление) в GPFS 3.4v на AIX
publish-date=11012012