Упрощение и централизация управления IPSec в AIX

Протокол Internet Protocol Security (IPSec) помогает защищать данные, однако построение IPSec-туннелей в больших организациях с множеством компьютеров может оказаться непростой задачей. Из этой статьи вы узнаете о централизованном управлении IPSec в AIX®, благодаря которому можно управлять конфигурацией IPSec на большом количестве клиентских компьютеров. В примерах этой статьи будет показано, как упростить и централизовать управление конфигурациями IPSec, используя LDAP в качестве центрального хранилища.

Джойти Тенгинакаи, разработчик программного обеспечения, IBM

Photo of Jyoti TenginakaiДжойти Тенгинакаи (Jyoti Tenginakai) работает старшим разработчиком программного обеспечения в IBM India. Обладает более чем девятилетним опытом работы в области программного обеспечения. В начале карьеры в IBM она работала над такими Open Source-компонентами, как OpenSSH и LSOF. Сейчас Джойти принимает участие в разработке компонентов безопасности AIX Security, таких как Trusted Execution, EFS, AIXpert и Ipsec. Джойти имеет степень бакалавра в области электроники и коммуникаций, полученную в технологическом университете Висвешварайа. С ней можно связаться по электронной почте jyoti.b.t@in.ibm.com.



19.09.2013

Краткий обзор

Internet Protocol Security – это стек протоколов, в котором реализованы различные функции по защите информации. Как отдельные пользователи, так и организации используют IPSec для защиты трафика приложений без необходимости вносить изменения в сами приложения. Протокол IPSec защищает данные посредством аутентификации, проверки целостности и шифрования. Защита данных обеспечивается на IP-уровне модели сетевого взаимодействия, поэтому нет необходимости изменять сами приложения. Тем не менее для того, чтобы компьютер мог использовать IPSec, его необходимо настраивать в индивидуальном порядке.

Из этой статьи вы узнаете об управлении IPSec в AIX, упрощающем применение и управление конфигурациями IPSec в больших сетях. Эта функциональность обеспечивают централизованное управление конфигурациями с помощью протокола LDAP, используемого в качестве центрального хранилища для обработки и распространения конфигураций IPSec. Данная функциональность доступна в AIX, начиная с версий 61V/71H и выше.

Потребность в упрощении IPSEC

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

Из-за такого большого количества параметров в процессе конфигурирования IPSec могут возникать ошибки, а сам процесс может занимать много времени. Чтобы снизить вероятность ошибок при конфигурировании, в AIX IPSec была добавлена новая функциональность, упрощающая процесс настройки IPSec в больших организациях. Ее возможности:

  • Хранение нескольких наборов политик конфигурации IPSec на сервере LDAP с целью централизованного управления ими.
  • Определение политик конфигурации IPSec и назначение их группам компьютеров.

    Все компьютеры, которым назначена политика конфигурации IPSec, будут использовать один и тот же набор конфигураций (правил) IPSec, определенных в XML-файле. Одному компьютеру можно одновременно назначить только одну политику.

  • Обновление параметров каждые 60 минут. При изменении конфигурации туннелей уничтожаются все старые туннели и создаются новые.
  • Поддержка аутентификации для туннелей фазы 1 только на основе сертификатов.

Новая функциональность AIX создает туннели для каждой пары IP-адресов, являющихся частью политики конфигурации IPSec.


Конфигурирование AIX IPSec

Конфигурационные файлы, используемые в AIX для создания IPSec-туннелей, хранятся в XML-формате. Для создания туннеля между двумя компьютерами необходимо настроить более 20 конфигурационных параметров, которые помещаются в XML-файл. Однако XML-файлы не содержат IP-адресов; эти адреса считываются с компьютеров, связанных с политикой. В AIX IPSec имеется команда для загрузки конфигурационных XML-файлов на LDAP-сервер.

В листинге 1 показан пример конфигурационного XML-файла, хранящегося на LDAP-сервере.

