配置kerberos环境_使用Kerberos身份验证机制配置IPsec环境

本文详细介绍了如何使用Kerberos协议在AIX系统间配置IPsec,确保数据包加密。首先,文章阐述了Kerberos的身份验证机制,然后讲解了IPsec的作用。接着,列出了配置Kerberos服务器和客户端的步骤,包括安装、配置KDC、创建keytab文件。之后,文章指导如何配置IPsec启动器和响应器系统,启用IKE接口,准备和更新IPsec配置文件。最后,文章强调了Kerberos身份验证在IPsec中的安全优势,提供了验证Kerberos票证的方法。
摘要由CSDN通过智能技术生成

Kerberos简介

Kerberos是一种用户身份验证协议,可用于采用对称加密的票证机制。 在IBM®AIX®中,Kerberos协议是通过网络认证服务提供的。 因此,在本文中,我们将交替使用Kerberos和网络身份验证服务。

从高层次上讲,Kerberos身份验证在客户端/服务器模型上起作用,客户端与服务器联系以获得票证。 在这里,客户端可以是用户或服务(例如:Telnet,FTP,SSH,IPsec等)。 在Kerberos身份验证过程中,服务器和客户端之间交换以下两种类型的票证:

  • 机票授予票(TGT)
  • 服务票

在Kerberos中,要认证的用户或服务称为principal 。

服务器,通常称为密钥分发中心(KDC),包含其网络内所有主体的私钥。 该服务器包含两部分:身份验证服务器和票证授予服务器。 您可以注意到,配置了网络身份验证服务服务器后,守护程序(krb5kdc)开始运行。 该守护程序执行KDC的以下任务:

  1. 客户端向KDC发送请求。
  2. KDC的身份验证服务器检查请求,并将TGT发送给客户端。 使用客户端的密码对该TGT进行加密。 因此,只有客户端才能解密此消息,这可以作为客户端身份的证明。
  3. 如果客户端需要使用任何服务,则客户端会向KDC发送另一个请求。 该请求包括TGT及其需要使用的服务。
  4. 现在,此请求由KDC的票证授予服务器处理。 它验证请求并向客户端系统发出服务票证。 这可以作为服务方客户身份的证明。
  5. 客户端将服务票证转发到它需要使用的服务。
  6. 该服务与KDC的票证授予服务器联系,以对票证进行验证,最后,它向用户提供访问权限以使用该服务。
图1. Kerberos配置

IPsec简介

IPsec是在网络堆栈的IP层提供安全性的协议。 这样可以确保在两个系统之间传输的所有数据包都经过加密。

可以通过预共享密钥,公共密钥基础结构或Kerberos身份验证机制来实现两个通信系统之间的身份验证。 图2表示基本的IPsec配置。

图2. IPsec基本配置

本文介绍了如何将Kerberos身份验证与IPsec协议一起使用,以确保对两个系统之间传输的所有数据包进行加密。

先决条件

在我们使用Kerberos身份验证执行IPsec之前,请确保满足以下先决条件,否则将在安装过程中导致失败:

  1. 确保所有AIX系统上的主机名均为标准域名(FQDN)形式。
  2. 默认情况下,设置了Java™的某些命令。 因此,请确保已更改PATH环境变量,以考虑/ usr / krb5 / sbin和/ usr / krb5 / bin /中的Kerberos命令路径。
  3. Kerberos票证包含有关票证生成时间的信息,并且在几分钟的间隔内有效。 因此,请确保交互系统之间的时间同步与系统之间的最大差异为5分钟。

本文范围

根据本文,我们将配置三个系统:

  • 一个系统将配置为Kerberos服务器,它提供身份验证服务和票证授予服务
  • 在其他两个系统之间将建立一个IPsec通道
    • 一个系统充当IPsec启动器。
    • 另一个系统充当IPsec响应者。

对于Kerberos身份验证,要求IPsec启动器系统获得初始TGT并使用IPsec响应器系统上提供的IPsec服务。 因此,这两个系统也都充当Kerberos客户端系统。

