Реализация мультипроцессорных кластеров высокой доступности (HACMP)

Безопасность кластера

Разбить на страницы
Показывать лекцию целиком

Безопасность кластера и демона clcomd

Демон коммуникаций кластера (Cluster Communication Daemon) представляет реализацию надежного, защищенного транспортного уровня для HACMP. Clcomd осуществляет управление почти всеми межкластерными коммуникациями, в частности C-SPOC, верификацией и синхронизацией кластера, наборами файлов. Clcomd также улучшает производительность кластера: он имеет кеш для файлов HACMP ODM, что позволяет ускорить доставку, и может повторно использовать существующие подключения сокетов.

Демон диспетчера кластера и мониторинг пульса основаны на RSCT, тогда как clinfo использует протокол SNMP.

Существует два режима безопасности для аутентификации подключения в HACMP:

  • Стандартный (Standard). Выполняется проверка входящего подключения со списком доступа, и разрешается только минимальный требуемый доступ. В этой главе рассматривается только стандартный режим безопасности кластера.
  • Kerberos:. Все коммуникации в кластере защищаются с использованием инфраструктуры PSSP Kerberos. Этот режим безопасности работает только на системах SP с установленным программным обеспечением PSSP.
  • Начиная с HACMP 5.1 файл .rhosts не применяется. Безопасность HACMP основана на аутентификации подключений по принципу минимума привилегий. Демон коммуникаций кластера использует внутренний список доступа для авторизации других узлов для удаленного выполнения команд. При получении узлом запроса на удаленное выполнение Clcomd ищет входящий IP-адрес подключения среди IP-адресов в следующих расположениях:

  • ODM-класс HACMPnode.
  • ODM-класс HACMPadapter.
  • Файл /usr/es/sbin/cluster/etc/rhosts.
  • Демон коммуникаций кластера использует принцип минимума привилегий. При удаленном выполнении команды разрешается только минимальный объем требуемых привилегий. Это обеспечивает удаленное выполнение только для доверенных команд HACMP, причем, если возможно, команды выполняются под учетной записью nobody. Утилиты кластера разделены на две группы:

  • доверенные команды, для которых допускается выполнение под учетной записью root ;
  • остальные команды, выполняющиеся под учетной записью nobody.
  • Ограничение. Нельзя использовать аутентификацию на основе Clcomd для собственных скриптов (скриптов запуска и остановки приложений, настраиваемых скриптов обработки событий и т. д.); в этом случае следует применять rsh или SSH.

    Файл /usr/es/sbin/cluster/etc/rhosts

    Файл /usr/es/sbin/cluster/etc/rhosts должен содержать список всех IP-адресов всех узлов кластера для повышенной безопасности. Этот файл автоматически получает информацию о подключении узла (базовые адреса узлов) от HACMP в процессе обнаружения, а также верификации и синхронизации кластера. Кроме того, можно вручную отредактировать файл /usr/es/sbin/cluster/etc/rhosts, включив в него IP-адреса узлов.

    Важно! Файл /usr/es/sbin/cluster/etc/rhosts должен иметь следующие разрешения:
  • владелец: root;
  • группа: system;
  • разрешения: 0600.
  • Изначальная настройка кластера

    При начальной настройке кластера файл /usr/es/sbin/cluster/etc/rhosts пуст. Обычно HACMP записывает в него базовые адреса одноранговых узлов при первом запуске процессов обнаружения и синхронизации кластера. При первоначальном конфигурировании безопасности кластера рекомендуем добавить IP-адреса кластера на всех узлах в файл /usr/es/sbin/cluster/etc/rhosts, прежде чем начать конфигурирование HACMP.

    Внимание! При изначальной настройке, пока файл /usr/es/sbin/cluster/etc/rhosts на узле HACMP пуст, первым может произойти подключение с нежелательного хоста, вследствие чего в файл rhosts будет записан IP-адрес этого хоста. В этом случае другие одноранговые узлы не смогут подключиться до тех пор, пока файл /usr/es/sbin/cluster/etc/rhosts не будет исправлен вручную.

    Отключение демона коммуникаций кластера

    Для повышения безопасности можно отключить clcomd. При этом следует учитывать, что без clcomd не смогут работать следующие функции:

  • верификация и синхронизация HACMP;
  • C-SPOC, включая LVM, управление пользователями и паролями;
  • наборы файлов;
  • аутентификация и шифрование сообщений.
  • Отключение демона коммуникаций кластера выполняется командой stopsrc . -s clcomdES. Перезапуск clcomd выполняется командой startsrc -s clcomdES.
  • Дополнительные средства безопасности кластера

    Файлы HACMP ODM хранятся в каталоге /etc/es/objrepos. В целях повышения безопасности для них задается владелец root и группа hacmp. Кроме того, для них устанавливается разрешение 0640, кроме файла HACMPdisksubsystem, для которого устанавливается разрешение 0600. Для всех утилит кластера, предназначенных для открытого использования, включен hacmp setgid, что позволяет им читать файлы HACMP ODM. Если группа hacmp не существует, она создается во время установки HACMP.

    Использование зашифрованных межузловых коммуникаций

    HACMP поддерживает зашифрованный обмен сообщениями (encrypted messaging) между узлами кластера. Шифрование может осуществляться для трафика диспетчера кластера (Cluster Manager), демона коммуникаций кластера (Cluster Communication Daemon) и RSCT.

    Шифрование основано на схеме симметричного ключа, обеспечиваемой службами безопасности кластера (Cluster Security Services, CtSec). CtSec является частью RSCT.

    Можно использовать следующие дополнительные модули шифрования RSCT:

  • Data Encryption Standard (md5_des);
  • Triple DES (md5_3des);
  • Advanced Encryption Standard (md5_aes).
  • Шифрование вызывает дополнительную нагрузку на процессоры, однако на продолжительность перемещения при сбое оно не влияет.

    Управление ключами шифрования

    Модули шифрования RSCT используют симметричные ключи. Это означает, что все узлы кластера используют один ключ для шифрования и дешифрования. На каждом узле ключи безопасности расположены в каталоге /usr/es/sbin/cluster/es. Имя файла соответствует выбранному метод шифрования:

  • key_md5_des;
  • key_md5_3des;
  • key_md5_aes.
  • Генерировать ключ следует при первой настройке шифрования сообщений, при изменении конфигурации безопасности кластера или в соответствии с правилами безопасности вашей компании. Один ключ можно использовать столько, сколько потребуется.

    HACMP содержит механизм распространения ключей по узлам:

  • Автоматическое распространение ключей: новый ключ распространяется по узлам кластера автоматически после того, как он был сгенерирован. Этот метод удобен, однако менее безопасен, так как копирование ключей осуществляется через сеть.
  • Распространение ключей вручную: необходимо вручную копировать файл ключей на каждый узел. Можно использовать SFTP или SCP, однако безопаснее всего применять дискету для распространения ключей. Мы рекомендуем использовать этот метод.
  • Внимание! Убедитесь, что владельцем файла ключей является пользователь root, группа system и установлены права доступа 0400. Если кто-либо сможет скопировать ваш ключ или перехватить его по сети, безопасность кластера будет в серьезной опасности.

    Настройка шифрования сообщений

    Основные этапы конфигурирования:

  • Установка требуемого модуля шифрования RSCT.
  • Включение автоматического распространения ключей (только при автоматическом распространении ключей).
  • Включение аутентификации и шифрования сообщений.
  • Генерирование и распространение ключей.
  • Активизация ключей.
  • Синхронизация кластера.
  • Отключение автоматического распространения ключей (только при автоматическом распространении ключей).
  • В целях безопасности рекомендуется использовать распространение ключей вручную.

    Выполнение команд всегда следует осуществлять с одного и того же узла, за исключением этапов 2 и 7, требующих выполнения на всех узлах.

    Важно!
  • Убедитесь, что параметры аутентификации и шифрования согласованы по всему кластеру. Все узлы должны содержать одинаковые файлы ключей. В противном случае HACMP не сможет осуществлять обмен данными с другими узлами.
  • Во время настройки шифрования сообщений в кластере не выполняйте какиелибо другие задачи конфигурирования HACMP.
  • Убедитесь, что ваш кластер находится в рабочем состоянии, что в нем недавно выполнялись процедуры синхронизации и верификации и что узлы могут осуществлять связь друг с другом.
  • Обязательные условия. Следует установить требуемую библиотеку шифрования с диска AIX 5L Expansion Pack CD. Используя smit install_latest, установите следующие наборы файлов:
  • rsct.crypt.des – для использования md5_des;
  • rsct.crypt.3des – для применения md5_3des;
  • rsct.crypt.aes256 – для использования md5_aes.
  • Если кластер уже работает, необходимо перезапустить clcomd:
    stopsrc -s clcomdes
    	startsrc -s clcomdes
  • Включение автоматического распространения ключей на всех узлах. (Этот этап следует выполнять, только если требуется использовать автоматическое распространение ключей.):
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): запустите smit;
  • выберите Communications Applications and Services (Коммуникационные приложения и службы);
  • выберите HACMP for AIX (HACMP для AIX);
  • выберите System Management (C-SPOC);
  • выберите HACMP Security and Users Management (Безопасность и управле ние пользователями HACMP);
  • выберите HACMP Cluster Security (Безопасность кластера HACMP) либо ис пользуйте быстрый путь smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отклю чение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значе ние Enabled (рис. 9.1);
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Включение или изменение метода аутентификации и шифрования сообщений:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP); выполните smit cm_config_security;(рис 9.1) Включение автоматического распространения ключей
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Configure Message Authentication Mode (Конфигурирование режима аутентификации сообщений);
  • нажмите F4 и в разделе Message Authentication Mode (Режим аутентифи кации сообщений) выберите требуемый режим аутентификации (рис. 9.2):
  • md5_des,
  • md5_3des,
  • md5_aes,
  • None: не использовать ни аутентификацию, ни шифрование сообщений;
  • установите в поле Enable Encryption (Включить шифрование) значение Yes (Да);
  • нажмите Enter.
  • Генерирование и распространение ключей.
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.(рис 9.2) Конфигурирование режима аутентификации сообщений
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • выберите Generate/Distribute a Key (Сгенерировать/распространить ключ).
  • нажмите F4 и выберите Type of Key to Generate (Тип генерируемого клю ча). Здесь следует выбрать такой же ключ, как и на этапе 3, "Включение или измене ние метода аутентификации и шифрования сообщений" (рис. 9.3).
  • выберите Distribute a Key (Распространить ключ):
  • Yes (Да): при использовании автоматического распространения ключей;
  • No (Нет): при использовании распространения ключей вручную.
  • Нажмите Enter.(рис 9.3) Генерирование ключаЕсли выбрано автоматическое распространение ключей, то следует перейти к ша гу 5, "Активизация ключа". Теперь скопируйте файл ключа с этого узла на другие узлы. Можно использовать любой метод передачи, но мы рекомендуем применять один из следующих способов:
  • SCP. Утилита защищенного зашифрованного удаленного копирования. Пример:
    scp /usr/es/sbin/cluster/etc/key_md5_aes \
    node2:/usr/es/sbin/cluster/etc/key_md5_aes
  • Дискета. Следует скопировать соответствующий файл ключа из каталога /usr/es/sbin/cluster/etc на дискету. Затем следует скопировать файл с дискеты на все узлы. Если у вас уже есть файл ключа, просто замените его новым файлом ключа. Будьте осторожным с файлом ключа: не пересылайте его через сеть в незашифрованном виде (например, не следует использовать ftp или rcp) и обязательно установите для него разрешение 0400.
  • Активизация ключа:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Activate the new key on all HACMP cluster nodes (Активизировать новый ключ на всех узлах кластера HACMP);
  • еще раз нажмите Enter для подтверждения.
  • Важно! Не активизируйте новый ключ до тех пор, пока на всех узлах кластера не будет установлен одинаковый файл ключа.
  • Синхронизация кластера. При возникновении ошибки, связанной с коммуникациями кластера, следует отключить аутентификацию и шифрование сообщений и начать эту процедуру сначала.
  • Отключение автоматического распространения ключей на всех узлах. (Этот этап следует выполнять, только если вы используете автоматическое распространение ключей):
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включить-отключение автоматического распространения ключей) значение Disabled;
  • нажмите Enter для подтверждения.
  • Повторите эти действия на всех узлах.

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

    Изменение ключа аутентификации

    Ключ можно применять столько, сколько требуется, однако чем дольше вы используете один ключ, тем больше вероятность его перехвата и несанкционированного использования. Для обеспечения максимальной безопасности рекомендуется регулярно менять ключ, например ежемесячно.

  • Включение автоматического распространения ключей на всех узлах. Этот этап следует выполнять, только если требуется использовать автоматическое распространение ключей:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значение Enabled;
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Генерирование и распространение ключей.
  • Перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.
  • Выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • Выберите Generate/Distribute a Key (Сгенерировать/Распространить ключ).
  • Нажмите F4 и выберите Type of Key to Generate (Тип генерируемого ключа). Здесь следует выбрать такой же ключ, как и на этапе 3, "Включение или изменение метода аутентификации и шифрования сообщений" (рис. 9.3).
  • Выберите Distribute a Key (Распространить ключ):
  • Yes (Да): при использовании автоматического распространения ключей;
  • No (Нет): при использовании распространения ключей вручную.
  • Нажмите Enter.
  • Если вы используете распространение ключей вручную, тогда следует скопировать файл ключей с этого узла на другие узлы, заменив старые файлы.
  • Активизация ключа:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Activate the new key on all HACMP cluster nodes (Активизировать новый ключ на всех узлах кластера HACMP);
  • еще раз нажмите Enter для подтверждения.
  • Отключение автоматического распространения ключей на всех узлах. Этот этап следует выполнять, только если вы используете автоматическое распространение ключей:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значение Disabled;
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Устранение неполадок аутентификации и шифрования сообщений

    При возникновении ошибок коммуникации кластера (например, при отказе верификации кластера или если C-SPOC не может связаться с другими узлами) следует отключить и аутентификацию сообщений и шифрование сообщений:

  • Перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.
  • Выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • Выберите Configure Message Authentication Mode (Конфигурирование режима аутентификации сообщений).
  • В разделе Message Authentication Mode (Режим аутентификации сообщений) выберите None.
  • Установите в поле Enable Encryption (Включить шифрование) значение No (Нет).
  • Нажмите Enter.
  • Выполните синхронизацию кластера.
  • Проверка текущих параметров аутентификации сообщений

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

  • Запустите smit hacmp.
  • Выберите Extended Configuration (Расширенное конфигурирование).
  • Выберите Extended Topology Configuration (Расширенное конфигурирование топологии).(рис 9.4) Проверка параметров аутентификации сообщений
  • Выберите Show HACMP Topology (Отображение топологии HACMP).
  • Выберите Show Cluster Definition (Отображение определения кластера). Нажмите Enter для вывода параметров определения кластера (рис. 9.4).
  • Защищенное удаленное выполнение команд в HACMP

    Примечание. Хотя использование Secure Shell (SSH) в кластере HACMP не является обязательным, этот метод защиты удаленного выполнения команд является очень популярным в современных сетевых средах.

    Скрипты запуска и остановки приложений, настраиваемые скрипты обработки событий и прочие скрипты могут требовать выполнения команд на удаленных узлах. Для этой цели все еще можно использовать rsh, однако это небезопасно, так как при этом аутентификация основана на файле .rhosts. Мы настоятельно рекомендуем использовать Secure Shell (SSH). Кроме того, функционирование DLPAR также требует применения SSH.

    SSH и Secure Socket Layer (SSL) совместно обеспечивают аутентификацию, конфиденциальность и целостность данных. Аутентификация SSH основана на инфраструктуре открытых-закрытых ключейБолее распространен термин "Public Key Infrastructure, PKI" (инфраструктура открытых ключей), наличие закрытого (private) ключа подразумевается. , тогда как SSL осуществляет шифрование сетевого трафика.

    SSH содержит следующие утилиты, заменяющие классические r-команды:

    ssh защищенная удаленная оболочка, подобная rsh или rlogin;
    scp защищенное удаленное копирование, подобное rcp;
    sftp утилита зашифрованной передачи файлов, подобная ftp.

    Установка SSH

    Весьма удобно, что IBM поставляет SSH и все его компоненты вместе с AIX. Ниже приведен список требуемых компонентов.

    rpm.rte поддержка rpm-пакетов; автоматически устанавливается вместе с базовым программным обеспечением AIX.
    perl автоматически устанавливается вместе с базовым программным обеспечением AIX.
    openssl.rpm поддержка Open Source Secure Socket Layer (AIX Toolbox for Linux Applications CD).
    openssh.base.client команды клиента Open Source Secure Shell (AIX Expansion Pack).
    openssh.base.server сервер Open Source Secure Shell (AIX Expansion Pack).
    openssh.msg.* каталог сообщений для SSH (AIX Expansion Pack).
    openssh.man.* документация (man pages) для Secure Shell (AIX Expansion Pack).
    openssh.license оpen Source License для SSH (AIX Expansion Pack).
    prngd.rpm генератор случайных чисел, необходимый только в AIX 5.1 и 5.2. (AIX Toolbox for Linux Applications CD).

    Другой вариант состоит в том, чтобы скопировать наиболее актуальные пакеты из Интернета:

  • OpenSSL с сайта IBM AIX Toolbox for Linux Applications (требует процедуры регистрации продолжительностью в несколько минут): http://www6.software.ibm.com/dl/aixtbx/aixtbx-p
  • OpenSSH для AIX: http://www.sourceforge.net/projects/openssh-aix В нашем тесте мы использовали openssl-0.9.6m-1 и openssh.3.8.0.53. Установка состоит из следующих этапов:
  • Убедитесь в том, что установлен rpm.rte: lslpp -l rpm.rte.
  • Убедитесь в том, что установлен Perl: lslpp -l perl.rte.
  • При использовании AIX 5.1 или 5.2 следует установить Prngd с диска AIX Toolbox for Linux Applications CD через SMIT.
  • Установите OpenSSL. Можно применять smit install_latest для его установки с диска AIX Toolbox for Linux Applications CD. В противном случае следует использовать команду rpm:
    rpm -i openssl-0.9.6m-1.aix5.1.ppc.rpm
  • Используйте smit install_latest для установки openssh.base, файла лицензии и соответствующих языковых наборов файлов.
  • Запустите демон SSH: startsrc -s sshd.
  • Настройка SSH для удаленного выполнения команд без пароля

    Некоторые скрипты могут требовать использования SSH и SCP в конфигурации без применения паролей. В этом случае SSH использует пары открытых и закрытых ключей для аутентификации. Закрытый ключ хранится на локальном хосте, тогда как открытый ключ пересылается на удаленные узлы и добавляются в их базу данных авторизованных ключей.

    При выполнении команды SSH (например, ssh node2 date ) коммуникация подписывается с использованием закрытого или секретного ключа узла-источника. Эту подпись можно дешифровать только с применением открытого ключа узла-источника. Если узел-получатель может успешно дешифровать подпись, это подтверждает подлинность узла-отправителя.

    Для настройки удаленного выполнения команд через SSH без паролей следует выполнить следующие действия на всех узлах кластера:

  • Выполнить вход в систему под требуемой учетной записью.
  • Сгенерировать пару ключей аутентификации:
    ssh-keygen -t rsa -f ~/.ssh/node1
    Нажмите Enter для ввода пароля-фразы из нескольких слов. Эта команда генерирует два файла:
  • ~/.ssh/node1: файл секретного ключа;
  • ~/.ssh/node1.pub: файл открытого ключа.
  • Переименуйте файл секретного ключа, назначив ему имя identity:
    mv ~/.ssh/node1 ~/.ssh/identity
  • Добавьте открытый ключ в файл authorized_keys на локальном узле, чтобы SSH мог работать на локальном хосте ( localhost ):
    cat ~/.ssh/node1.pub >> ~/.ssh/authorized_keys
  • Скопируйте свой открытый ключ на все остальные узлы:
    scp ~/.ssh/node1.pub nodeX:~/.ssh/node1.pub
    Повторите эту команду для каждого узла в кластере.
  • Добавьте открытый ключ узла node1 в файл authorized_keys на удаленных узлах:
    ssh nodeX "cat ~/.ssh/node1.pub >> ~/.ssh/authorized_keys"
    Повторите эту команду для всех узлов в кластере.
  • Повторите действия пп. 1–6 на всех узлах.
  • Теперь SSH должен работать на всех узлах не запрашивая пароль.

    Важно! Будьте осторожны с файлами закрытого и открытого ключа: это ключи к вашей системе. Если какой-либо неавторизованный пользователь получит файлы, он сможет подключиться к вашей системе.

    Дополнительные сведения об OpenSSL и OpenSSH можно найти в Интернете:

  • веб-сайт проекта OpenSSL: http://www.openssl.org
  • страница проекта OpenSSH: http://www.openssh.org
  • OpenSSH на AIX: http://www.sourceforge.net/projects/openssh-aix
  • Безопасность WebSmit

    WebSMIT является очень хорошим инструментом конфигурирования и мониторинга кластера. Однако WebSMIT осуществляет доступ к файлам HACMP и выполняет команды кластера под учетной записью пользователя root. Это является потенциально уязвимым местом в безопасности, однако при тщательном планировании и реализации безопасности риск можно полностью устранить. Этот раздел описывает требования безопасности и механизмы, используемые в средах WebSMIT.

    Для обеспечения максимальной безопасности WebSMIT можно выполнить конфигурирование следующих элементов:

  • шифрование коммуникаций между клиентом и сервером с использованием SSL;
  • SSL-сертификат для аутентификации;
  • аутентификация веб-сервера и AIX;
  • обеспечение доступа к WebSMIT только для определенных пользователей AIX;
  • обеспечение доступа через WebSMIT только к определенным панелям SMIT.
  • Для аутентификации WebSMIT требует SSL и SSL-сертификат. При установке Apache генерируется самоподписанный (self-signed) сертификат, который можно использовать в WebSMIT.

    Параметры безопасности WebSMIT

    Параметры безопасности WebSMIT хранятся в файле /usr/es/sbin/cluster/wsm/ wsm_smit.conf. По умолчанию файл содержит максимальные установки параметров безопасности. В этом разделе описываются опции безопасности.

    Внимание! При изменении любого из параметров WebSMIT необходимо перезапустить HTTP-сервер.

    Авторизованный порт

    Параметр AUTHORIZED_PORT представляет порт TCP, используемый для коммуникаций WebSMIT. По умолчанию применяется порт 42267. Рекомендуем изменить значение этого параметра на другой номер, чтобы не допустить доступа неавторизованного пользователя к WebSMIT через стандартный порт. Если определить номер порта здесь, то WebSMIT будет использовать тот протокол (http или https), который связан с этим портом в файле конфигурации HTTP-сервера. Например, если определить порт 42267 в качестве порта SSL в файле httpd.conf, то браузер будет использовать шифрование и в URL нужно будет применять "https://".

    Принудительное использование защищенного http

    Параметр REDIRECT_TO_HTTPS=1 позволяет использовать только защищенные https-коммуникации, чтобы все данные передавались по сети в зашифрованном виде. Если был определен параметр AUTHORIZED_PORT, то эта переменная не применяется. В противном случае будет выполнено перенаправление браузера на порт SSL вне зависимости от введенного URL. Отношение между параметрами AUTHORIZED_ PORT и REDIRECT_TO_HTTPS см. в табл. 9.1.

    Отношение между параметрами AUTHORIZED_PORT и REDIRECT_HTTPS
    AUTHORIZED_PORT установлен AUTHORIZED_PORT не установлен
    REDIRECT_TO_HTTPS=0 Используются параметры безопасности из файла httpd.conf Используется незащищенный протокол HTTP, без шифрования, без SSL
    REDIRECT_TO_HTTPS=1 Используются параметры безопасности порта из файла httpd.conf Используется протокол HTTPS, с SSL и с шифрованием
    Замечание. Мы рекомендуем задать порт SSL TCP в файле httpd.conf и использовать этот порт в качестве авторизованного порта для WebSMIT.

    Аутентификация AIX

    WebSMIT может применять аутентификацию AIX вдобавок к аутентификации веб-сервера путем установки параметра REQUIRE_AUTHENTICATION=1. В этом случае WebSMIT запрашивает имя и пароль пользователя AIX. Так как при этом используются механизмы аутентификации AIX, отказы при входе в систему могут вызвать блокирование учетной записи.

    Замечание. Для повышения уровня безопасности WebSMIT следует установить и аутентификацию веб-сервера и аутентификацию AIX.

    Допустимые пользователи

    Переменная ACCEPTED_USERS содержит список идентификаторов пользователей AIX, которым разрешен доступ к WebSMIT. Все пользователи, указанные в этой переменной, будут иметь в WebSMIT уровень привилегий пользователя root. По умолчанию задано значение ACCEPTED_USERS="root".

    Замечание. Настоятельно рекомендуем создать отдельного пользователя AIX для доступа к WebSMIT.

    Тайм-аут сеанса

    Переменная SESSION_TIMEOUT определяет значение тайм-аута сеанса, по истечении которого пользователь WebSMIT должен выполнить повторный вход в систему вне зависимости от того, активен он или нет. По умолчанию задан тайм-аут в 20 мин.

    Идентификатор пользователя веб-сервера

    Переменная REQUIRED_WEBSERVER_UID содержит идентификатор пользователя, используемый в скриптах cgi-bin в WebSMIT. Здесь должен указываться тот же идентификатор, который применяется и в веб-сервере. Кроме того, следует убедиться в том, что этот идентификатор пользователя не имеет привилегий входа в AIX, чтобы никто не мог переключиться в эту учетную запись. По умолчанию употребляется учетная запись "nobody".

    Разрешение или запрет на доступ к определенным панелям SMIT в WebSMIT

    Можно сконфигурировать, к каким панелям SMIT можно получить доступ через WebSMIT. В качестве имени панели SMIT применяется быстрый путь SMIT к заданной панели; вывод этого имени выполняется нажатием F8 в SMIT (рис. 9.5). Например, панель SMIT Extended Topology Configuration (Расширенное конфигурирование топологии) имеет имя "cm_extended_topology_config_menu_dmn".Файл /usr/es/sbin/cluster/ wsm/wsm_smit.allow содержит список панелей SMIT, к которым разрешен доступ из WebSMIT. Ко всем остальным панелям доступ запрещен.

    (рис 9.5) Быстрый путь к панели SMIT Extended Topology Configuration (Расширенное конфигурирование топологии)

    В файле /usr/es/sbin/cluster/wsm/wsm_smit.deny можно перечислить панели SMIT, недоступные из WebSMIT. Если панель задана и в .allow- и в .deny-файле, приоритет имеет указание в .deny-файле.

    Если панель SMIT указана в файле /usr/es/sbin/cluster/wsm/wsm_smit.redirect, WebSMIT выполняет перенаправление страницы на заданный URL. Этот файл уже содержит некоторые панели, которые не следует изменять.

    Замечание. По окончании конфигурирования кластера следует запретить доступ ко всем панелям SMIT, кроме страницы состояния кластера HACMP. ( пример 9.1 ).
    #################################
    # webSMIT  .allow file		#
    #################################
    cm_hacmp_main_menu_dmn

    Журналы WebSMIT

    WebSMIT регистрирует все свои операции в журналах, подобно SMIT. Файл wsm_ smit.log расположен в каталоге ../log относительно скриптов cgi-bin. Например, при использовании скриптов cgi-bin из заданного по умолчанию каталога /usr/es/sbin/ cluster/wsm/cgi-bin файл журнала находится в каталоге /usr/es/sbin/cluster/wsm/log. Кроме того, в файл wsm_smit.script записывается последняя команда WebSMIT. HACMP не осуществляет управление этими файлами журналов, они могут неограниченно расти, подобно файлу smit.log. Команда snap -e может осуществлять сбор файлов журналов WebSMIT, только если они находятся каталоге по умолчанию /usr/ es/sbin/cluster/wsm/log.

    HACMP и брандмауэры

    При размещении кластера HACMP за брандмауэром следует учитывать следующие аспекты:

  • HACMP не требует наличия какого-либо открытого порта на брандмауэре; отсутствует внешний трафик от Clcomd, RSCT или от диспетчера кластера (Cluster Manager). Открытые порты требуются только для управления приложением и системой (например, SSH).
  • Необходимо убедиться в том, что все сервисные IP-адреса могут осуществлять обмен данными с внешней сетью вне зависимости от их привязки. Следует учитывать, что при отказе сети сервисный интерфейс перемещается с одного базового адаптера на другой. В случае перемещения при сбое сервисный адрес отказавшего узла перемещается на другой узел.
  • Не следует помещать брандмауэр между узлами. В кластере HACMP/XD узлы могут подключаться через открытую сеть. В этом случае следует использовать виртуальные частные сети (Virtual Private Networks) или другое решение, прозрачное для демона коммуникаций кластера (Cluster Communication Daemon).
  • При использовании файла netmon.cf для улучшенного обнаружения отказов сети убедитесь в том, что IP-адреса, указанные в этом файле, доступны через брандмауэр (с помощью команды ping).
  • Если имеются клиенты Clinfo, работающие через брандмауэр, следует открыть порт clinfo_client: 6174/tcp. Решение на основе брандмауэра должно быть реализовано по принципу избыточности; в противном случае брандмауэр становится единой точкой отказа.
  • Безопасность RSCT

    В этой лекции описывается терминология и понятия, используемые в безопасности RSCT. Также описывается архитектура безопасности RSCT и механизмы, используемые в HACMP. Предполагается, что у вас есть знание RSCT и его базовых компонентов (таких, как RMC, диспетчеры ресурсов и т. д.). Важно понимать, что основная часть компонентов и механизмов, описанных в этой главе, не нуждается в конфигурировании; уровень безопасности RSCT работает сразу же. Кроме того, конфигурирование некоторых функций и файлов выполняется только после настройки аутентификации и шифрования сообщений HACMP (см. раздел 9.2, "Использование зашифрованных межузловых коммуникаций"). Некоторые из описанных функций не применяются в HACMP, но являются неотъемлемой частью безопасности RSCT.

    RSCT и HACMP

    HACMP использует RSCT в качестве уровня базовой инфраструктуры. Узлы HACMP связываются с одноранговыми узлами через компоненты RSCT, проверяя их состояние или запрашивая доступ к их ресурсам. Службы топологии (Topology Services) и службы групп (Group Services) реализуют мониторинг пульса HACMP через одноранговый домен RSCT. Подсистема RMC применяется для следующего:

  • для настраиваемых событий;
  • мониторинга приложений;
  • динамического приоритета узлов;
  • экспорта состояния сети для использования в Oracle RAC.
  • На рис. 9.6 показана связь между компонентами HACMP и RSCT.

    Каждый раз, когда компонент HACMP (например, диспетчер кластера) одного сервера отправляет функциональный запрос к ресурсу RMC (локальному или уда(рис 9.7) RSCT и HACMP(рис 9.6) Обзор базовых коммуникаций кластераленному), вызывается подсистема RSCT и запросы отправляются на узел, на котором находится ресурс. (рис. 9.7).

    Так как удаленные подключения представляют собой подключения сокетов TCP/ IP, их необходимо защищать, чтобы обеспечить подлинность запрашивающего узла и серверного узла в кластере. Здесь в действие вступают службы безопасности кластера (Cluster Security Services, CtSec).

    Между узлами кластера осуществляется связь типа "клиент-сервер". В следующих разделах под клиентом подразумевается приложение, например локальный диспетчер ресурсов или функция HACMP, использующая клиентский API RMC.

    Эти клиентские приложения подключены к общим библиотекам RMC и CtSec. Если эти клиенты запрашивают доступ к ресурсам на удаленном узле, демон RMC на этом удаленном узле будет сервером для этих запросов.

    Обзор служб безопасности кластера (CtSec)

    Службы безопасности кластера (Cluster Security Services, CtSec) интегрированы в подсистему RSCT и используются в RMC для определения подлинности клиента с узла. Этот процесс аутентификации создает контекст безопасности, применяемый RMC для связи между участвующими узлами в целях выполнения клиентских запросов.

    Примечание. Контекст безопасности реализуется на уровне "клиент-сервер", а не на уровне узла.

    При создании этого контекста безопасности CtSec используют учетные данные для аутентификации. Эти учетные данные применяются для определения подлинности узла и клиентского приложения. Для доступа к ресурсам на удаленном узле, в процессе аутентификации оба узла отправляют и сравнивают учетные данные.

    (рис 9.8) Архитектура служб безопасности кластера

    Этот процесс позволяет достичь следующих целей:

  • клиент может представить о себе информацию, которую другие не смогут подделать;
  • сервер может четко идентифицировать клиента по предоставленным учетным данным;
  • клиент может быть уверен в том, что он получает данные с требуемого сервера.
  • Аутентификация на основе учетных данных использует другие компоненты для создания и идентификации учетных данных. Такая архитектура на основе компонентов, представленная на рис. 9.8, позволяет в будущем выполнять расширение уровня безопасности в RSCT.

    В RMC службы CtSec отвечают только за аутентификацию. Вообще RMC отвечает за авторизацию с использованием таблицы управления доступом (access control list, ACL), разрешая или запрещая доступ к ресурсам в кластере.

    Компоненты служб безопасности кластера (CtSec)

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

    Контекст безопасности, создаваемый CtSec, содержит учетные данные клиента и сервера, состояние аутентификации (выполнена или не выполнена) и информацию о сеансе (например, ключ сеанса или время завершения действия). Контекст безопасности создается компонентами CtSec и отправляется в RMC как результат аутентификации CtSec.

    Абстрактный уровень механизма (MAL)

    CtSec экспортирует интерфейс в приложения, требующие реализации безопасности кластера. Этот интерфейс называется абстрактным уровнем механизма (mechanism abstract layer, MAL). MAL обеспечивает общий, независимый от механизма интерфейс для базовых механизмов безопасности и отправляет эти общие инструкции на сконфигурированные модули безопасности.

    Такие подключаемые модули механизма безопасности называются подключаемыми модулями механизма (mechanism pluggable module, MPM). Результатом работы MAL и сконфигурированного MPM является контекст безопасности, содержащий учетные данные и ключ сеанса, используемые обеими сторонами, участвующими в процессе связи.

    Если клиент отключает аутентификацию, установив значение переменной окружения CTSEC_CC_MECH=none, MAL не применяет MPM для аутентификации, а возвращает контекст безопасности без аутентификации как результат процесса аутентификации. Конфигурирование MPM выполняется в файле /var/ct/cfg/ctcec.cfg. Этот файл содержит все MPM, которые службы CtSec должны использовать в процессе аутентификации. В будущих версиях компания IBM собирается разработать другие модули безопасности. Применение модулей основывается на предопределенных приоритетах.

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

    Подключаемый модуль механизма (MPM)

    Каждый подключаемый модуль механизма (mechanism pluggable module, MPM) преобразует общие задачи, получаемые с уровня MAL, в необходимые задачи, используемые механизмом безопасности для выполнения запросов MAL. MPM осуществляет сбор всех учетных данных, необходимых для выполнения процесса аутентификации каждым отдельным механизмом безопасности. MPM также осуществляет сопоставление сетевых идентификационных данных с локальными идентификационными данными [см. раздел "Служба IDM (Identity Mapping Service) "].

    В настоящее время поддерживается только UNIX MPM. Модуль UNIX MPM был создан для работы как в 32-, так и в 64-разрядных средах, в зависимости от ядра операционной системы. Благодаря модульной архитектуре MAL и MPM в последующих версиях могут быть добавлены другие механизмы безопасности. MPM представляют собой объектные модули, загружаемые MAL во время выполнения.

    MPM расположены в каталоге /usr/sbin/rsct/lib. Каждый MPM должен иметь ссылку в каталоге /usr/lib/, указывающую на соответствующий файл в каталоге ( пример 9.2 ).

    ls -al /usr/sbin/rsct/lib/*.mpm*
    -r--r--r-- 1 bin bin 192120 Sep 06 13:26 /usr/sbin/rsct/lib/unix.mpm
    -r--r--r-- 1 bin bin 199952 Sep 24 11:27 /usr/sbin/rsct/lib/unix.mpm64
    ls -al /usr/lib/*.mpm*
    lrwxrwxrwx 1 root system 27 Oct 11 10:22 /usr/lib/unix.mpm ->
    /usr/sbin/rsct/lib/unix.mpm
    lrwxrwxrwx 1 root system 29 Oct 11 10:22 /usr/lib/unix.mpm64 ->
    /usr/sbin/rsct/lib/unix.mpm64

    Подключаемый модуль UNIX MPM

    Ядром модуля UNIX MPM является клиентский API ctcasd (см. раздел "Аутентификация на основе хостов с использованием ctcasd"), который создает учетные данные аутентификации на основе хостов (host-based authentication, HBA).

    Компонент ctcasd вызывается только при использовании сокетов TCP/IP для удаленных подключений. Если запрос предназначен для локального хоста, UNIX MPM применяет сокеты домена UNIX в ядре. Безопасность ядра является доверенной, и не требует использования дополнительных функций безопасности.

    Аутентификация на основе хостов с использованием ctcasd

    Демон службы Cluster Technology Cluster Authentication Service (ctcasd) создает учетные данные на основе имени хоста и идентификационных данных клиента. Помните о том, что клиентом называется приложение, использующее клиентский API RMC.

    Кроме того, ctcasd создает ключ сеанса, который может применяться в качестве симметричного ключа для обмена данными между узлами после аутентификации. Этот ключ сеанса необходим для шифрования и дешифрования данных в RSCT с использованием алгоритма симметричного ключа, который имеет более высокое быстродействие, чем алгоритмы открытого и закрытого ключа (public and private key algorithms, PPK).

    Чтобы обеспечить конфиденциальность данных о секретном ключе сеанса и целостность учетных данных хоста, ctcasd использует пару открытый/закрытый ключ для шифрования и дешифрования этой информации. В текущей реализации эта пара ключей генерируется с использованием алгоритма RSA512. Это можно изменить, задав 1024-разрядный ключ, путем редактирования файла конфигурации ctcasd ( /usr/ sbin/rsct/cfg/ctcasd.cfg ).

    Чтобы убедиться в том, что ctcasd использует корректный открытый ключ в процессе шифрования, открытые ключи в файле списка доверенных хостов (trusted host list, THL) связываются с именем хоста. Поэтому необходимо, чтобы все узлы в кластере HACMP выполняли разрешение имен идентичным образом.

    Важно! Чтобы обеспечить разрешение имен хостов идентичным образом, все участники кластера должны использовать метод разрешения имен, дающий идентичные результаты на всех узлах в кластере HACMP. Метод и порядок разрешения имен может быть изменен в файле /etc/netsvc.conf (для систем AIX). Все хосты должны также использовать либо короткие, либо полные доменные имена хостов. Если кластер содержит узлы из разных доменов, необходимо применять полные доменные имена хостов.

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

    Чтобы обеспечить подлинность учетных данных хоста, ctcasd выполняет шифрование всех структур учетных данных с применением закрытого ключа инициатора. Блок данных может быть дешифрован кем угодно с использованием открытого ключа отправителя, однако целевой узел может быть уверен, что он был отправлен требуемым узлом.

    Распространение открытых ключей по всем узлам выполняет RSCT. При добавлении узла в одноранговый кластер RSCT выполняет команды для обмена открытыми ключами между управляющим сервером и его узлами.

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

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

    Служба IDM (Identity Mapping Service)

    Результат работы службы IDM (Identity Mapping Service) используется для авторизации. Служба IDM сопоставляет сетевые идентификационные данные с локальными идентификационными данными, если в файлах конфигурации (называемых сопоставлениями, maps) задано правило сопоставления.

    Эти локальные идентификационные данные могут использоваться в RMC для извлечения разрешения из таблицы управления доступом RMC. Описание сбора подсистемой RMC разрешений доступа к ресурсам из таблиц управления доступом см. в разделе "Таблица управления доступом RMC".

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

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

    Например, если пользователь david должен существовать на всех узлах в кластере из четырех узлов и иметь доступ к ресурсам на определенном узле, файл ACL подсистемы RMC на этом узле должен содержать записи для всех сетевых идентификационных данных клиента. Пример 9.3 показывает выходные данные определенного ресурса в файле ACL RMC для четырех узлов.

    IBM.FileSystem
    david@node001 * rw # access for david from node 001
    david@node002 * rw # access for david from node 002
    david@node003 * rw # access for david from node 003
    david@node004 * rw # access for david from node 004

    Это основная цель, для которой была разработана служба IDM. Служба IDM просто сопоставляет сетевые идентификационные данные в управляющем кластере с локальными идентификационными данными, чтобы избежать записи сотен строк в файл ACL RMC.

    Файл конфигурации сопоставлений, /var/ct/cfg/ctsec_map.global, содержит отношения сопоставления между локальными и сетевыми идентификационными данными. В нашем примере файл сопоставлений должен содержать только одну строку, чтобы сопоставить пользователя david на всех узлах кластера с локальными идентификационными данными mapped_david:

    unix:david@<cluster>=mapped_david

    Это обеспечивает сопоставление пользователя david с каждого узла в текущем активном кластере с локальными идентификационными данными mapped_david с использованием сопоставлений, инициируемых UNIX MPM. Эти локальные идентификационные данные не обязательно должны существовать в качестве реальногопользователя в операционной системе. Доступ к ресурсам осуществляется, даже если эти идентификационные данные не существуют локально (в /etc/passwd ).

    При использовании таких идентификационных данных с сопоставлением ресурс в файле ACL требует только одной записи, как показано в примере 9.4 .

    IBM.FileSystem
    mapped_david * rw # access for david from node 001

    В файле ACL можно легко различить сетевые идентификационные данные и локально сопоставленные идентификационные данные. Сетевые идентификационные данные всегда содержат @ и имя хоста или идентификатор узла, с которого подключается клиент. Локально сопоставленные идентификационные данные содержат только спецификатор, так как имя хоста уже было задано в файле сопоставлений.

    Изначально глобальный файл сопоставлений содержит эти записи, как показано в примере 9.5 (например, unix: определяет MPM, используемый для аутентификации, а =root определяет локальные идентификационные данные).

    cat /var/ct/cfg/ctsec_map.global
    unix:root@<cluster>=root
    unix:root@<any_cluster>=any_root
    unix:*@LOCALHOST=*

    В целом первая строка указывает на то, что для каждого запроса к RMC, исходящего от пользователя root с любого узла в текущем активном кластере, выполняется сопоставление с локальными идентификационными данными пользователя root. Для каждого запроса от пользователя root с узлов вне активного кластера выполняется сопоставление с any_root.

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

    Таблица управления доступом RMC

    RMC использует таблицу управления доступом (access control list, ACL) для разрешения или запрета доступа к ресурсам в одноранговом домене RSCT. Таблица управления доступом обновляется HACMP во время процедур администрирования кластера (например, при добавлении и удалении узлов).

    После успешной аутентификации клиента в RMC, выполняется поиск разрешений по заданным критериям в ACL (рис. 9.7). Файл ACL RMC имеет расположение /usr/ sbin/rsct/cfg/ctrmc.acl.

    Файл ACL состоит из разделов (stanzas), содержащих классы ресурсов и определенные разрешения пользователей и хостов в кластере. RMC применяет два типа идентификационных данных для извлечения разрешений, хранящихся в ACL. Эти типы идентификационных данных следующие:

  • сетевые идентификационные данные клиента, представленные именем пользователя и именем хоста клиента, например root@node1.
  • локально сопоставленные идентификационные данные, описанные в разделе "Служба IDM (Identity Mapping Service)".
  • В процессе просмотра файла ACL сначала выполняется поиск сетевых идентификационных данных, а затем локальных идентификационных данных.

    Страницы:

    Безопасность кластера и демона clcomd

    Демон коммуникаций кластера (Cluster Communication Daemon) представляет реализацию надежного, защищенного транспортного уровня для HACMP. Clcomd осуществляет управление почти всеми межкластерными коммуникациями, в частности C-SPOC, верификацией и синхронизацией кластера, наборами файлов. Clcomd также улучшает производительность кластера: он имеет кеш для файлов HACMP ODM, что позволяет ускорить доставку, и может повторно использовать существующие подключения сокетов.

    Демон диспетчера кластера и мониторинг пульса основаны на RSCT, тогда как clinfo использует протокол SNMP.

    Существует два режима безопасности для аутентификации подключения в HACMP:

  • Стандартный (Standard). Выполняется проверка входящего подключения со списком доступа, и разрешается только минимальный требуемый доступ. В этой главе рассматривается только стандартный режим безопасности кластера.
  • Kerberos:. Все коммуникации в кластере защищаются с использованием инфраструктуры PSSP Kerberos. Этот режим безопасности работает только на системах SP с установленным программным обеспечением PSSP.
  • Начиная с HACMP 5.1 файл .rhosts не применяется. Безопасность HACMP основана на аутентификации подключений по принципу минимума привилегий. Демон коммуникаций кластера использует внутренний список доступа для авторизации других узлов для удаленного выполнения команд. При получении узлом запроса на удаленное выполнение Clcomd ищет входящий IP-адрес подключения среди IP-адресов в следующих расположениях:

  • ODM-класс HACMPnode.
  • ODM-класс HACMPadapter.
  • Файл /usr/es/sbin/cluster/etc/rhosts.
  • Демон коммуникаций кластера использует принцип минимума привилегий. При удаленном выполнении команды разрешается только минимальный объем требуемых привилегий. Это обеспечивает удаленное выполнение только для доверенных команд HACMP, причем, если возможно, команды выполняются под учетной записью nobody. Утилиты кластера разделены на две группы:

  • доверенные команды, для которых допускается выполнение под учетной записью root ;
  • остальные команды, выполняющиеся под учетной записью nobody.
  • Ограничение. Нельзя использовать аутентификацию на основе Clcomd для собственных скриптов (скриптов запуска и остановки приложений, настраиваемых скриптов обработки событий и т. д.); в этом случае следует применять rsh или SSH.

    Файл /usr/es/sbin/cluster/etc/rhosts

    Файл /usr/es/sbin/cluster/etc/rhosts должен содержать список всех IP-адресов всех узлов кластера для повышенной безопасности. Этот файл автоматически получает информацию о подключении узла (базовые адреса узлов) от HACMP в процессе обнаружения, а также верификации и синхронизации кластера. Кроме того, можно вручную отредактировать файл /usr/es/sbin/cluster/etc/rhosts, включив в него IP-адреса узлов.

    Важно! Файл /usr/es/sbin/cluster/etc/rhosts должен иметь следующие разрешения:
  • владелец: root;
  • группа: system;
  • разрешения: 0600.
  • Изначальная настройка кластера

    При начальной настройке кластера файл /usr/es/sbin/cluster/etc/rhosts пуст. Обычно HACMP записывает в него базовые адреса одноранговых узлов при первом запуске процессов обнаружения и синхронизации кластера. При первоначальном конфигурировании безопасности кластера рекомендуем добавить IP-адреса кластера на всех узлах в файл /usr/es/sbin/cluster/etc/rhosts, прежде чем начать конфигурирование HACMP.

    Внимание! При изначальной настройке, пока файл /usr/es/sbin/cluster/etc/rhosts на узле HACMP пуст, первым может произойти подключение с нежелательного хоста, вследствие чего в файл rhosts будет записан IP-адрес этого хоста. В этом случае другие одноранговые узлы не смогут подключиться до тех пор, пока файл /usr/es/sbin/cluster/etc/rhosts не будет исправлен вручную.

    Отключение демона коммуникаций кластера

    Для повышения безопасности можно отключить clcomd. При этом следует учитывать, что без clcomd не смогут работать следующие функции:

  • верификация и синхронизация HACMP;
  • C-SPOC, включая LVM, управление пользователями и паролями;
  • наборы файлов;
  • аутентификация и шифрование сообщений.
  • Отключение демона коммуникаций кластера выполняется командой stopsrc . -s clcomdES. Перезапуск clcomd выполняется командой startsrc -s clcomdES.
  • Дополнительные средства безопасности кластера

    Файлы HACMP ODM хранятся в каталоге /etc/es/objrepos. В целях повышения безопасности для них задается владелец root и группа hacmp. Кроме того, для них устанавливается разрешение 0640, кроме файла HACMPdisksubsystem, для которого устанавливается разрешение 0600. Для всех утилит кластера, предназначенных для открытого использования, включен hacmp setgid, что позволяет им читать файлы HACMP ODM. Если группа hacmp не существует, она создается во время установки HACMP.

    Использование зашифрованных межузловых коммуникаций

    HACMP поддерживает зашифрованный обмен сообщениями (encrypted messaging) между узлами кластера. Шифрование может осуществляться для трафика диспетчера кластера (Cluster Manager), демона коммуникаций кластера (Cluster Communication Daemon) и RSCT.

    Шифрование основано на схеме симметричного ключа, обеспечиваемой службами безопасности кластера (Cluster Security Services, CtSec). CtSec является частью RSCT.

    Можно использовать следующие дополнительные модули шифрования RSCT:

  • Data Encryption Standard (md5_des);
  • Triple DES (md5_3des);
  • Advanced Encryption Standard (md5_aes).
  • Шифрование вызывает дополнительную нагрузку на процессоры, однако на продолжительность перемещения при сбое оно не влияет.

    Управление ключами шифрования

    Модули шифрования RSCT используют симметричные ключи. Это означает, что все узлы кластера используют один ключ для шифрования и дешифрования. На каждом узле ключи безопасности расположены в каталоге /usr/es/sbin/cluster/es. Имя файла соответствует выбранному метод шифрования:

  • key_md5_des;
  • key_md5_3des;
  • key_md5_aes.
  • Генерировать ключ следует при первой настройке шифрования сообщений, при изменении конфигурации безопасности кластера или в соответствии с правилами безопасности вашей компании. Один ключ можно использовать столько, сколько потребуется.

    HACMP содержит механизм распространения ключей по узлам:

  • Автоматическое распространение ключей: новый ключ распространяется по узлам кластера автоматически после того, как он был сгенерирован. Этот метод удобен, однако менее безопасен, так как копирование ключей осуществляется через сеть.
  • Распространение ключей вручную: необходимо вручную копировать файл ключей на каждый узел. Можно использовать SFTP или SCP, однако безопаснее всего применять дискету для распространения ключей. Мы рекомендуем использовать этот метод.
  • Внимание! Убедитесь, что владельцем файла ключей является пользователь root, группа system и установлены права доступа 0400. Если кто-либо сможет скопировать ваш ключ или перехватить его по сети, безопасность кластера будет в серьезной опасности.

    Настройка шифрования сообщений

    Основные этапы конфигурирования:

  • Установка требуемого модуля шифрования RSCT.
  • Включение автоматического распространения ключей (только при автоматическом распространении ключей).
  • Включение аутентификации и шифрования сообщений.
  • Генерирование и распространение ключей.
  • Активизация ключей.
  • Синхронизация кластера.
  • Отключение автоматического распространения ключей (только при автоматическом распространении ключей).
  • В целях безопасности рекомендуется использовать распространение ключей вручную.

    Выполнение команд всегда следует осуществлять с одного и того же узла, за исключением этапов 2 и 7, требующих выполнения на всех узлах.

    Важно!
  • Убедитесь, что параметры аутентификации и шифрования согласованы по всему кластеру. Все узлы должны содержать одинаковые файлы ключей. В противном случае HACMP не сможет осуществлять обмен данными с другими узлами.
  • Во время настройки шифрования сообщений в кластере не выполняйте какиелибо другие задачи конфигурирования HACMP.
  • Убедитесь, что ваш кластер находится в рабочем состоянии, что в нем недавно выполнялись процедуры синхронизации и верификации и что узлы могут осуществлять связь друг с другом.
  • Обязательные условия. Следует установить требуемую библиотеку шифрования с диска AIX 5L Expansion Pack CD. Используя smit install_latest, установите следующие наборы файлов:
  • rsct.crypt.des – для использования md5_des;
  • rsct.crypt.3des – для применения md5_3des;
  • rsct.crypt.aes256 – для использования md5_aes.
  • Если кластер уже работает, необходимо перезапустить clcomd:
    stopsrc -s clcomdes
    	startsrc -s clcomdes
  • Включение автоматического распространения ключей на всех узлах. (Этот этап следует выполнять, только если требуется использовать автоматическое распространение ключей.):
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): запустите smit;
  • выберите Communications Applications and Services (Коммуникационные приложения и службы);
  • выберите HACMP for AIX (HACMP для AIX);
  • выберите System Management (C-SPOC);
  • выберите HACMP Security and Users Management (Безопасность и управле ние пользователями HACMP);
  • выберите HACMP Cluster Security (Безопасность кластера HACMP) либо ис пользуйте быстрый путь smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отклю чение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значе ние Enabled (рис. 9.1);
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Включение или изменение метода аутентификации и шифрования сообщений:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP); выполните smit cm_config_security;(рис 9.1) Включение автоматического распространения ключей
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Configure Message Authentication Mode (Конфигурирование режима аутентификации сообщений);
  • нажмите F4 и в разделе Message Authentication Mode (Режим аутентифи кации сообщений) выберите требуемый режим аутентификации (рис. 9.2):
  • md5_des,
  • md5_3des,
  • md5_aes,
  • None: не использовать ни аутентификацию, ни шифрование сообщений;
  • установите в поле Enable Encryption (Включить шифрование) значение Yes (Да);
  • нажмите Enter.
  • Генерирование и распространение ключей.
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.(рис 9.2) Конфигурирование режима аутентификации сообщений
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • выберите Generate/Distribute a Key (Сгенерировать/распространить ключ).
  • нажмите F4 и выберите Type of Key to Generate (Тип генерируемого клю ча). Здесь следует выбрать такой же ключ, как и на этапе 3, "Включение или измене ние метода аутентификации и шифрования сообщений" (рис. 9.3).
  • выберите Distribute a Key (Распространить ключ):
  • Yes (Да): при использовании автоматического распространения ключей;
  • No (Нет): при использовании распространения ключей вручную.
  • Нажмите Enter.(рис 9.3) Генерирование ключаЕсли выбрано автоматическое распространение ключей, то следует перейти к ша гу 5, "Активизация ключа". Теперь скопируйте файл ключа с этого узла на другие узлы. Можно использовать любой метод передачи, но мы рекомендуем применять один из следующих способов:
  • SCP. Утилита защищенного зашифрованного удаленного копирования. Пример:
    scp /usr/es/sbin/cluster/etc/key_md5_aes \
    node2:/usr/es/sbin/cluster/etc/key_md5_aes
  • Дискета. Следует скопировать соответствующий файл ключа из каталога /usr/es/sbin/cluster/etc на дискету. Затем следует скопировать файл с дискеты на все узлы. Если у вас уже есть файл ключа, просто замените его новым файлом ключа. Будьте осторожным с файлом ключа: не пересылайте его через сеть в незашифрованном виде (например, не следует использовать ftp или rcp) и обязательно установите для него разрешение 0400.
  • Активизация ключа:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Activate the new key on all HACMP cluster nodes (Активизировать новый ключ на всех узлах кластера HACMP);
  • еще раз нажмите Enter для подтверждения.
  • Важно! Не активизируйте новый ключ до тех пор, пока на всех узлах кластера не будет установлен одинаковый файл ключа.
  • Синхронизация кластера. При возникновении ошибки, связанной с коммуникациями кластера, следует отключить аутентификацию и шифрование сообщений и начать эту процедуру сначала.
  • Отключение автоматического распространения ключей на всех узлах. (Этот этап следует выполнять, только если вы используете автоматическое распространение ключей):
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включить-отключение автоматического распространения ключей) значение Disabled;
  • нажмите Enter для подтверждения.
  • Повторите эти действия на всех узлах.

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

    Изменение ключа аутентификации

    Ключ можно применять столько, сколько требуется, однако чем дольше вы используете один ключ, тем больше вероятность его перехвата и несанкционированного использования. Для обеспечения максимальной безопасности рекомендуется регулярно менять ключ, например ежемесячно.

  • Включение автоматического распространения ключей на всех узлах. Этот этап следует выполнять, только если требуется использовать автоматическое распространение ключей:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значение Enabled;
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Генерирование и распространение ключей.
  • Перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.
  • Выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • Выберите Generate/Distribute a Key (Сгенерировать/Распространить ключ).
  • Нажмите F4 и выберите Type of Key to Generate (Тип генерируемого ключа). Здесь следует выбрать такой же ключ, как и на этапе 3, "Включение или изменение метода аутентификации и шифрования сообщений" (рис. 9.3).
  • Выберите Distribute a Key (Распространить ключ):
  • Yes (Да): при использовании автоматического распространения ключей;
  • No (Нет): при использовании распространения ключей вручную.
  • Нажмите Enter.
  • Если вы используете распространение ключей вручную, тогда следует скопировать файл ключей с этого узла на другие узлы, заменив старые файлы.
  • Активизация ключа:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Activate the new key on all HACMP cluster nodes (Активизировать новый ключ на всех узлах кластера HACMP);
  • еще раз нажмите Enter для подтверждения.
  • Отключение автоматического распространения ключей на всех узлах. Этот этап следует выполнять, только если вы используете автоматическое распространение ключей:
  • перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security;
  • выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами);
  • выберите Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей);
  • установите для параметра Enable/Disable Automatic Key Distribution (Включение-отключение автоматического распространения ключей) значение Disabled;
  • нажмите Enter для подтверждения. Повторите эти действия на всех узлах.
  • Устранение неполадок аутентификации и шифрования сообщений

    При возникновении ошибок коммуникации кластера (например, при отказе верификации кластера или если C-SPOC не может связаться с другими узлами) следует отключить и аутентификацию сообщений и шифрование сообщений:

  • Перейдите в SMIT HACMP Cluster Security (Безопасность кластера HACMP): выполните smit cm_config_security.
  • Выберите Configure Message Authentication Mode and Key Management (Конфигурирование режима аутентификации сообщений и управления ключами).
  • Выберите Configure Message Authentication Mode (Конфигурирование режима аутентификации сообщений).
  • В разделе Message Authentication Mode (Режим аутентификации сообщений) выберите None.
  • Установите в поле Enable Encryption (Включить шифрование) значение No (Нет).
  • Нажмите Enter.
  • Выполните синхронизацию кластера.
  • Проверка текущих параметров аутентификации сообщений

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

  • Запустите smit hacmp.
  • Выберите Extended Configuration (Расширенное конфигурирование).
  • Выберите Extended Topology Configuration (Расширенное конфигурирование топологии).(рис 9.4) Проверка параметров аутентификации сообщений
  • Выберите Show HACMP Topology (Отображение топологии HACMP).
  • Выберите Show Cluster Definition (Отображение определения кластера). Нажмите Enter для вывода параметров определения кластера (рис. 9.4).
  • Защищенное удаленное выполнение команд в HACMP

    Примечание. Хотя использование Secure Shell (SSH) в кластере HACMP не является обязательным, этот метод защиты удаленного выполнения команд является очень популярным в современных сетевых средах.

    Скрипты запуска и остановки приложений, настраиваемые скрипты обработки событий и прочие скрипты могут требовать выполнения команд на удаленных узлах. Для этой цели все еще можно использовать rsh, однако это небезопасно, так как при этом аутентификация основана на файле .rhosts. Мы настоятельно рекомендуем использовать Secure Shell (SSH). Кроме того, функционирование DLPAR также требует применения SSH.

    SSH и Secure Socket Layer (SSL) совместно обеспечивают аутентификацию, конфиденциальность и целостность данных. Аутентификация SSH основана на инфраструктуре открытых-закрытых ключейБолее распространен термин "Public Key Infrastructure, PKI" (инфраструктура открытых ключей), наличие закрытого (private) ключа подразумевается. , тогда как SSL осуществляет шифрование сетевого трафика.

    SSH содержит следующие утилиты, заменяющие классические r-команды:

    ssh защищенная удаленная оболочка, подобная rsh или rlogin;
    scp защищенное удаленное копирование, подобное rcp;
    sftp утилита зашифрованной передачи файлов, подобная ftp.

    Установка SSH

    Весьма удобно, что IBM поставляет SSH и все его компоненты вместе с AIX. Ниже приведен список требуемых компонентов.

    rpm.rte поддержка rpm-пакетов; автоматически устанавливается вместе с базовым программным обеспечением AIX.
    perl автоматически устанавливается вместе с базовым программным обеспечением AIX.
    openssl.rpm поддержка Open Source Secure Socket Layer (AIX Toolbox for Linux Applications CD).
    openssh.base.client команды клиента Open Source Secure Shell (AIX Expansion Pack).
    openssh.base.server сервер Open Source Secure Shell (AIX Expansion Pack).
    openssh.msg.* каталог сообщений для SSH (AIX Expansion Pack).
    openssh.man.* документация (man pages) для Secure Shell (AIX Expansion Pack).
    openssh.license оpen Source License для SSH (AIX Expansion Pack).
    prngd.rpm генератор случайных чисел, необходимый только в AIX 5.1 и 5.2. (AIX Toolbox for Linux Applications CD).

    Другой вариант состоит в том, чтобы скопировать наиболее актуальные пакеты из Интернета:

  • OpenSSL с сайта IBM AIX Toolbox for Linux Applications (требует процедуры регистрации продолжительностью в несколько минут): http://www6.software.ibm.com/dl/aixtbx/aixtbx-p
  • OpenSSH для AIX: http://www.sourceforge.net/projects/openssh-aix В нашем тесте мы использовали openssl-0.9.6m-1 и openssh.3.8.0.53. Установка состоит из следующих этапов:
  • Убедитесь в том, что установлен rpm.rte: lslpp -l rpm.rte.
  • Убедитесь в том, что установлен Perl: lslpp -l perl.rte.
  • При использовании AIX 5.1 или 5.2 следует установить Prngd с диска AIX Toolbox for Linux Applications CD через SMIT.
  • Установите OpenSSL. Можно применять smit install_latest для его установки с диска AIX Toolbox for Linux Applications CD. В противном случае следует использовать команду rpm:
    rpm -i openssl-0.9.6m-1.aix5.1.ppc.rpm
  • Используйте smit install_latest для установки openssh.base, файла лицензии и соответствующих языковых наборов файлов.
  • Запустите демон SSH: startsrc -s sshd.
  • Настройка SSH для удаленного выполнения команд без пароля

    Некоторые скрипты могут требовать использования SSH и SCP в конфигурации без применения паролей. В этом случае SSH использует пары открытых и закрытых ключей для аутентификации. Закрытый ключ хранится на локальном хосте, тогда как открытый ключ пересылается на удаленные узлы и добавляются в их базу данных авторизованных ключей.

    При выполнении команды SSH (например, ssh node2 date ) коммуникация подписывается с использованием закрытого или секретного ключа узла-источника. Эту подпись можно дешифровать только с применением открытого ключа узла-источника. Если узел-получатель может успешно дешифровать подпись, это подтверждает подлинность узла-отправителя.

    Для настройки удаленного выполнения команд через SSH без паролей следует выполнить следующие действия на всех узлах кластера:

  • Выполнить вход в систему под требуемой учетной записью.
  • Сгенерировать пару ключей аутентификации:
    ssh-keygen -t rsa -f ~/.ssh/node1
    Нажмите Enter для ввода пароля-фразы из нескольких слов. Эта команда генерирует два файла:
  • ~/.ssh/node1: файл секретного ключа;
  • ~/.ssh/node1.pub: файл открытого ключа.
  • Переименуйте файл секретного ключа, назначив ему имя identity:
    mv ~/.ssh/node1 ~/.ssh/identity
  • Добавьте открытый ключ в файл authorized_keys на локальном узле, чтобы SSH мог работать на локальном хосте ( localhost ):
    cat ~/.ssh/node1.pub >> ~/.ssh/authorized_keys
  • Скопируйте свой открытый ключ на все остальные узлы:
    scp ~/.ssh/node1.pub nodeX:~/.ssh/node1.pub
    Повторите эту команду для каждого узла в кластере.
  • Добавьте открытый ключ узла node1 в файл authorized_keys на удаленных узлах:
    ssh nodeX "cat ~/.ssh/node1.pub >> ~/.ssh/authorized_keys"
    Повторите эту команду для всех узлов в кластере.
  • Повторите действия пп. 1–6 на всех узлах.
  • Теперь SSH должен работать на всех узлах не запрашивая пароль.

    Важно! Будьте осторожны с файлами закрытого и открытого ключа: это ключи к вашей системе. Если какой-либо неавторизованный пользователь получит файлы, он сможет подключиться к вашей системе.

    Дополнительные сведения об OpenSSL и OpenSSH можно найти в Интернете:

  • веб-сайт проекта OpenSSL: http://www.openssl.org
  • страница проекта OpenSSH: http://www.openssh.org
  • OpenSSH на AIX: http://www.sourceforge.net/projects/openssh-aix
  • Безопасность WebSmit

    WebSMIT является очень хорошим инструментом конфигурирования и мониторинга кластера. Однако WebSMIT осуществляет доступ к файлам HACMP и выполняет команды кластера под учетной записью пользователя root. Это является потенциально уязвимым местом в безопасности, однако при тщательном планировании и реализации безопасности риск можно полностью устранить. Этот раздел описывает требования безопасности и механизмы, используемые в средах WebSMIT.

    Для обеспечения максимальной безопасности WebSMIT можно выполнить конфигурирование следующих элементов:

  • шифрование коммуникаций между клиентом и сервером с использованием SSL;
  • SSL-сертификат для аутентификации;
  • аутентификация веб-сервера и AIX;
  • обеспечение доступа к WebSMIT только для определенных пользователей AIX;
  • обеспечение доступа через WebSMIT только к определенным панелям SMIT.
  • Для аутентификации WebSMIT требует SSL и SSL-сертификат. При установке Apache генерируется самоподписанный (self-signed) сертификат, который можно использовать в WebSMIT.

    Параметры безопасности WebSMIT

    Параметры безопасности WebSMIT хранятся в файле /usr/es/sbin/cluster/wsm/ wsm_smit.conf. По умолчанию файл содержит максимальные установки параметров безопасности. В этом разделе описываются опции безопасности.

    Внимание! При изменении любого из параметров WebSMIT необходимо перезапустить HTTP-сервер.

    Авторизованный порт

    Параметр AUTHORIZED_PORT представляет порт TCP, используемый для коммуникаций WebSMIT. По умолчанию применяется порт 42267. Рекомендуем изменить значение этого параметра на другой номер, чтобы не допустить доступа неавторизованного пользователя к WebSMIT через стандартный порт. Если определить номер порта здесь, то WebSMIT будет использовать тот протокол (http или https), который связан с этим портом в файле конфигурации HTTP-сервера. Например, если определить порт 42267 в качестве порта SSL в файле httpd.conf, то браузер будет использовать шифрование и в URL нужно будет применять "https://".

    Принудительное использование защищенного http

    Параметр REDIRECT_TO_HTTPS=1 позволяет использовать только защищенные https-коммуникации, чтобы все данные передавались по сети в зашифрованном виде. Если был определен параметр AUTHORIZED_PORT, то эта переменная не применяется. В противном случае будет выполнено перенаправление браузера на порт SSL вне зависимости от введенного URL. Отношение между параметрами AUTHORIZED_ PORT и REDIRECT_TO_HTTPS см. в табл. 9.1.

    Отношение между параметрами AUTHORIZED_PORT и REDIRECT_HTTPS
    AUTHORIZED_PORT установлен AUTHORIZED_PORT не установлен
    REDIRECT_TO_HTTPS=0 Используются параметры безопасности из файла httpd.conf Используется незащищенный протокол HTTP, без шифрования, без SSL
    REDIRECT_TO_HTTPS=1 Используются параметры безопасности порта из файла httpd.conf Используется протокол HTTPS, с SSL и с шифрованием
    Замечание. Мы рекомендуем задать порт SSL TCP в файле httpd.conf и использовать этот порт в качестве авторизованного порта для WebSMIT.

    Аутентификация AIX

    WebSMIT может применять аутентификацию AIX вдобавок к аутентификации веб-сервера путем установки параметра REQUIRE_AUTHENTICATION=1. В этом случае WebSMIT запрашивает имя и пароль пользователя AIX. Так как при этом используются механизмы аутентификации AIX, отказы при входе в систему могут вызвать блокирование учетной записи.

    Замечание. Для повышения уровня безопасности WebSMIT следует установить и аутентификацию веб-сервера и аутентификацию AIX.

    Допустимые пользователи

    Переменная ACCEPTED_USERS содержит список идентификаторов пользователей AIX, которым разрешен доступ к WebSMIT. Все пользователи, указанные в этой переменной, будут иметь в WebSMIT уровень привилегий пользователя root. По умолчанию задано значение ACCEPTED_USERS="root".

    Замечание. Настоятельно рекомендуем создать отдельного пользователя AIX для доступа к WebSMIT.

    Тайм-аут сеанса

    Переменная SESSION_TIMEOUT определяет значение тайм-аута сеанса, по истечении которого пользователь WebSMIT должен выполнить повторный вход в систему вне зависимости от того, активен он или нет. По умолчанию задан тайм-аут в 20 мин.

    Идентификатор пользователя веб-сервера

    Переменная REQUIRED_WEBSERVER_UID содержит идентификатор пользователя, используемый в скриптах cgi-bin в WebSMIT. Здесь должен указываться тот же идентификатор, который применяется и в веб-сервере. Кроме того, следует убедиться в том, что этот идентификатор пользователя не имеет привилегий входа в AIX, чтобы никто не мог переключиться в эту учетную запись. По умолчанию употребляется учетная запись "nobody".

    Разрешение или запрет на доступ к определенным панелям SMIT в WebSMIT

    Можно сконфигурировать, к каким панелям SMIT можно получить доступ через WebSMIT. В качестве имени панели SMIT применяется быстрый путь SMIT к заданной панели; вывод этого имени выполняется нажатием F8 в SMIT (рис. 9.5). Например, панель SMIT Extended Topology Configuration (Расширенное конфигурирование топологии) имеет имя "cm_extended_topology_config_menu_dmn".Файл /usr/es/sbin/cluster/ wsm/wsm_smit.allow содержит список панелей SMIT, к которым разрешен доступ из WebSMIT. Ко всем остальным панелям доступ запрещен.

    (рис 9.5) Быстрый путь к панели SMIT Extended Topology Configuration (Расширенное конфигурирование топологии)

    В файле /usr/es/sbin/cluster/wsm/wsm_smit.deny можно перечислить панели SMIT, недоступные из WebSMIT. Если панель задана и в .allow- и в .deny-файле, приоритет имеет указание в .deny-файле.

    Если панель SMIT указана в файле /usr/es/sbin/cluster/wsm/wsm_smit.redirect, WebSMIT выполняет перенаправление страницы на заданный URL. Этот файл уже содержит некоторые панели, которые не следует изменять.

    Замечание. По окончании конфигурирования кластера следует запретить доступ ко всем панелям SMIT, кроме страницы состояния кластера HACMP. ( пример 9.1 ).
    #################################
    # webSMIT  .allow file		#
    #################################
    cm_hacmp_main_menu_dmn

    Журналы WebSMIT

    WebSMIT регистрирует все свои операции в журналах, подобно SMIT. Файл wsm_ smit.log расположен в каталоге ../log относительно скриптов cgi-bin. Например, при использовании скриптов cgi-bin из заданного по умолчанию каталога /usr/es/sbin/ cluster/wsm/cgi-bin файл журнала находится в каталоге /usr/es/sbin/cluster/wsm/log. Кроме того, в файл wsm_smit.script записывается последняя команда WebSMIT. HACMP не осуществляет управление этими файлами журналов, они могут неограниченно расти, подобно файлу smit.log. Команда snap -e может осуществлять сбор файлов журналов WebSMIT, только если они находятся каталоге по умолчанию /usr/ es/sbin/cluster/wsm/log.

    HACMP и брандмауэры

    При размещении кластера HACMP за брандмауэром следует учитывать следующие аспекты:

  • HACMP не требует наличия какого-либо открытого порта на брандмауэре; отсутствует внешний трафик от Clcomd, RSCT или от диспетчера кластера (Cluster Manager). Открытые порты требуются только для управления приложением и системой (например, SSH).
  • Необходимо убедиться в том, что все сервисные IP-адреса могут осуществлять обмен данными с внешней сетью вне зависимости от их привязки. Следует учитывать, что при отказе сети сервисный интерфейс перемещается с одного базового адаптера на другой. В случае перемещения при сбое сервисный адрес отказавшего узла перемещается на другой узел.
  • Не следует помещать брандмауэр между узлами. В кластере HACMP/XD узлы могут подключаться через открытую сеть. В этом случае следует использовать виртуальные частные сети (Virtual Private Networks) или другое решение, прозрачное для демона коммуникаций кластера (Cluster Communication Daemon).
  • При использовании файла netmon.cf для улучшенного обнаружения отказов сети убедитесь в том, что IP-адреса, указанные в этом файле, доступны через брандмауэр (с помощью команды ping).
  • Если имеются клиенты Clinfo, работающие через брандмауэр, следует открыть порт clinfo_client: 6174/tcp. Решение на основе брандмауэра должно быть реализовано по принципу избыточности; в противном случае брандмауэр становится единой точкой отказа.
  • Безопасность RSCT

    В этой лекции описывается терминология и понятия, используемые в безопасности RSCT. Также описывается архитектура безопасности RSCT и механизмы, используемые в HACMP. Предполагается, что у вас есть знание RSCT и его базовых компонентов (таких, как RMC, диспетчеры ресурсов и т. д.). Важно понимать, что основная часть компонентов и механизмов, описанных в этой главе, не нуждается в конфигурировании; уровень безопасности RSCT работает сразу же. Кроме того, конфигурирование некоторых функций и файлов выполняется только после настройки аутентификации и шифрования сообщений HACMP (см. раздел 9.2, "Использование зашифрованных межузловых коммуникаций"). Некоторые из описанных функций не применяются в HACMP, но являются неотъемлемой частью безопасности RSCT.

    RSCT и HACMP

    HACMP использует RSCT в качестве уровня базовой инфраструктуры. Узлы HACMP связываются с одноранговыми узлами через компоненты RSCT, проверяя их состояние или запрашивая доступ к их ресурсам. Службы топологии (Topology Services) и службы групп (Group Services) реализуют мониторинг пульса HACMP через одноранговый домен RSCT. Подсистема RMC применяется для следующего:

  • для настраиваемых событий;
  • мониторинга приложений;
  • динамического приоритета узлов;
  • экспорта состояния сети для использования в Oracle RAC.
  • На рис. 9.6 показана связь между компонентами HACMP и RSCT.

    Каждый раз, когда компонент HACMP (например, диспетчер кластера) одного сервера отправляет функциональный запрос к ресурсу RMC (локальному или уда(рис 9.7) RSCT и HACMP(рис 9.6) Обзор базовых коммуникаций кластераленному), вызывается подсистема RSCT и запросы отправляются на узел, на котором находится ресурс. (рис. 9.7).

    Так как удаленные подключения представляют собой подключения сокетов TCP/ IP, их необходимо защищать, чтобы обеспечить подлинность запрашивающего узла и серверного узла в кластере. Здесь в действие вступают службы безопасности кластера (Cluster Security Services, CtSec).

    Между узлами кластера осуществляется связь типа "клиент-сервер". В следующих разделах под клиентом подразумевается приложение, например локальный диспетчер ресурсов или функция HACMP, использующая клиентский API RMC.

    Эти клиентские приложения подключены к общим библиотекам RMC и CtSec. Если эти клиенты запрашивают доступ к ресурсам на удаленном узле, демон RMC на этом удаленном узле будет сервером для этих запросов.

    Обзор служб безопасности кластера (CtSec)

    Службы безопасности кластера (Cluster Security Services, CtSec) интегрированы в подсистему RSCT и используются в RMC для определения подлинности клиента с узла. Этот процесс аутентификации создает контекст безопасности, применяемый RMC для связи между участвующими узлами в целях выполнения клиентских запросов.

    Примечание. Контекст безопасности реализуется на уровне "клиент-сервер", а не на уровне узла.

    При создании этого контекста безопасности CtSec используют учетные данные для аутентификации. Эти учетные данные применяются для определения подлинности узла и клиентского приложения. Для доступа к ресурсам на удаленном узле, в процессе аутентификации оба узла отправляют и сравнивают учетные данные.

    (рис 9.8) Архитектура служб безопасности кластера

    Этот процесс позволяет достичь следующих целей:

  • клиент может представить о себе информацию, которую другие не смогут подделать;
  • сервер может четко идентифицировать клиента по предоставленным учетным данным;
  • клиент может быть уверен в том, что он получает данные с требуемого сервера.
  • Аутентификация на основе учетных данных использует другие компоненты для создания и идентификации учетных данных. Такая архитектура на основе компонентов, представленная на рис. 9.8, позволяет в будущем выполнять расширение уровня безопасности в RSCT.

    В RMC службы CtSec отвечают только за аутентификацию. Вообще RMC отвечает за авторизацию с использованием таблицы управления доступом (access control list, ACL), разрешая или запрещая доступ к ресурсам в кластере.

    Компоненты служб безопасности кластера (CtSec)

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

    Контекст безопасности, создаваемый CtSec, содержит учетные данные клиента и сервера, состояние аутентификации (выполнена или не выполнена) и информацию о сеансе (например, ключ сеанса или время завершения действия). Контекст безопасности создается компонентами CtSec и отправляется в RMC как результат аутентификации CtSec.

    Абстрактный уровень механизма (MAL)

    CtSec экспортирует интерфейс в приложения, требующие реализации безопасности кластера. Этот интерфейс называется абстрактным уровнем механизма (mechanism abstract layer, MAL). MAL обеспечивает общий, независимый от механизма интерфейс для базовых механизмов безопасности и отправляет эти общие инструкции на сконфигурированные модули безопасности.

    Такие подключаемые модули механизма безопасности называются подключаемыми модулями механизма (mechanism pluggable module, MPM). Результатом работы MAL и сконфигурированного MPM является контекст безопасности, содержащий учетные данные и ключ сеанса, используемые обеими сторонами, участвующими в процессе связи.

    Если клиент отключает аутентификацию, установив значение переменной окружения CTSEC_CC_MECH=none, MAL не применяет MPM для аутентификации, а возвращает контекст безопасности без аутентификации как результат процесса аутентификации. Конфигурирование MPM выполняется в файле /var/ct/cfg/ctcec.cfg. Этот файл содержит все MPM, которые службы CtSec должны использовать в процессе аутентификации. В будущих версиях компания IBM собирается разработать другие модули безопасности. Применение модулей основывается на предопределенных приоритетах.

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

    Подключаемый модуль механизма (MPM)

    Каждый подключаемый модуль механизма (mechanism pluggable module, MPM) преобразует общие задачи, получаемые с уровня MAL, в необходимые задачи, используемые механизмом безопасности для выполнения запросов MAL. MPM осуществляет сбор всех учетных данных, необходимых для выполнения процесса аутентификации каждым отдельным механизмом безопасности. MPM также осуществляет сопоставление сетевых идентификационных данных с локальными идентификационными данными [см. раздел "Служба IDM (Identity Mapping Service) "].

    В настоящее время поддерживается только UNIX MPM. Модуль UNIX MPM был создан для работы как в 32-, так и в 64-разрядных средах, в зависимости от ядра операционной системы. Благодаря модульной архитектуре MAL и MPM в последующих версиях могут быть добавлены другие механизмы безопасности. MPM представляют собой объектные модули, загружаемые MAL во время выполнения.

    MPM расположены в каталоге /usr/sbin/rsct/lib. Каждый MPM должен иметь ссылку в каталоге /usr/lib/, указывающую на соответствующий файл в каталоге ( пример 9.2 ).

    ls -al /usr/sbin/rsct/lib/*.mpm*
    -r--r--r-- 1 bin bin 192120 Sep 06 13:26 /usr/sbin/rsct/lib/unix.mpm
    -r--r--r-- 1 bin bin 199952 Sep 24 11:27 /usr/sbin/rsct/lib/unix.mpm64
    ls -al /usr/lib/*.mpm*
    lrwxrwxrwx 1 root system 27 Oct 11 10:22 /usr/lib/unix.mpm ->
    /usr/sbin/rsct/lib/unix.mpm
    lrwxrwxrwx 1 root system 29 Oct 11 10:22 /usr/lib/unix.mpm64 ->
    /usr/sbin/rsct/lib/unix.mpm64

    Подключаемый модуль UNIX MPM

    Ядром модуля UNIX MPM является клиентский API ctcasd (см. раздел "Аутентификация на основе хостов с использованием ctcasd"), который создает учетные данные аутентификации на основе хостов (host-based authentication, HBA).

    Компонент ctcasd вызывается только при использовании сокетов TCP/IP для удаленных подключений. Если запрос предназначен для локального хоста, UNIX MPM применяет сокеты домена UNIX в ядре. Безопасность ядра является доверенной, и не требует использования дополнительных функций безопасности.

    Аутентификация на основе хостов с использованием ctcasd

    Демон службы Cluster Technology Cluster Authentication Service (ctcasd) создает учетные данные на основе имени хоста и идентификационных данных клиента. Помните о том, что клиентом называется приложение, использующее клиентский API RMC.

    Кроме того, ctcasd создает ключ сеанса, который может применяться в качестве симметричного ключа для обмена данными между узлами после аутентификации. Этот ключ сеанса необходим для шифрования и дешифрования данных в RSCT с использованием алгоритма симметричного ключа, который имеет более высокое быстродействие, чем алгоритмы открытого и закрытого ключа (public and private key algorithms, PPK).

    Чтобы обеспечить конфиденциальность данных о секретном ключе сеанса и целостность учетных данных хоста, ctcasd использует пару открытый/закрытый ключ для шифрования и дешифрования этой информации. В текущей реализации эта пара ключей генерируется с использованием алгоритма RSA512. Это можно изменить, задав 1024-разрядный ключ, путем редактирования файла конфигурации ctcasd ( /usr/ sbin/rsct/cfg/ctcasd.cfg ).

    Чтобы убедиться в том, что ctcasd использует корректный открытый ключ в процессе шифрования, открытые ключи в файле списка доверенных хостов (trusted host list, THL) связываются с именем хоста. Поэтому необходимо, чтобы все узлы в кластере HACMP выполняли разрешение имен идентичным образом.

    Важно! Чтобы обеспечить разрешение имен хостов идентичным образом, все участники кластера должны использовать метод разрешения имен, дающий идентичные результаты на всех узлах в кластере HACMP. Метод и порядок разрешения имен может быть изменен в файле /etc/netsvc.conf (для систем AIX). Все хосты должны также использовать либо короткие, либо полные доменные имена хостов. Если кластер содержит узлы из разных доменов, необходимо применять полные доменные имена хостов.

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

    Чтобы обеспечить подлинность учетных данных хоста, ctcasd выполняет шифрование всех структур учетных данных с применением закрытого ключа инициатора. Блок данных может быть дешифрован кем угодно с использованием открытого ключа отправителя, однако целевой узел может быть уверен, что он был отправлен требуемым узлом.

    Распространение открытых ключей по всем узлам выполняет RSCT. При добавлении узла в одноранговый кластер RSCT выполняет команды для обмена открытыми ключами между управляющим сервером и его узлами.

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

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

    Служба IDM (Identity Mapping Service)

    Результат работы службы IDM (Identity Mapping Service) используется для авторизации. Служба IDM сопоставляет сетевые идентификационные данные с локальными идентификационными данными, если в файлах конфигурации (называемых сопоставлениями, maps) задано правило сопоставления.

    Эти локальные идентификационные данные могут использоваться в RMC для извлечения разрешения из таблицы управления доступом RMC. Описание сбора подсистемой RMC разрешений доступа к ресурсам из таблиц управления доступом см. в разделе "Таблица управления доступом RMC".

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

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

    Например, если пользователь david должен существовать на всех узлах в кластере из четырех узлов и иметь доступ к ресурсам на определенном узле, файл ACL подсистемы RMC на этом узле должен содержать записи для всех сетевых идентификационных данных клиента. Пример 9.3 показывает выходные данные определенного ресурса в файле ACL RMC для четырех узлов.

    IBM.FileSystem
    david@node001 * rw # access for david from node 001
    david@node002 * rw # access for david from node 002
    david@node003 * rw # access for david from node 003
    david@node004 * rw # access for david from node 004

    Это основная цель, для которой была разработана служба IDM. Служба IDM просто сопоставляет сетевые идентификационные данные в управляющем кластере с локальными идентификационными данными, чтобы избежать записи сотен строк в файл ACL RMC.

    Файл конфигурации сопоставлений, /var/ct/cfg/ctsec_map.global, содержит отношения сопоставления между локальными и сетевыми идентификационными данными. В нашем примере файл сопоставлений должен содержать только одну строку, чтобы сопоставить пользователя david на всех узлах кластера с локальными идентификационными данными mapped_david:

    unix:david@<cluster>=mapped_david

    Это обеспечивает сопоставление пользователя david с каждого узла в текущем активном кластере с локальными идентификационными данными mapped_david с использованием сопоставлений, инициируемых UNIX MPM. Эти локальные идентификационные данные не обязательно должны существовать в качестве реальногопользователя в операционной системе. Доступ к ресурсам осуществляется, даже если эти идентификационные данные не существуют локально (в /etc/passwd ).

    При использовании таких идентификационных данных с сопоставлением ресурс в файле ACL требует только одной записи, как показано в примере 9.4 .

    IBM.FileSystem
    mapped_david * rw # access for david from node 001

    В файле ACL можно легко различить сетевые идентификационные данные и локально сопоставленные идентификационные данные. Сетевые идентификационные данные всегда содержат @ и имя хоста или идентификатор узла, с которого подключается клиент. Локально сопоставленные идентификационные данные содержат только спецификатор, так как имя хоста уже было задано в файле сопоставлений.

    Изначально глобальный файл сопоставлений содержит эти записи, как показано в примере 9.5 (например, unix: определяет MPM, используемый для аутентификации, а =root определяет локальные идентификационные данные).

    cat /var/ct/cfg/ctsec_map.global
    unix:root@<cluster>=root
    unix:root@<any_cluster>=any_root
    unix:*@LOCALHOST=*

    В целом первая строка указывает на то, что для каждого запроса к RMC, исходящего от пользователя root с любого узла в текущем активном кластере, выполняется сопоставление с локальными идентификационными данными пользователя root. Для каждого запроса от пользователя root с узлов вне активного кластера выполняется сопоставление с any_root.

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

    Таблица управления доступом RMC

    RMC использует таблицу управления доступом (access control list, ACL) для разрешения или запрета доступа к ресурсам в одноранговом домене RSCT. Таблица управления доступом обновляется HACMP во время процедур администрирования кластера (например, при добавлении и удалении узлов).

    После успешной аутентификации клиента в RMC, выполняется поиск разрешений по заданным критериям в ACL (рис. 9.7). Файл ACL RMC имеет расположение /usr/ sbin/rsct/cfg/ctrmc.acl.

    Файл ACL состоит из разделов (stanzas), содержащих классы ресурсов и определенные разрешения пользователей и хостов в кластере. RMC применяет два типа идентификационных данных для извлечения разрешений, хранящихся в ACL. Эти типы идентификационных данных следующие:

  • сетевые идентификационные данные клиента, представленные именем пользователя и именем хоста клиента, например root@node1.
  • локально сопоставленные идентификационные данные, описанные в разделе "Служба IDM (Identity Mapping Service)".
  • В процессе просмотра файла ACL сначала выполняется поиск сетевых идентификационных данных, а затем локальных идентификационных данных.

    Вернуться к учебному плану