Листинг 1. Пример конфигурационного XML-файла
$cat ipsec_ldap.xml
<?xml version="1.0"?>
<AIX_VPN
      Version="2.0">
   <IKEProtection
         IKE_Role="Both"
         IKE_Version="2"
         IKE_XCHGMode="Main"
         IKE_KeyOverlap="10"
         IKE_Flags_UseCRL="No"
         IKE_ProtectionName="P1Pol"
         IKE_ResponderKeyRefreshMaxKB="200"
         IKE_ResponderKeyRefreshMinKB="1"
         IKE_ResponderKeyRefreshMaxMinutes="1440"
         IKE_ResponderKeyRefreshMinMinutes="1">
      <IKETransform
            IKE_Encryption="3DES-CBC"
            IKE_Hash="SHA"
            IKE_DHGroup="2"
            IKE_PRF="PRF_HMAC_SHA1"
            IKE_AuthenticationMethod="RSA_signatures"/>
   </IKEProtection>
   <IPSecProposal
         IPSec_ProposalName="P2Prop">
      <IPSecESPProtocol
            ESP_Encryption="ESP_3DES"
            ESP_KeyRefreshKB="0"
            ESP_Authentication="HMAC-SHA"
            ESP_ExtendedSeqNum="0"
            ESP_EncapsulationMode="Tunnel"
            ESP_KeyRefreshMinutes="480"/>
   </IPSecProposal>
   <IPSecProtection
         IPSec_Role="Both"
         IPSec_KeyOverlap="10"
         IPSec_ProposalRefs="P2Prop "
         IPSec_ProtectionName="P2Pol"
         IPSec_InitiatorDHGroup="1"
         IPSec_ResponderDHGroup="NO_PFS GROUP_1 GROUP_2"
         IPSec_Flags_UseLifeSize="No"
         IPSec_Flags_UseCommitBit="No"
         IPSec_ResponderKeyRefreshMaxKB="200"
         IPSec_ResponderKeyRefreshMinKB="1"
         IPSec_ResponderKeyRefreshMaxMinutes="43200"
         IPSec_ResponderKeyRefreshMinMinutes="1"/>
</AIX_VPN>

Конфигурирование LDAP-клиентов в качестве конечных точек IPSec

На всех компьютерах, которые будут являться конечными точками IPSec-туннелей, должен быть сконфигурирован LDAP-клиент. Для поддержки IPSec-туннелей в конфигурационном файле LDAP-клиента AIX ldap.cfg появились два новых параметра. Эти два параметра показаны в листинге 2.

Листинг 2. Параметры конфигурации
# Base Dn where IPSec policy and IPSec host data is stored on LDAP server.
ipsecbasedn:ou=ipsec,cn=aixdata
ip_hostbasedn:ou=Ip_host,cn=aixdata

После того, как файл ldap.cfg будет обновлен, перезапустите демон secldapclntd, как показано в листинге 3.

Листинг 3. Перезапуск демона secldapclntd
# restart-secldapclntd
The secldapclntd daemon terminated successfully.
Starting the secldapclntd daemon.
The secldapclntd daemon started successfully.

# mkipsecldap -D <binddn> -w <bindpwd>  [-b <basedn> ]

Например, можно воспользоваться командой # mkipsecldap -D cn=admin -w adminpwd.

Чтобы убедиться, что родительский объект конфигурации IPSec добавлен, воспользуйтесь командой ldapsearch, как показано в листинге 4.

Листинг 4. Проверка
# ldapsearch -h vayu17.in.ibm.com -D cn=admin -w
adminpwd -s sub -b "ou=Ip_host,cn=aixdata"
objectclass=*
ou=Ip_host,cn=aixdata
ou=Ip_host
objectClass=organizationalUnit
objectClass=top

# ldapsearch -h vayu17.in.ibm.com -D cn=admin -w
adminpwd -s sub -b " ou=ipsec,cn=aixdata" objectclass=*
ou=ipsec,cn=aixdata
ou=ipsec
objectClass=organizationalUnit
objectClass=top

Также необходимо убедиться в том, что все службы обмена ключами IKE активны (листинг 5).

Листинг 5. Проверка статуса служб IKE
# lssrc -g ike
Subsystem         Group            PID          Status
 cpsd             ike              2883782      active
 tmd              ike              5373970      active
 iked             ike              9175268      active

Создание файлов ключей GSKit для клиентских компьютеров

Функциональность AIX IPSec поддерживает авторизацию на основе сертификатов. Сертификаты для каждого клиентского компьютера можно создать с помощью команд инструментария IBM Global Security Kit (GSKit).

Создание сертификатов с помощью GSKit

В этом разделе я покажу, как с помощью GSKit создать сертификаты, используемые механизмом аутентификации IPSec. IBM GSKit состоит из библиотеки и набора утилит командной строки, используемых во многих продуктах IBM, в том числе в AIX IPSec. Более подробное рассмотрение инструментария GSKit выходит за рамки этой статьи.