配置完这些系统后,我们可以从IPsec启动器系统ping通IPsec响应器系统,并验证IPsec隧道是否处于活动状态。 我们还可以确认Kerberos票证是否在Kerberos客户端系统上正确获得。

图3.带有Kerberos配置的IPsec

如图3所示,我们将britmanual06配置为Kerberos服务器系统,将britmanual07配置为IPsec启动器系统,将britmanual08配置为IPsec响应器系统。 将在britmanual07和britmanual08系统之间建立IPsec隧道。

配置步骤

使用kerberos身份验证执行IPsec所需的配置步骤可以分为以下两个阶段:

  1. 将一个系统配置为Kerberos服务器,将其他两个系统配置为Kerberos客户端。
  2. 将一个Kerberos客户端系统配置为IPsec启动器,将另一个客户端系统配置为IPsec响应器。

1.配置Kerberos服务器和Kerberos客户端系统

您需要执行以下步骤来配置Kerberos服务器和客户端系统:

  1. 确保在所有三个(服务器和客户端)系统上都安装了与Kerberos相关的文件集(如前所述,一个系统将用作Kerberos服务器,并且Kerberos文件集的安装将显示以下输出:
    # installp -acXYgd . *
    +-----------------------------------------------------------------------------+
                        Pre-installation Verification...
    +-----------------------------------------------------------------------------+
    Verifying selections...done
    Verifying requisites...done
    Results...
    
    SUCCESSES
    ---------
      Filesets listed in this section passed pre-installation verification
      and will be installed.
    
      Selected Filesets
      -----------------
      krb5.client.rte 1.6.0.3                     # Network Authentication Servi...
      krb5.client.samples 1.6.0.3                 # Network Authentication Servi...
      krb5.lic 1.6.0.3                            # Network Authentication Servi...
      krb5.server.rte 1.6.0.3                     # Network Authentication Servi...
      krb5.toolkit.adt 1.6.0.3                    # Network Authentication Servi...
    
      << End of Success Section >>
    
    +-----------------------------------------------------------------------------+
                       BUILDDATE Verification ...
    +-----------------------------------------------------------------------------+
    Verifying build dates...done
    FILESET STATISTICS
    ------------------
        5  Selected to be installed, of which:
            5  Passed pre-installation verification
      ----
        5  Total to be installed
    
    +-----------------------------------------------------------------------------+
                             Installing Software...
    +-----------------------------------------------------------------------------+
    
    installp: APPLYING software for:
            krb5.lic 1.6.0.3
    
    
    ……………………………………………..……………………………………………..
    ……………………………………………..……………………………………………..
    ……………………………………………..……………………………………………..
    ……………………………………………..……………………………………………..
    ……………………………………………..……………………………………………..
    +-----------------------------------------------------------------------------+
                                    Summaries:
    +-----------------------------------------------------------------------------+
    
    Installation Summary
    --------------------
    Name                        Level           Part        Event       Result
    -------------------------------------------------------------------------------
    krb5.lic                    1.6.0.3         USR         APPLY       SUCCESS    
    krb5.client.rte             1.6.0.3         USR         APPLY       SUCCESS    
    krb5.client.samples         1.6.0.3         USR         APPLY       SUCCESS    
    krb5.client.rte             1.6.0.3         ROOT        APPLY       SUCCESS    
    krb5.toolkit.adt            1.6.0.3         USR         APPLY       SUCCESS    
    krb5.server.rte             1.6.0.3         USR         APPLY       SUCCESS    
    krb5.server.rte             1.6.0.3         ROOT        APPLY       SUCCESS    
    [root@britmanual08] /mnt/APPS/ezkrb/NAS_1603_fileset
    #
  2. 在britmanual06上配置Kerberos服务器。

    您可以使用config.krb5命令或mkkrb5srv (在/ usr / sbin /中存在)命令将AIX系统配置为Kerberos服务器。

    此命令的语法如下: mkkrb5srv -r <Realm name> -d <Domain name> -a <principal name of the Kerberos server admin>

    系统将提示您设置数据库主密码和管理员密码。 在此示例中,我们提供了secret作为密码。 以下示例说明了如何配置Kerberos服务器。

    [root@britmanual06] /
    # mkkrb5srv -r NFSREALM -d isst.aus.stglabs.ibm.com -a admin/admin
      Fileset                      Level  State      Description         
      ----------------------------------------------------------------------------
    Path: /usr/lib/objrepos
      krb5.server.rte            1.6.0.3  COMMITTED  Network Authentication Service
                                                     Server
    
    Path: /etc/objrepos
      krb5.server.rte            1.6.0.3  COMMITTED  Network Authentication Service
                                                     Server
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    Creating /var/krb5/krb5kdc/kdc.conf...
    Creating database files...
    Initializing database '/var/krb5/krb5kdc/principal' for realm 'NFSREALM'
    master key name 'K/M@NFSREALM'
    You are prompted for the database Master Password.
    It is important that you DO NOT FORGET this password.
    Enter database Master Password:
    Re-enter database Master Password to verify:
    WARNING: no policy specified for admin/admin@NFSREALM;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Enter password for principal "admin/admin@NFSREALM":
    Re-enter password for principal "admin/admin@NFSREALM":
    Creating keytable...
    Creating /var/krb5/krb5kdc/kadm5.acl...
    Starting krb5kdc...
    krb5kdc was started successfully.
    Starting kadmind...
    kadmind was started successfully.
    The command completed successfully.
    Restarting kadmind and krb5kdc
    [root@britmanual06] /
    #
  3. 在britmanual07和britmanual08上配置Kerberos客户端。

    您可以使用config.krb5命令或mkkrb5clnt命令(在/ usr / sbin /中提供)将AIX系统配置为Kerberos客户机系统。

    该命令的语法如下:

    mkkrb5clnt -r <Realm name> -d <Domain name> -s <fully qualified hostname of admin server> -c 
    <fully qualified hostname of KDC> -A -i <configure integrated Kerberos authentication> -K -T

    在这里, Realm用作完整管理域中的群集。

    自变量具有以下含义:

    论据 描述
    -一个 指定要添加为Kerberos管理用户的根
    -一世 配置集成的Kerberos身份验证
    -K 指定将Kerberos用作默认身份验证方案
    -T 获取基于服务器管理员TGT的管理员票证

    在这里,我们将被提示提供在配置krb服务器期间设置的管理员密码。 如果成功,将提示我们为将为Kerberos客户端主机系统创建的主体条目提供密码。 作为默认值,我们提供了secret作为密码。

    请参考以下示例来配置Kerberos客户端( britmanual07和britmanual08 )。

    [root@britmanual07] /
    # mkkrb5clnt -r NFSREALM -d isst.aus.stglabs.ibm.com -s britmanual06.isst.aus.stglabs.ibm.com -c 
    britmanual06.isst.aus.stglabs.ibm.com -A -i files -K -T
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    The command completed successfully.
    Password for admin/admin@NFSREALM:
    Configuring fully integrated login
    Authenticating as principal admin/admin with existing credentials.
    WARNING: no policy specified for host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Principal "host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM" created.
    
    Administration credentials NOT DESTROYED.
    Making root a Kerberos administrator
    Authenticating as principal admin/admin with existing credentials.
    WARNING: no policy specified for root/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Enter password for principal "root/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM":
    Re-enter password for principal "root/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM":
    
    Administration credentials NOT DESTROYED.
    Configuring Kerberos as the default authentication scheme
    Cleaning administrator credentials and exiting.
    [root@britmanual07] /
    #
    
    
     [root@britmanual08] /
    # mkkrb5clnt -r NFSREALM -d isst.aus.stglabs.ibm.com -s britmanual06.isst.aus.stglabs.ibm.com -c
    britmanual06.isst.aus.stglabs.ibm.com -A -i files -K -T
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    The command completed successfully.
    Password for admin/admin@NFSREALM:
    Configuring fully integrated login
    Authenticating as principal admin/admin with existing credentials.
    WARNING: no policy specified for host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Principal "host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM" created.
    
    Administration credentials NOT DESTROYED.
    Making root a Kerberos administrator
    Authenticating as principal admin/admin with existing credentials.
    WARNING: no policy specified for root/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM;
      defaulting to no policy. Note that policy may be overridden by
      ACL restrictions.
    Enter password for principal "root/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM":
    Re-enter password for principal "root/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM":
    
    Administration credentials NOT DESTROYED.
    Configuring Kerberos as the default authentication scheme
    Cleaning administrator credentials and exiting.
    [root@britmanual08] /
    #

    确保将在KDC中创建与客户端相对应的主体名称条目,即host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALMhost / britmanual08.isst.aus.stglabs.ibm.com @ NFSREALM 。 我们可以使用kadmin.local命令在Kerberos服务器系统上对此进行验证

  4. 在Kerberos客户端系统上准备keytab文件。

    keytab文件必须包含两个客户端系统的主体名称条目:

    • 需要输入IPsec发起方系统才能获得初始TGT。
    • 在建立IPsec通道期间,需要输入IPsec响应器系统。

    除了只为两个Kerberos客户端系统创建单独的keytab文件外,我们只能创建一个keytab文件并将其放置在两个系统的/ etc / krb5 /文件夹中。 我们可以使用kadmin命令创建keytab文件。

    请参考以下有关为两个Kerberos客户端系统准备密钥表文件的示例。

    root@britmanual08] /
    # kadmin -p admin/admin
    Authenticating as principal admin/admin with password.
    Password for admin/admin@NFSREALM:
    kadmin:  ktadd host/britmanual07.isst.aus.stglabs.ibm.com
    Entry for principal host/britmanual07.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual07.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual07.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual07.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual07.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
    kadmin:  ktadd host/britmanual08.isst.aus.stglabs.ibm.com
    Entry for principal host/britmanual08.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual08.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual08.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual08.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
    Entry for principal host/britmanual08.isst.aus.stglabs.ibm.com with kvno 4, 
    encryption type AES-128 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
    kadmin:

    现在,我们可以看到/etc/krb5/krb5.keytab文件已创建。 您可以使用klist -k命令列出此文件中的条目。 请参阅klist -k命令的以下输出。

    [root@britmanual08] /
    # klist -kt
    Keytab name:  FILE:/etc/krb5/krb5.keytab
    KVNO Timestamp         Principal
    ---- ----------------- --------------------------------------------------------
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
    [root@britmanual08] /
    #
  5. 我们需要使用sftp这样的应用程序将此文件安全地传输到其他Kerberos客户端系统,并确保将其放置在/ etc / krb5 /文件夹中。 为确保引用相同的密钥表文件,我们可以在另一个Kerberos客户端系统上列出密钥表文件条目。 请参考以下示例,该示例显示了如何验证密钥表文件条目。
    [root@britmanual07] /
    # klist -kt
    Keytab name:  FILE:/etc/krb5/krb5.keytab
    KVNO Timestamp         Principal
    ---- ----------------- --------------------------------------------------------
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:14:48 host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
       4 04/20/17 07:15:00 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
    [root@britmanual07] /
    #
  6. 在britmanual07系统(也是IPsec启动器系统)上获取初始TGT。

    我们可以使用带有-k选项的kinit命令从为此主体创建的keytab文件条目中获取TGT。 我们可以使用klist命令列出票证属性。 请参考kinitklist命令的以下输出以获取初始TGT。

    [root@britmanual07] /
    # kinit -k host/britmanual07.isst.aus.stglabs.ibm.com
    [root@britmanual07] /
    # klist -a
    Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
    Default principal:  host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
    
    Valid starting     Expires            Service principal
    04/20/17 07:23:26  04/21/17 07:23:26  krbtgt/NFSREALM@NFSREALM
            Addresses: (none)
    [root@britmanual07] /
    #

    完成Kerberos服务器和客户端配置后,可以在这些Kerberos客户端系统上配置IPsec。