Для создания ключевых файлов GSKit для двух компьютеров, взаимодействующих между собой посредством IPSec, выполните следующие действия. Сертификаты для обоих компьютеров, хранящиеся в файлах ключей, подписаны одни и тем же центром сертификации (certificate authority, CA). После того, как файлы ключей будут сгенерированы, их необходимо проинсталлировать на каждом компьютере в директорию /etc/security.

  1. Создайте два файла баз данных ключей с помощью команды gskit. Для создания базы данных для компьютера 1 используйте команду из листинга 6.
    Листинг 6. Создание базы данных для компьютера 1
    #gsk7cmd -keydb -create -db /GSK_CERTS/ikekey -pw
    123456 -type cms –stash

    Для создания базы данных для компьютера 2 используйте команду из листинга 7.
    Листинг 7. Создание базы данных для компьютера 2
    #gsk7cmd -keydb -create -db /GSK_CERTS/ikekey1 -pw
    123456 -type cms –stash
  2. Создайте корневой центр сертификации в файле ключей первого компьютера, выполнив команду из листинга 8.
    Листинг 8. Создание корневого центра сертификации
    #gsk7cmd  -cert -create -db /GSK_CERTS/ikekey.kdb -pw
    123456 -size 1024 -dn "C=IN,O=IBM,CN=ipsecroot"
    -label Root_CA -default_cert  yes -ca yes
  3. Для просмотра содержимого базы данных выполните команду из листинга 9.
    Листинг 9. Просмотр содержимого базы данных
    #gsk7cmd -cert -list -db /GSK_CERTS/ikekey.kdb -pw 123456
    Certificates in database: /GSK_CERTS/ikekey.kdb
       Entrust.net Global Secure Server Certification Authority
       Entrust.net Global Client Certification Authority
       Entrust.net Client Certification Authority
       Entrust.net Certification Authority (2048)
       Entrust.net Secure Server Certification Authority
       VeriSign Class 3 Secure Server CA
       VeriSign Class 3 Public Primary Certification Authority
       VeriSign Class 2 Public Primary Certification Authority
       VeriSign Class 1 Public Primary Certification Authority
       VeriSign Class 4 Public Primary Certification Authority - G2
       VeriSign Class 3 Public Primary Certification Authority - G2
       VeriSign Class 2 Public Primary Certification Authority - G2
       VeriSign Class 1 Public Primary Certification Authority - G2
       VeriSign Class 4 Public Primary Certification Authority - G3
       VeriSign Class 3 Public Primary Certification Authority - G3
       VeriSign Class 2 Public Primary Certification Authority - G3
       VeriSign Class 1 Public Primary Certification Authority - G3
       Thawte Personal Premium CA
       Thawte Personal Freemail CA
       Thawte Personal Basic CA
       Thawte Premium Server CA
       Thawte Server CA
       Root_CA

Был создан новый центр сертификации Root_CA.

После создания корневого центра сертификации создайте запрос на пользовательский сертификат для первого компьютера, как показано в листинге 10.

Листинг 10. Создание запроса на сертификат
#gsk7cmd -certreq -create -db /GSK_CERTS/ikekey.kdb
-pw 123456 -label Test_Cert1 -dn
"C=IN,ST=KA,L=BA,O=IBM,OU=ISL,CN=test1" -size 1024
-file /GSK_CERTS/cert1_csr.arm

После создания запроса сгенерируйте пользовательский сертификат, подписав этот запрос сертификатом корневого центра Root_CA, как показано в листинге 11.

Листинг 11. Подписывание запроса на сертификатt
#gsk7cmd -cert -sign -db /GSK_CERTS/ikekey.kdb  -pw
123456 -label Root_CA -target /GSK_CERTS/Test_Cert1.cer
-format ascii -expire 100 -file /GSK_CERTS/cert1_csr.arm

После создания сертификата добавьте его в базу данных ключей GSKit на первом компьютере, как показано в листинге 12.

Листинг 12. Добавление сертификата в базу данных
#gsk7cmd -cert -receive -file /GSK_CERTS/Test_Cert1.cer
-db /GSK_CERTS/ikekey.kdb  -pw 123456 -type cms -format ascii

Теперь можно просмотреть содержимое базы данных с помощью команды из листинга 13.

Листинг 13. Просмотр содержимого базы данных
#gsk7cmd -cert -list -db /GSK_CERTS/ikekey.kdb -pw 123456
Certificates in database: /GSK_CERTS/ikekey.kdb
   Entrust.net Global Secure Server Certification Authority
   Entrust.net Global Client Certification Authority
   Entrust.net Client Certification Authority
   Entrust.net Certification Authority (2048)
   Entrust.net Secure Server Certification Authority
   VeriSign Class 3 Secure Server CA
   VeriSign Class 3 Public Primary Certification Authority
   VeriSign Class 2 Public Primary Certification Authority
   VeriSign Class 1 Public Primary Certification Authority
   VeriSign Class 4 Public Primary Certification Authority - G2
   VeriSign Class 3 Public Primary Certification Authority - G2
   VeriSign Class 2 Public Primary Certification Authority - G2
   VeriSign Class 1 Public Primary Certification Authority - G2
   VeriSign Class 4 Public Primary Certification Authority - G3
   VeriSign Class 3 Public Primary Certification Authority - G3
   VeriSign Class 2 Public Primary Certification Authority - G3
   VeriSign Class 1 Public Primary Certification Authority - G3
   Thawte Personal Premium CA
   Thawte Personal Freemail CA
   Thawte Personal Basic CA
   Thawte Premium Server CA
   Thawte Server CA
   Test_Cert1
   Root_CA

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

Теперь создадим сертификат для второго компьютера, выполнив те же самые действия. Сначала создайте запрос на сертификат (листинг 14).

Листинг 14. Создание запроса на сертификат для компьютера 2
(0) root @ vayu09: 6.1.0.0: /GSK_CERTS
# gsk7cmd -certreq -create -db /GSK_CERTS/ikekey.kdb
    -pw 123456 -label Test_Cert2 -dn
    "C=IN,ST=KA,L=BA,O=IBM,OU=ISL,CN=test2" -size 1024 -
    file /GSK_CERTS/cert2_csr.arm

Далее подпишите запрос сертификатом центра сертификации ROOT_CA и сгенерируйте пользовательский сертификат (листинг 15).

Листинг 15. Подписывание запроса на сертификат
(0) root @ vayu09: 6.1.0.0: /GSK_CERTS
# gsk7cmd -cert -sign -db /GSK_CERTS/ikekey.kdb  -pw
    123456 -label Root_CA -target /GSK_CERTS/Test_Cert2.cer
    -format ascii -expire 100 -file
    /GSK_CERTS/cert2_csr.arm

Импортируйте полученный подписанный сертификат в файл ключей GSKit (листинг 16).

Листинг 16. Импорт подписанного сертификата
(0) root @ vayu09: 6.1.0.0: /GSK_CERTS
# gsk7cmd -cert -receive -file
    /GSK_CERTS/Test_Cert2.cer -db /GSK_CERTS/ikekey.kdb -
    pw 123456 -type cms -format ascii

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

Листинг 17. Проверка
# gsk7cmd -cert -list -db /GSK_CERTS/ikekey.kdb -pw
123456
Certificates in database: /GSK_CERTS/ikekey.kdb
   Test_Cert2
   Test_Cert1
   Root_CA

Сейчас клиентские сертификаты компьютеров хранятся в одном главном файле ключей. Можно скопировать сертификаты в отдельные файлы, которые будут переданы на клиентские компьютеры. Убедитесь, что сертификат Root_CA также скопирован в файлы GSKit на клиентских компьютерах. Пример приведен в листинге 18.

Листинг 18. Копирование сертификатов в отдельные файлы
#gsk7cmd -cert -export -db /GSK_CERTS/ikekey1.kdb -pw
 123456 -label Root_CA -type cms -target
 /GSK_CERTS/ikekey1.kdb -target_pw 123456 -target_type
cms

(127) root @ vayu09: 6.1.0.0: /GSK_CERTS
# gsk7cmd -cert -export -db /GSK_CERTS/ikekey1.kdb -pw
 123456 -label Test_Cert2  -type cms -target
 /GSK_CERTS/ikekey1.kdb -target_pw 123456 -target_type
cms

Содержимое нового файла ключей можно просмотреть с помощью команды из листинга 19.

Листинг 19. Проверка содержимого
# gsk7cmd -cert -list -db /GSK_CERTS/ikekey1.kdb -pw
 123456
Certificates in database: /GSK_CERTS/ikekey1.kdb
   Root_CA
   Test_Cert2

Теперь можно удалить сертификат Test_Cert2 из главного файла ключей (листинг 20). Таким образом, главный файл ключей будет содержать только сертификат для первого компьютера.

Листинг 20. Удаление сертификата Test_Cert2
#gsk7cmd -cert -delete -db ikekey.kdb  -pw 123456 -
    label " Test_Cert2”