2.使用Kerberos身份验证配置IPsec启动器和响应器系统

需要执行以下步骤来配置IPsec启动器和响应器系统

  1. 在IPsec启动器和响应器系统上启用Internet密钥交换(IKE)接口。 以下示例显示了启用IKE的命令集。
    [root@britmanual07] /
    # smit IPsec4
    Default rule for IPv4 in ODM has been changed.
    Successfully set default action to PERMIT
    
                                                                                       COMMAND STATUS
    
    Command: OK            stdout: yes           stderr: no
    
    Before command completion, additional instructions may appear below.
    
    IPsec_v4 Available
    Default rule for IPv4 in ODM has been changed.
    Successfully set default action to PERMIT
    
    [root@britmanual08] /
    # smit IPsec4
    Default rule for IPv4 in ODM has been changed.
    Successfully set default action to PERMIT
    
                                                                                       COMMAND STATUS
    
    Command: OK            stdout: yes           stderr: no
    
    Before command completion, additional instructions may appear below.
    
    IPsec_v4 Available
    Default rule for IPv4 in ODM has been changed.
    Successfully set default action to PERMIT
  2. 准备并更新IKE数据库中的IPsec配置文件。

    在AIX系统上配置IPsec的第一步是在启动器和响应器系统上准备IPsec配置文件。 此配置文件是XML文件,请注意,“ kerberos身份验证”将作为AuthenticationMethod提及。

    以下XML代码可以在IPsec启动器系统( britmanual07 )上使用。 确保IKERemoteIdentity地更改了IKELocalIdentityIKERemoteIdentityIPV4_Address的值

    [root@britmanual07] /
    # cat ipsec_Kerberos.xml
    <?xml version="1.0"?>
    <AIX_VPN
          Version="2.0">
       <IKEProtection
             IKE_Role="Both"
             IKE_XCHGMode="Main"
             IKE_KeyOverlap="10"
             IKE_Flags_UseCRL="No"
             IKE_ProtectionName="P1Pol"
             IKE_ResponderKeyRefreshMaxKB="200"
             IKE_ResponderKeyRefreshMinKB="1"
             IKE_ResponderKeyRefreshMaxMinutes="480"
             IKE_ResponderKeyRefreshMinMinutes="1">
          <IKETransform
                IKE_Hash="MD5"
                IKE_DHGroup="1"
                IKE_Encryption="DES-CBC"
                IKE_KeyRefreshMinutes="480"
                IKE_AuthenticationMethod="GSSAPI_Krb5"/>
       </IKEProtection>
       <IKETunnel
             IKE_TunnelName="P1"
             IKE_ProtectionRef="P1Pol"
             IKE_Flags_AutoStart="Yes"
             IKE_Flags_MakeRuleWithOptionalIP="No">
          <IKELocalIdentity>
             <IPV4_Address
                   Value="10.33.0.121"/>
          </IKELocalIdentity>
          <IKERemoteIdentity>
             <IPV4_Address
                   Value="10.33.0.125"/>
          </IKERemoteIdentity>
       </IKETunnel>
      <IPSecProposal
             IPSec_ProposalName="P2Prop">
          <IPSecAHProtocol
                AH_KeyRefreshKB="0"
                AH_Authentication="AH_MD5"
                AH_EncapsulationMode="Transport"
                AH_KeyRefreshMinutes="580"/>
          <IPSecESPProtocol
                ESP_Encryption="ESP_DES"
                ESP_KeyRefreshKB="0"
                ESP_Authentication="HMAC-MD5"
                ESP_EncapsulationMode="Transport"
                ESP_KeyRefreshMinutes="580"/>
       </IPSecProposal>
       <IPSecProtection
             IPSec_Role="Both"
             IPSec_KeyOverlap="10"
             IPSec_ProposalRefs="P2Prop "
             IPSec_ProtectionName="P2Pol"
             IPSec_InitiatorDHGroup="0"
             IPSec_ResponderDHGroup="NO_PFS GROUP_1 GROUP_2 GROUP_5"
             IPSec_Flags_UseLifeSize="No"
             IPSec_Flags_UseCommitBit="No"
             IPSec_ResponderKeyRefreshMaxKB="200"
             IPSec_ResponderKeyRefreshMinKB="1"
             IPSec_ResponderKeyRefreshMaxMinutes="220"
             IPSec_ResponderKeyRefreshMinMinutes="1"/>
       <IPSecTunnel
            IKE_TunnelName="P1"
             IPSec_TunnelName="P2"
             IPSec_ProtectionRef="P2Pol"
             IPSec_Flags_OnDemand="Yes"
             IPSec_Flags_AutoStart="Yes">
          <IPSecLocalIdentity>
             <IPV4_Address
                   Value="10.33.0.121"/>
          </IPSecLocalIdentity>
          <IPSecRemoteIdentity>
             <IPV4_Address
                   Value="10.33.0.125"/>
          </IPSecRemoteIdentity>
       </IPSecTunnel>
    </AIX_VPN>
    [root@britmanual07] /
    #

    可以在IPsec响应器系统( britmanual08 )上使用以下XML代码。 确保IKERemoteIdentity地更改了IKELocalIdentityIKERemoteIdentityIPV4_Address的值

    [root@britmanual08] /
    # cat ipsec_Kerberos.xml
    <?xml version="1.0"?>
    <AIX_VPN
          Version="2.0">
       <IKEProtection
             IKE_Role="Both"
             IKE_XCHGMode="Main"
             IKE_KeyOverlap="10"
             IKE_Flags_UseCRL="No"
             IKE_ProtectionName="P1Pol"
             IKE_ResponderKeyRefreshMaxKB="200"
             IKE_ResponderKeyRefreshMinKB="1"
             IKE_ResponderKeyRefreshMaxMinutes="480"
             IKE_ResponderKeyRefreshMinMinutes="1">
          <IKETransform
                IKE_Hash="MD5"
                IKE_DHGroup="1"
                IKE_Encryption="DES-CBC"
                IKE_KeyRefreshMinutes="480"
                IKE_AuthenticationMethod="GSSAPI_Krb5"/>
       </IKEProtection>
       <IKETunnel
             IKE_TunnelName="P1"
             IKE_ProtectionRef="P1Pol"
             IKE_Flags_AutoStart="Yes"
             IKE_Flags_MakeRuleWithOptionalIP="No">
          <IKELocalIdentity>
             <IPV4_Address
                   Value="10.33.0.125"/>
          </IKELocalIdentity>
          <IKERemoteIdentity>
             <IPV4_Address
                   Value="10.33.0.121"/>
          </IKERemoteIdentity>
       </IKETunnel>
      <IPSecProposal
             IPSec_ProposalName="P2Prop">
          <IPSecAHProtocol
                AH_KeyRefreshKB="0"
                AH_Authentication="AH_MD5"
                AH_EncapsulationMode="Transport"
                AH_KeyRefreshMinutes="580"/>
          <IPSecESPProtocol
                ESP_Encryption="ESP_DES"
                ESP_KeyRefreshKB="0"
                ESP_Authentication="HMAC-MD5"
                ESP_EncapsulationMode="Transport"
                ESP_KeyRefreshMinutes="580"/>
       </IPSecProposal>
       <IPSecProtection
             IPSec_Role="Both"
             IPSec_KeyOverlap="10"
             IPSec_ProposalRefs="P2Prop "
             IPSec_ProtectionName="P2Pol"
             IPSec_InitiatorDHGroup="0"
             IPSec_ResponderDHGroup="NO_PFS GROUP_1 GROUP_2 GROUP_5"
             IPSec_Flags_UseLifeSize="No"
             IPSec_Flags_UseCommitBit="No"
             IPSec_ResponderKeyRefreshMaxKB="200"
             IPSec_ResponderKeyRefreshMinKB="1"
             IPSec_ResponderKeyRefreshMaxMinutes="220"
             IPSec_ResponderKeyRefreshMinMinutes="1"/>
       <IPSecTunnel
            IKE_TunnelName="P1"
             IPSec_TunnelName="P2"
             IPSec_ProtectionRef="P2Pol"
             IPSec_Flags_OnDemand="Yes"
             IPSec_Flags_AutoStart="Yes">
          <IPSecLocalIdentity>
             <IPV4_Address
                   Value="10.33.0.125"/>
          </IPSecLocalIdentity>
          <IPSecRemoteIdentity>
             <IPV4_Address
                   Value="10.33.0.121"/>
          </IPSecRemoteIdentity>
       </IPSecTunnel>
    </AIX_VPN>
    [root@britmanual08] /
  3. 在加载IPsec配置文件之前,我们需要清除数据库中存在的所有较旧的配置。 以下示例提供了一组清除旧配置的命令。 确保清除启动程序和响应程序系统上的旧配置。
    [root@britmanual07] /
    # ikedb -x
    P1_ITD database created successfully
    P2_ITD database created successfully
    P1_PREKEY database created successfully
    PROPOSAL_LIST database created successfully
    PROPOSAL database created successfully
    POLICY database created successfully
    GROUP database created successfully
    NDBM:/etc/IPsec/inet/DB/privkey
    [root@britmanual07] /
    #
    
    [root@britmanual08] /
    # ikedb -x
    P1_ITD database created successfully
    P2_ITD database created successfully
    P1_PREKEY database created successfully
    PROPOSAL_LIST database created successfully
    PROPOSAL database created successfully
    POLICY database created successfully
    GROUP database created successfully
    NDBM:/etc/IPsec/inet/DB/privkey
    [root@britmanual08] /
    #
  4. 将IPsec配置文件加载到IPsec启动器和响应器系统上的数据库中。 以下示例显示如何将IPsec配置加载到数据库中。
    [root@britmanual07] /
    # ikedb -p IPsec_Kerberos.xml
    [root@britmanual07] /
    #
    [root@britmanual08] /
    # ikedb -p IPsec_Kerberos.xml
    [root@britmanual08] /
    #
  5. 在IPsec启动器和响应器系统上启动IPsec守护程序( ikedtmdcpsdisakmpd ),并确保所有守护程序都处于活动状态。 以下示例显示了如何启动IPsec守护程序。
    [root@britmanual07] /
    # stopsrc -g ike
    0513-004 The Subsystem or Group, ike, is currently inoperative.
    [root@britmanual07] /
    # lssrc -g ike
    Subsystem         Group            PID          Status
     cpsd             ike                           inoperative
     tmd              ike                           inoperative
     iked             ike                           inoperative
    
    [root@britmanual07] /
    # startsrc -g ike
    0513-059 The cpsd Subsystem has been started. Subsystem PID is 21626958.
    0513-059 The tmd Subsystem has been started. Subsystem PID is 17891446.
    0513-059 The iked Subsystem has been started. Subsystem PID is 19267598.
    [root@britmanual07] /
    #
    [root@britmanual07] /
    # lssrc -g ike
    Subsystem         Group            PID          Status
     cpsd             ike              21626958     active
     tmd              ike              17891446     active
     iked             ike              19267598     active
    [root@britmanual07] /
    #
    [root@britmanual08] /
    # stopsrc -g ike
    0513-004 The Subsystem or Group, ike, is currently inoperative.
    [root@britmanual08] /
    # lssrc -g ike
    Subsystem         Group            PID          Status
     cpsd             ike                           inoperative
     tmd              ike                           inoperative
     iked             ike                           inoperative
     [root@britmanual08] /
    # startsrc -g ike
    0513-059 The cpsd Subsystem has been started. Subsystem PID is 22741118.
    0513-059 The tmd Subsystem has been started. Subsystem PID is 21495958.
    0513-059 The iked Subsystem has been started. Subsystem PID is 23265318.
    [root@britmanual08] /
    # lssrc -g ike
    Subsystem         Group            PID          Status
     cpsd             ike              22741118     active
     tmd              ike              21495958     active
     iked             ike              23265318     active
    [root@britmanual08] /
    #
  6. 从启动器系统启动IKE通道,并确保本地ID和远程ID IP地址与我们要在其上创建IPsec通道的系统匹配。 以下示例包括在启动器系统上启动IKE通道的命令。
    [root@britmanual07] /
    # ike cmd=activate
    Phase 2 tunnel 1 On_Demand activate request initiated.
    [root@britmanual07] /
    # ike cmd=list
    Phase  Tun Id  Status      Local Id                        Remote Id
    1      1       Dormant     N/A                             10.33.0.125
    2      1       Dormant     10.33.0.121                     10.33.0.125
    [root@britmanual07] /
    # ike cmd=list
    Phase  Tun Id  Status      Local Id                        Remote Id
    1      1       Negotiating N/A                             10.33.0.125
    2      1       Dormant     10.33.0.121                     10.33.0.125
    [root@ britmanual07] /
    # ping 10.33.0.248
    PING 10.33.0.248 (10.33.0.248): 56 data bytes
    64 bytes from 10.33.0.248: icmp_seq=6 ttl=255 time=2 ms
    64 bytes from 10.33.0.248: icmp_seq=7 ttl=255 time=0 ms
    64 bytes from 10.33.0.248: icmp_seq=8 ttl=255 time=0 ms
    ^C
    --- 10.33.0.248 ping statistics ---
    9 packets transmitted, 3 packets received, 66% packet loss
    round-trip min/avg/max = 0/0/2 ms
    [root@britmanual07] /
    # ike cmd=list
    Phase  Tun Id  Status      Local Id                        Remote Id
    1      1       Active      10.33.0.121                     10.33.0.125
    2      1       Active      10.33.0.121                     10.33.0.125
    [root@britmanual07] /
    #
     
    [root@ britmanual08] /
    # ike cmd=list
    Phase  Tun Id  Status      Local Id                        Remote Id
    1      1       Active      10.33.0.125                     10.33.0.121
    2      1       Active      10.33.0.125                     10.33.0.121
    [root@ britmanual08] /
    #
  7. 我们可以通过验证交换的Kerberos票证来确保Kerberos身份验证已经进行。 运行klist命令列出票证。 请参阅klist命令的以下输出。
    [root@britmanual07] /
    # klist
    Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
    Default principal:  host/britmanual07.isst.aus.stglabs.ibm.com@NFSREALM
    Valid starting     Expires            Service principal
    09/10/14 01:49:09  09/11/14 01:49:09  krbtgt/NFSREALM@NFSREALM
    09/10/14 01:59:26  09/11/14 01:49:09 host/britmanual08.isst.aus.stglabs.ibm.com@NFSREALM
    [root@britmanual07] /
    #

    如我们所见,发起者系统获得票证主机或响应者的FQDN。 这充当服务主体名称。 也没有提示我们输入密码,因为我们在响应者系统上创建了keytab条目。

结论

本文可帮助用户了解如何使用Kerberos身份验证在两个系统之间配置IPsec通道。 与预共享密钥相比,Kerberos身份验证更加安全,并且还提供了单点登录(SSO)功能。 因此,使用相同的Kerberos设置,我们也可以实现其他应用程序的用户身份验证,而无需每次都输入密码。

翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-ipsec-env/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值