С помощью команд из листинга 21 можно проверить, что каждый файл содержит сертификат только для одного компьютера.

Листинг 21. Просмотр содержимого
# gsk7cmd -cert -list -db /GSK_CERTS/ikekey1.kdb -pw
123456
Certificates in database: /GSK_CERTS/ikekey1.kdb
   Root_CA
   Test_Cert2

# gsk7cmd -cert -list -db /GSK_CERTS/ikekey.kdb -pw
123456
Certificates in database: /GSK_CERTS/ikekey.kdb
   Test_Cert1
   Root_CA

Когда сертификаты будут готовы, скопируйте базу данных ключей в директорию /etc/security каждого компьютера.

Убедитесь, что все службы, связанные с IPSec, работают (листинг 22).

Листинг 22. Проверка статуса служб IKE
# lssrc -g ike
Subsystem         Group            PID          Status
 cpsd             ike              2883782      active
 tmd              ike              5373970      active
 iked             ike              9175268      active

Теперь все готово для запуска туннеля между двумя компьютерами посредством создания политик на LDAP-сервере.


Назначение политик IPSec клиентским компьютерам

Для назначения политики IPSec первому компьютеру выполните команду ikedb, как показано в листинге 23.

Листинг 23. Назначение политики IPSec компьютеру 1
# ikedb -R LDAP -A testpolicy -f ldap.xml -h vayu09.in.ibm.com -C
"/C=IN/ST=KA/L=BA/O=IBM/OU=ISL/CN=test1"

Здесь testpolicy – это имя политики, а с помощью опции -C задается уникальное имя (distinguished name), которое должно совпадать с именем, указанным в параметре –dn при генерировании сертификата для первого компьютера.

Точно так же данная политика назначается второму компьютеру (листинг 24).

Листинг 24. Назначение той же политики IPSec компьютеру 2
# ikedb -R LDAP -A testpolicy -f ldap.xml -h
vayu07.in.ibm.com -C
"/C=IN/ST=KA/L=BA/O=IBM/OU=ISL/CN=test2"

После успешного выполнения этих команд можно создавать IPSec-туннели.


Создание IPSec-туннелей между клиентскими компьютерами

Для создания IPSec-туннелей между всеми клиентскими компьютерами, перечисленными на LDAP-сервере, используйте команду ike, как показано в листинге 25.

Листинг 25. Команда ike
# ike cmd=activate
Phase 2 tunnel 1 On_Demand activate request initiated.

Чтобы убедиться в том, что туннели работают, выполните команду ping между двумя клиентскими компьютерами. Также можно просмотреть список созданных туннелей с помощью команды ike cmd=list (листинг 26).

Листинг 26. Список туннелей
# ike cmd=list
Phase  Tun Id  Status      Local Id                        Remote Id
1      1       Active      9.124.101.209                   9.126.85.157
2      1       Active      9.124.101.209                   9.126.85.157

Другие полезные команды

Вывод XML-файла для определенной политики: # ikedb –R LDAP –g <имя политики>

Вывод DTD для XML-файла, хранящегося на LDAP-сервере: # ikedb -R LDAP –o

Удаление политики с LDAP-сервера: #ikedb –R LDAP –D <имя политики>

Обновление конфигурации туннелей: # ikedb -R LDAP

Функциональность AIX IPSec позволяет выполнять автоматическое обновление. Для включения автоматического обновления используйте команду ikedb –R LDAP –p LDAP-демона secldapclntd. IPSec-туннели будут обновляться с интервалом, указанным в параметре IPSECrefreshInterval файла ldap.cfg.


Заключение

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

Ресурсы

  • Оригинал статьи: Simplify and centralize IPSec management on AIX (EN).
  • В информационном центре IBM AIX 6.1 (EN) вы найдете подробную информацию о конфигурировании LDAP-клиентов и IP-безопасности, а также все о планировании, инсталляции, обслуживании и использовании операционной системы AIX.
  • Все инструкции по конфигурированию LDAP-сервера вы найдете в разделе Конфигурирование LDAP-серверов (EN).
  • Статья "Managing certificates with IBM GSKit" (EN) (developerWorks, ноябрь 2012 г.) содержит простое руководство по созданию, подписыванию, инсталляции и использованию сертификатов при помощи IBM Global Security Kit.

Комментарии

developerWorks: Войти

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


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


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

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

 


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

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

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



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

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

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

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

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=945618
ArticleTitle=Упрощение и централизация управления IPSec в AIX
publish-date=09192013