::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-11-27 01:15:16, Hit : 6450, Vote : 1140
 http://www.howto.pe.kr
 [강좌] Globus Toolkit 3.0.2 + SimpleCA 설치

// 제  목: Globus Toolkit 3.0.2 + SimpleCA 설치
// 작성자: 김영대( http://www.howto.pe.kr )
// 참  고: 설치시 장비의 CPU 속도에 민감한 반응을 보임을 경험했다
//         최소 CPU 800Mhz 이상의 장비에 설치할것을 권장한다

0.설치환경
  설치 GT3: GT3 3.0.2
  O/S: Linux 2.4.18-3 (Redhat 7.3)
  호스트명: myhome.ssu.ac.kr
  
1.설치할 파일 다운받기
  .gt3.0.2-linux-installer.tar.gz ( http://www-unix.globus.org/toolkit/download.html )
  .globus_simple_ca_bundle-latest.tar.gz ( http://www-unix.globus.org/toolkit/download.html )
  .j2sdk-1_4_0_04-fcs-linux-i586.rpm ( http://java.sun.com )
  .apache-ant-1.5.3-1-bin.tar.gz ( http://ant.apache.org )
  .junit3.8.1.zip ( http://www.junit.org )
  
2.계정 만들기
  Globus Toolkit 3(이하 GT3) 를 운영하거나 이용하는데 필요한 최소한의 계정을 만든다
  먼저 GT3 를 관리할 계정으로 globus 계정을 만든다
    [root@myhome root]# useradd globus
    [root@myhome root]# passwd globus

  그리고 GT3 에 작업(job)을 요청하는 클라이언트로서의 사용자 계정을 하나 만든다
  여기서는 cozykyd 라는 계정으로 만들겠다
  나중에 이 계정은 SimpleCA 로 유저 인증서를 요청하게 된다
    [root@myhome root]# useradd cozykyd
    [root@myhome root]# passwd cozykyd

3.호스트 이름 만들기
  GT3를 설치하는 컴퓨터에 이름이 없다면(hostname 명령어의 결과가 "localhost" 로 나타남)
  GT3 인증을 원활히 하기 위하여 DNS 에 등록되지 않는 이름일지라도 임의로 지정하여 등록한다
  (여기서는 myhome.ssu.ac.kr 라는 호스트 이름을 준다고 가정한다)
    [root@myhome root]# vi /etc/sysconfig/network
    ...
    HOSTNAME=myhome.ssu.ac.kr
    ...
  또한 hostname 명령어를 이용하여 이름을 바꾼다
    [root@myhome root]# hostname myhome.ssu.ac.kr  
    
  네트워크 환경을 바꾼것이니 네트워크를 다시 시작시킨다
    [root@myhome root]# /etc/rc.d/init.d/network restart
  
4.미리 설치할 프로그램
  GT3를 설치하기 위해서는 미리 다운받은 몇가지 프로그램들이 설치되어 있어야 한다
  J2SDK 1.4.0_04(GT3 와 잘 어울리는 것으로 판단됨)를 다음의 과정을 통해서 설치한다
  J2SDK가 설치되는 위치는 /usr/java/j2sdk1.4.0_04 이다
    [root@myhome root]# rpm -Uvh j2sdk-1_4_0_04-fcs-linux-i586.rpm

  Jakarta Ant 1.5.3-1 를 다음의 과정을 통해서 설치한다
  Ant가 설치되는 위치는 /usr/local/apache-ant-1.5.3-1 이다
    [root@myhome root]# tar xvzf apache-ant-1.5.3-1-bin.tar.gz -C /usr/local
  
  Junit 3.8.1 를 다음의 과정을 통해서 설치한다
  Junit이 설치되는 위치는 /usr/local/junit3.8.1 이다
  Junit을 Ant 가 설치된 디렉토리의 lib에 복시한다.
    [root@myhome root]# unzip junit3.8.1.zip -d /usr/local
    [root@myhome root]# cp /usr/local/junit3.8.1/junit.jar /usr/local/apache-ant-1.5.3-1/lib/

  다음과 같이 각 계정의 환경변수를 수정한다. 여기서는 root 의 .bash_profile 만 수정하지만
  globus 와 cozykyd 도 동일하게 수정하기 바란다
  아래에서 ". $GLOBUS_LOCATION/etc/globus-user-env.sh" 는 "." 문자 뒤에 한칸의 공백이 있는것이다
    [root@myhome root]# vi .bash_profile
    export JAVA_HOME=/usr/java/j2sdk1.4.0_04
    export ANT_HOME=/usr/local/apache-ant-1.5.3-1
    export GLOBUS_LOCATION=/usr/local/gt3
    export GPT_LOCATION=/usr/local/gt3
    export GLOBUS_IODBC_PATH=$GLOBUS_LOCATION
    export ODBCINI=/etc/odbc.ini
    . $GLOBUS_LOCATION/etc/globus-user-env.sh
    PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME/bin:$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin

    [root@myhome root]# source .bash_profile

5.GT3 설치하기
  이제 GT3를 설치하기 위한 준비사항은 모두 끝났다
  
  먼저 GT3가 설치될 디렉토리를 직접 생성하고, 디렉토리 소우권을 globus.globus 로 변경한다
    [root@myhome root]# mkdir /usr/local/gt3
    [root@myhome root]# chown globus.globus /usr/local/gt3
  
  GT3 설치는 globus 계정으로 하므로 GT3 설치파일을 globus 홈 아래에 두는것이 편리하다
  여기서는 globus 계정의 홈 디렉토리에서 설치파일이 있다고 가정한다
  GT3 설치는 컴퓨터마다 다르겠지만 수분에서 수십분 소요된다
    [globus@myhome globus]$ tar xvzf gt3.0.2-linux-installer.tar.gz
    [globus@myhome globus]$ cd gt3.0.2-linux-installer
    [globus@myhome gt3.0.2-linux-installer]$ ./install-gt3 /usr/local/gt3

    Build environment:
    ant is hashed (/usr/local/apache-ant-1.5.3-1/bin/ant)
    java is /usr/java/j2sdk1.4.0_04/bin/java
    gcc is /usr/bin/gcc

    Building GPT ...
    build_gpt ====> installing GPT into /usr/local/gt3
    build_gpt ====> building support/Compress-Zlib-1.16
    ....
    ....
    gpt-build ====> BUILDING FLAVOR gcc32dbg
    ....
    ....
    setup-ssl-utils: Complete
    running /usr/local/gt3/setup/globus/setup-globus-gram-job-manager...
    Creating state file directory.
    Done.    
    ....
    Setting up fork gram reporter in MDS
    -----------------------------------------
    Done
    
  설치도중 "FLAVOR gcc32dbg" 나 "FLAVOR gcc32dbgpthr" 문장을 보았는가?
  이것의 의미를 모르고 설치하다 여러번 실패한 기억이 있어 몇자 적는다
  gcc32dbg는 GT3 나 SimpleCA 또는 GT3 bundle 들을 설치할때 사용되는 컴파일 옵션이다
  예를 들어 GT3의 Data Management 는 gcc32dbg,
  Information Service 는 gcc32dbgpthr,
  Resource Management 는 gcc32dbg,
  Replica Location Service 는 gcc32dbgpthr,
  SimpleCA 는 gcc32dbg 로 컴파일 옵션을 지정하여 컴파일 한다
  여기서 Data Management, Information Service , Resource Management 는 GT3 설치시
  자동으로 선택되어 설치되므로 신경쓰지 않아도 되지만 SimpleCA 와 Replica Location Service
  의 경우는 별도로 설치하게 되는데 이때 정확히 해당하는 옵션을 적어주어야 한다
  gcc32dbgpthr 의 의미는
    gcc - gcc 컴파일러 사용
    32  - 32bit 코드 생성
    dbg - debug, 실행 파일에 디버깅 정보 넣는것
    pthr - pthread 사용 (thread safe 코드 생성)
  자세한 내용은 인터넷에서 "gcc32dbgpthr" 로 검색해 보면 자료가 몇개 나온다
      
  GT3에서 제공하는 Xalan 라이브러리를 다음과 같이 J2SDK가 설치된 jre 디렉토리에 복사한다
    [globus@myhome gt3.0.2-linux-installer]$ cd /usr/local/gt3
    [globus@myhome gt3]$ cp endorsed/xalan.jar /usr/java/j2sdk1.4.0_04/jre/endorsed

  이제는 root CA의 인증서를 설치할 차례다
  root CA의 인증서란 GT3를 개발한 곳에서 GT3 와 함께 배포하는 것이다
  /usr/local/gt3/setup 디렉토리 아래에 각 CA 들의 인증서를 설치할 수 있는 디렉토리들이
  들어있는데 해당 디렉토리로 들어가면 setup-gsi 라는 스크립트 파일이 있는데 이것이 실제로
  인증서를 호스트에 설치(/etc/grid-security/certificates 에 설치됨)하는 스크립트이다
  지금은 globus 라는 root CA 의 인증서 디렉토리가 있지만 잠시후 SimpleCA 를 설치하면
  또다른 디렉토리가 생성되는데 그 디렉토리의 setup-gsi 도 마찬가지로 실행해 주면 된다
  setup-gsi 실행하면 이미 적당한 값들로 셋팅되어 있으므로 기본값을 따르면 된다
  
  root CA의 인증서를 설치해 보자
  이하 설치화면중에 <<<<???>>>> 표시는 직접 입력하는 부분이다
    [root@myhome root]$ /usr/local/gt3/setup/globus/setup-gsi
    
    setup-gsi: Configuring GSI security
    Making /etc/grid-security...
    mkdir /etc/grid-security
    Making trusted certs directory: /etc/grid-security/certificates/
    mkdir /etc/grid-security/certificates/
    Installing /etc/grid-security/certificates//grid-security.conf.42864e48...
    Running grid-security-config...
    
       G S I   :   C O N F I G U R A T I O N   P R O C E D U R E

    Before you use the Grid Security Infrastructure, you should first
    define the DN (distinguished name) that should be used for your
    organization's X509 certificates.  If you do not define a DN,
    a default DN will be assigned to you.

    This script will ask some questions about site specific
    information. This information is used to configure
    the Grid Security Infrastructure for your site.

    For some questions, a default response is given in [].
    Pressing RETURN in response to such a question will enable the default.
    This script will overwrite the file --

         /etc/grid-security/certificates//grid-security.conf.42864e48

    Do you wish to continue (y/n) [y] : <<<<y>>>>
    ========================================================================
    (1) Base DN for user certificates
             [ ou=ssu.ac.kr, o=Globus, o=Grid ]
    (2) Base DN for host certificates
             [ o=Globus, o=Grid ]
    ========================================================================
    (q) save, configure the GSI and Quit
    (c) Cancel (exit without saving or configuring)
    (h) Help
    ========================================================================

    <<<<q>>>>
    Installing Globus CA certificate into trusted CA certificate directory...
    Installing Globus CA signing policy into trusted CA certificate directory...
    setup-gsi: Complete

  CA 인증서를 설치하게 되면 /etc/grid-security 디렉토리가 생성되며 그 아래 certificates
  디렉토리에 실제 CA 들의 인증서가 들어간다
  참고로 root CA 인증서의 [CA-HASH] 값은 42864e48 이므로 확인해 보기 바란다
    
6.SimpleCA 설치하기
  이미 운영중인 SimpleCA 가 있다면 호스트 인증과 유저 인증을 받으면 되지만
  여기서는 GT3 와 같은 호스트에 SimpleCA 를 설치한다고 가정한다
  
  gpt-build 를 이용하여 설치 준비를 시킨다(make 와 비슷한 동작이다)
  참고로 gpt-build 와 gpt-postinstall 은 $GLOBUS_LOCATION/sbin 에 있으며
  이미 설치했었는데 다시 설치할 경우는 두 명령어 모두 -force 옵션을 주면 덮어쓰게 된다
  아래 설치화면에서 <<<<???>>>> 표시는 직접 입력하는 부분이다
  <<<<비밀번호>>>>는 SimpleCA 인증용 비밀번호 이므로 잘 기억할 수 있는 것으로 입력하고
  잊어버리지 않도록 적어둔다
    [root@myhome root]$ gpt-build globus_simple_ca_bundle-latest.tar.gz gcc32dbg
    [root@myhome root]$ gpt-postinstall

    running /usr/local/gt3/setup/globus/setup-simple-ca...

        C e r t i f i c a t e    A u t h o r i t y    S e t u p

    This script will setup a Certificate Authority for signing Globus
    users certificates.  It will also generate a simple CA package
    that can be distributed to the users of the CA.

    The CA information about the certificates it distrubtes will
    be kept in:

    /root/.globus/simpleCA/

    The unique subject name for this CA is:

    cn=Globus Simple CA, ou=simpleCA-myhome.ssu.ac.kr, ou=GlobusTest, o=Grid

    Do you want to keep this as the CA subject (y/n) [y]:<<<<y>>>>

    Enter the email of the CA (this is the email where certificate
    requests will be sent to be signed by the CA):<<<<CA 를 운영할 이메일>>>>

    The CA certificate has an expiration date. Keep in mind that
    once the CA certificate has expired, all the certificates
    signed by that CA become invalid.  A CA should regenerate
    the CA certificate and start re-issuing ca-setup packages
    before the actual CA certificate expires.  This can be done
    by re-running this setup script.  Enter the number of DAYS
    the CA certificate should last before it expires.
    [default: 5 years (1825 days)]:<<<<그냥 enter key>>>>

    Using configuration from /root/.globus/simpleCA//grid-ca-ssl.conf
    Generating a 1024 bit RSA private key
    .........++++++
    .........................................................++++++
    writing new private key to '/root/.globus/simpleCA//private/cakey.pem'
    Enter PEM pass phrase:<<<<비밀번호>>>>
    Verifying password - Enter PEM pass phrase:<<<<비밀번호 다시>>>>
    ...
    ...    
    setup-ssl-utils: Complete
  
  설치가 완료되었으므로 설치된 디렉토리로 가보자
    [root@myhome root]$ cd /root/.globus/simpleCA
  
  그 디렉토리에 보면 'globus_simple_ca_[CA-HASH]_setup-0.12.tar.gz' 파일이 있을것이다
  [CA-HASH] 부분은 16진수 8 자리로 이것은 SimpleCA 마다 틀리다
  이 파일은 지금 설치한 SimpleCA 의 인증서를 설치할 수 있는 파일들이 들어있는데 이 SimpleCA로
  부터 인증을 받고자 하는 호스트나 유저는 반드시 이 파일을 받아다가 설치해야 한다
  주의할것은 여기서는 GT3 를 설치한 호스트에 SimpleCA 도 같이 설치하는 상황이므로 이미 이
  파일이 현재 호스트에 있는것이지만 GT3 만 설치되어 있는 다른 호스트에서 이 SimpleCA 로 부터
  인증을 받을때는 이 파일을 해당 호스트에 주어서 설치토록 해야한다
  
  그럼 설치해보자  
    [root@myhome simpleCA]# gpt-build globus_simple_ca_[CA-HASH]_setup-0.12.tar.gz gcc32dbg
    [root@myhome simpleCA]# gpt-postinstall
    
  root CA 인증서 설치할때와 똑같이 /usr/local/gt3/setup 디렉토리로 가본다
  거기에는 Simple CA 의 인증서를 설치할 수 있는 디렉토리가 globus_simple_ca_[CA-HASH]_setup
  형태로 만들어져 있을것이다
  이것도 디렉토리 안의 setup-gsi 를 실행하여 SimpleCA의 인증서를 설치한다
  
    [root@myhome root]$ /usr/local/gt3/setup/globus_simple_ca_[CA-HASH]_setup/setup-gsi

    setup-gsi: Configuring GSI security
    Installing /etc/grid-security/certificates//grid-security.conf.[CA-HASH]...
    Running grid-security-config...
    
       G S I   :   C O N F I G U R A T I O N   P R O C E D U R E

    Before you use the Grid Security Infrastructure, you should first
    define the DN (distinguished name) that should be used for your
    organization's X509 certificates.  If you do not define a DN,
    a default DN will be assigned to you.

    This script will ask some questions about site specific
    information. This information is used to configure
    the Grid Security Infrastructure for your site.

    For some questions, a default response is given in [].
    Pressing RETURN in response to such a question will enable the default.
    This script will overwrite the file --

     /etc/grid-security/certificates//grid-security.conf.[CA-HASH]

    Do you wish to continue (y/n) [y] : <<<<y>>>>
    ========================================================================
    (1) Base DN for user certificates
             [ ou=ssu.ac.kr, ou=simpleCA-myhome.ssu.ac.kr, ou=GlobusTest, o=Grid ]
    (2) Base DN for host certificates
             [ ou=simpleCA-myhome.ssu.ac.kr, ou=GlobusTest, o=Grid ]
    ========================================================================
    (q) save, configure the GSI and Quit
    (c) Cancel (exit without saving or configuring)
    (h) Help
    ========================================================================

    <<<<q>>>>
    Installing Globus CA certificate into trusted CA certificate directory...
    Installing Globus CA signing policy into trusted CA certificate directory...
    setup-gsi: Complete  
    
  마찬가지로 이 Simple CA 의 인증서도 /etc/grid-security/certificates 에 인증서가 들어간다
  동일한 [CA-HASH] 값을 같은 파일들이 5개씩 두쌍이 있을것이다
  당연히 두쌍은 Root CA 의 인증서와 Simple CA 의 인증서를 나타낸다
  
7.사용자 및 호스트 인증 받기
  GT3 를 설치한 호스트(host)를 사용자들은 신뢰하고 사용할 수 있는가?
  반대로 GT3 에 작업을 요청하는 사용자(user)를 GT3 는 신뢰할 수 있는가?
  이런 신뢰 문제를 해결하기 위하여 인증서가 필요한것이며 이를 운영할 SimpleCA 가 필요한것이다
  즉 GT3 를 설치한 호스트와 이를 사용할 사용자 모두 SimpleCA 로 부터 인증을 받아야 한다
  그럼 사용자 인증(user certificate) 부터 받아보자

  이 문서의 처음에 Globus 에 작업을 요청하는 클라이언트로서의 사용자(user)로 계정을 하나 만들었다
  여기서는 cozykyd 라는 계정으로 만들었는데 이 사용자를 인증해보겠다
  먼저 cozykyd 계정으로 grid-cert-request 명령어를 사용하여 PKI 에서 말하는 개인키(userkey.pem)와
  공개키(usercert_request.pem)를 만든다
  인증을 받는다함은 사용자가 제출한 공개키를 SimpleCA 가 인증하여 X.509 형태의 인증서로 돌려주는
  일련의 동작을 말한다. 인증 요청을 하기전에 먼저 개인키와 공개키를 만들자
  -cn 옵션에는 본인 이름을 -ca 는 인증 받고자 하는 CA (여기서는 SimpleCA)의 [CA_HASH] 값을 적는다
  [CA_HASH] 값은 /etc/grid-security/certificates 에 있는 파일들을 보면 16진수 8 자리가 보인다.
  root CA 로 부터는 인증을 받을 필요가 없으므로 우리가 설치한 SimpleCA 로 부터만 인증을 받는다
  여기서는 SimpleCA의 [CA_HASH] 은 e2d60fc6 라고 가정한다. 각 사용자 계정으로 실시한다
    [cozykyd@myhome cozykyd]$ grid-cert-request -cn "Young Dae Kim" -ca e2d60fc6
    Using CA: e2d60fc6 - /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/CN=Globus Simple CA

    A certificate request and private key is being created.
    You will be asked to enter a PEM pass phrase.
    This pass phrase is akin to your account password,
    and is used to protect your key file.
    If you forget your pass phrase, you will need to
    obtain a new certificate.

    Using configuration from /etc/grid-security/certificates/globus-user-ssl.conf.e2d60fc6
    Generating a 1024 bit RSA private key
    ......................++++++
    ..................................................................++++++
    writing new private key to '/home/cozykyd/.globus/userkey.pem'
    Enter PEM pass phrase:<<<<비밀번호>>>>
    Verifying password - Enter PEM pass phrase:<<<<비밀번호 다시>>>>
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Level 0 Organization [Grid]:Level 0 Organizational Unit [GlobusTest]:
       Level 1 Organizational Unit [simpleCA-myhome.ssu.ac.kr]:
       Level 2 Organizational Unit [ssu.ac.kr]:Name (e.g., John M. Smith) []:

    A private key and a certificate request has been generated with the subject:

    /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim

    If the CN=Young Dae Kim is not appropriate, rerun this
    script with the -force -cn "Common Name" options.

    Your private key is stored in /home/cozykyd/.globus/userkey.pem
    Your request is stored in /home/cozykyd/.globus/usercert_request.pem

    Please e-mail the request to the Globus Simple CA cozy@hanmail.net
    You may use a command similar to the following:

      cat /home/cozykyd/.globus/usercert_request.pem | mail cozy@hanmail.net

    Only use the above if this machine can send AND receive e-mail. if not, please
    mail using some other method.

    Your certificate will be mailed to you within two working days.
    If you receive no response, contact Globus Simple CA at cozy@hanmail.net
    
  cozykyd 의 홈디렉토리를 살펴보면 .globus 라는 디렉토리가 생성되어 있을것이다
  userkey.pem 는 개인키, usercert_request.pem 는 공개키이다
  usercert.pem 는 0바이트로 비어있는데 이유는 usercert_request.pem 는 단지 공개키이므로 이를
  SimpleCA 로 부터 인증받으면 usercert.pem 가 인증된 파일이 된다
  usercert_request.pem 는 아직 SimpleCA 로 부터 X.509 형태로 인증을 받지않은것이므로
  SimpleCA 에 보내어 인증을 받도록 하자
  SimpleCA 가 다른 호스트에 있다면 SimpleCA 관리자에게 메일등으로 usercert_request.pem 를 보내어
  인증을 요청하지만 여기서는 같은 호스트에 GT3와 SimpleCA 가 설치되어 있으므로 바로 인증을 한다
  SimpleCA 는 root 가 관리하므로 계정을 root 로 바꾼다
    [root@myhome root]# cd /root/.globus/simpleCA/newcerts
    [root@myhome newcerts]# grid-ca-sign -in ~cozykyd/.globus/usercert_request.pem -out usercert.pem
    Enter password for the CA key:<<<<비밀번호>>>>
    The new signed certificate is at: /root/.globus/simpleCA//newcerts/01.pem
  
  <<<<비밀번호>>>>는 SimpleCA 설치시 입력했던 비밀번호이다
  참고로 -in 은 usercert_request.pem 를 -out 은 usercert.pem 를 지정하는 옵션이다
  newcerts 디렉토리에 보면 usercert.pem 가 생성된것을 보게되는데 이것이 usercert_request.pem 를
  인증한 파일이다. SimpleCA 가 다른 호스트에 있었다면 SimpleCA 관리자는 이 파일을 메일등으로
  보내주면 되지만 여기서는 같은 호스트에 설치된 SimpleCA 로 인증한것이므로 그냥 복사해 준다
    [root@myhome newcerts]# cp usercert.pem /home/cozykyd/.globus/
    cp: overwrite `/home/cozykyd/.globus/usercert.pem'? y
    
  이제는 호스트(host) 인증을 할 차례이다. 과정은 사용자 인증과 동일하다. 작업은 root 로 한다
  사용자(uset) 인증과 마찬가지로 인증 요청을 하기전에 먼저 개인키와 공개키를 만들자
  -host 옵션은 호스트 이름을 -ca 는 인증 받고자 하는 CA (여기서는 SimpleCA)의 [CA_HASH] 값을 적는다
  호스트의 공개키와 개인키는 /etc/grid-security 에 생성된다
    [root@myhome root]# grid-cert-request -service host -host myhome.ssu.ac.kr -ca e2d60fc6
    Using CA: e2d60fc6 - /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/CN=Globus Simple CA

    Using configuration from /etc/grid-security/certificates/globus-host-ssl.conf.e2d60fc6
    Generating a 1024 bit RSA private key
    .................++++++
    ..............++++++
    writing new private key to '/etc/grid-security/hostkey.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Level 0 Organization [Grid]:Level 0 Organizational Unit [GlobusTest]:
    Level 1 Organizational Unit [simpleCA-myhome.ssu.ac.kr]:Name (e.g., John M. Smith) []:

    A private host key and a certificate request has been generated
    with the subject:

    /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/CN=host/myhome.ssu.ac.kr

    ----------------------------------------------------------

    The private key is stored in /etc/grid-security/hostkey.pem
    The request is stored in /etc/grid-security/hostcert_request.pem

    Please e-mail the request to the Globus Simple CA cozy@hanmail.net
    You may use a command similar to the following:

     cat /etc/grid-security/hostcert_request.pem | mail cozy@hanmail.net

    Only use the above if this machine can send AND receive e-mail. if not, please
    mail using some other method.

    Your certificate will be mailed to you within two working days.
    If you receive no response, contact Globus Simple CA at cozy@hanmail.net  
  
  /etc/grid-security 를 보면 hostkey.pem 는 개인키, hostcert_request.pem 는 공개키이다
  hostcert.pem 는 0바이트로 비어있는데 이유는 hostcert_request.pem 는 단지 공개키이므로 이를
  SimpleCA 로 부터 인증받으면 hostcert.pem 가 인증된 파일이 된다
  hostcert_request.pem 는 아직 SimpleCA 로 부터 X.509 형태로 인증을 받지않은것이므로
  SimpleCA 에 보내어 인증을 받도록 하자
  SimpleCA 가 다른 호스트에 있다면 SimpleCA 관리자에게 메일등으로 hostcert_request.pem 를 보내어
  인증을 요청하지만 여기서는 같은 호스트에 GT3와 SimpleCA 가 설치되어 있으므로 바로 인증을 한다
    [root@myhome root]# cd /root/.globus/simpleCA/newcerts
    [root@myhome newcerts]# grid-ca-sign -in /etc/grid-security/hostcert_request.pem -out hostcert.pem
    Enter password for the CA key:<<<<비밀번호>>>>
    The new signed certificate is at: /root/.globus/simpleCA//newcerts/02.pem
  
  <<<<비밀번호>>>>는 SimpleCA 설치시 입력했던 비밀번호이다
  참고로 -in 은 hostcert_request.pem 를 -out 은 hostcert.pem 를 지정하는 옵션이다
  newcerts 디렉토리에 보면 hostcert.pem 가 생성된것을 보게되는데 이것이 hostcert_request.pem 를
  인증한 파일이다. SimpleCA 가 다른 호스트에 있었다면 SimpleCA 관리자는 이 파일을 메일등으로
  보내주면 되지만 여기서는 같은 호스트에 설치된 SimpleCA 로 인증한것이므로 그냥 복사해 준다
    [root@myhome newcerts]# cp hostcert.pem /etc/grid-security
    cp: overwrite `/etc/grid-security/hostcert.pem'? y

8.MMJFS 설치
  MMJFS(Master Managed Job Factory Service) 를 설치하기 위하여 globus 계정으로 바꾸고 GT3 압축을 푼
  디렉토리로 이동하여 /usr/local/gt3 에 설치한다
    [globus@myhome globus]$ cd /home/globus/gt3.0.2-linux-installer
    [globus@myhome gt3.0.2-linux-installer]$ ./install-gt3-mmjfs /usr/local/gt3
    Build environment:
    ant is hashed (/usr/local/apache-ant-1.5.3-1/bin/ant)
    java is /usr/java/j2sdk1.4.0_04/bin/java
    gcc is /usr/bin/gcc
    
    gpt-build ====> CHECKING BUILD DEPENDENCIES FOR globus_core
    SKIPPING REBUILD of gcc32dbg
    gpt-build ====> CHECKING BUILD DEPENDENCIES FOR grim
    gpt-build ====> Changing to /home/globus/gt3.0.2-linux-installer/BUILD/grim-src/
    gpt-build ====> BUILDING FLAVOR
    ...
    ...
    postDeploy:
       [delete] Deleting directory /usr/local/gt3/build/gar
         [copy] Copying 1 file to /usr/local/gt3

    BUILD SUCCESSFUL
    Total time: 8 seconds    
    
  MMJFS의 setuid를 설정하기 위하여 root 계정으로 GT3 설치디렉토리로 이동하여 setperms.sh 를 실행한다  
    [root@myhome root]# cd /usr/local/gt3
    [root@myhome gt3]# ./bin/setperms.sh  
  
9.실행 환경 설정
  GT3 에 작업을 요청할때 proxy 가 사용된다는것을 익히 알고 있을것이다
  grid-proxy-init 명령어로 proxy 를 초기화해 보자. 작업을 요청할 사용자 계정으로 실행한다
  (GT3 에 작업(job)을 요청하는 클라이언트로서의 사용자 계정 cozykyd 를 만들었었다)
  참고로 grid-proxy-init 은 기본 12시간동안 유효하므로 시간이 지나면 다시 grid-proxy-init 한다
    [cozykyd@myhome cozykyd]$ grid-proxy-init
    Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim
    Enter GRID pass phrase for this identity:<<<<비밀번호>>>>
    Creating proxy ....................................... Done
    Your proxy is valid until: Thu Nov 27 11:47:43 2003

  사용자 proxy 정보는 grid-proxy-info 로 확인한다
    [cozykyd@myhome cozykyd]$ grid-proxy-info
    subject  : /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim/CN=1031722236
    issuer   : /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim
    identity : /O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim
    type     : Proxy draft compliant impersonation proxy
    strength : 512 bits
    path     : /tmp/x509up_u500
    timeleft : 11:21:20

  GT3 에 작업(jon)을 요청할 수 있는 사용자 계정 정보를 명시적으로 GT3 에 알려주어야 하는데
  이는 grid-mapfile 이라는 파일을 생성하여 적어주면 된다
  사용자 계정의 grid-proxy-info 명령어로 나타나는 identity 부분의 내용을 복사하여 "" 사이에 넣고
  하나의 공백이나 탭키를 친 후에 계정이름을 처넣는다
    [root@myhome root]# vi /etc/grid-security/grid-mapfile
    "/O=Grid/OU=GlobusTest/OU=simpleCA-myhome.ssu.ac.kr/OU=ssu.ac.kr/CN=Young Dae Kim"     cozykyd
  
  참고로 GT3는 현재 grid-mapfile 에 대한 변화를 자동으로 알 수 없기 때문에, grid-mapfile 을 수정
  할 때마다 GT3 컨테이너를 다시 시작해야 한다.

  또한 grim-port-type.xml 파일도 생성하여 아래의 내용을 넣는다(cozykyd 부분은 사용자 계정)
    [root@myhome root]# vi /etc/grid-security/grim-port-type.xml
    <authorized_port_types>
      <port_type username="cozykyd">http://www.globus.org/namespaces/managed_job/managed_job/ManagedJobPortType</port_type>
    </authorized_port_types>
  
  GT3 컨테이너를 시작하기에 앞서 컨테이너가 사용하는 동적 라이브러리가 설정되어 있는지 확인한 후
  /usr/local/gt3/lib 를 끝에 추가한다
    [root@myhome root]# vi /etc/ld.so.conf
    /usr/lib
    /usr/kerberos/lib
    /usr/X11R6/lib
    /usr/lib/qt-3.0.3/lib
    /usr/lib/qt2/lib
    /usr/lib/sane
    /usr/local/gt3/lib    
  동적 라이브러리 환경이 변경되었으므로 이를 아래 명령어로 시스템에 반영한다
    [root@myhome root]# /sbin/ldconfig
    
10.GT3 컨테이너 실행하기
  GT3 컨테이너를 시작하기 위해서 다음과 같이 실행한다. GT3 컨테이너를 시작하면, 이용가능한
  서비스의 목록이 화면에 출력된다. globus 계정으로 바꾸고 GT3 설치 디렉토리로 이동하여
  다음과 같이 globus-start-container 명령어를 실행한다
    [globus@myhome globus]# cd /usr/local/gt3
    [globus@myhome gt3]# bin/globus-start-container -p 8080  
    [11/27/2003 00:56:29:960 ] org.globus.ogsa.server.ServiceContainer [run:569] INFO: Starting SOAP server at: http://192.168.0.100:8080/ogsa/services/
    With the following persistent services:

    http://192.168.0.100:8080/ogsa/services/core/admin/AdminService
    http://192.168.0.100:8080/ogsa/services/core/management/OgsiManagementService
    http://192.168.0.100:8080/ogsa/services/core/registry/ContainerRegistryService
    http://192.168.0.100:8080/ogsa/services/core/jmsadapter/JMSAdapterFactoryService
    http://192.168.0.100:8080/ogsa/services/core/logging/OgsiLoggingService
    http://192.168.0.100:8080/ogsa/services/core/notification/httpg/NotificationSubscriptionFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/registry/VORegistryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/secure/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/notification/JMSCounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/notification/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/encoded/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/persistent/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/basic/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/delegation/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/routable/MasterRedirectedCounter
    http://192.168.0.100:8080/ogsa/services/samples/counter/routable/LocalCounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/generate/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/deactivation/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/soap-secure/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/counter/logging/CounterFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/exception/ExceptionFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/notification/SinkListenerFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/complex/NestedArrayFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/complex/NestedFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/weather/WeatherFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/serialization/SerializationService
    http://192.168.0.100:8080/ogsa/services/samples/google/GoogleSearchFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/any/AnyFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/servicedata/ServiceDataService
    http://192.168.0.100:8080/ogsa/services/samples/array/ArraySampleFactoryService
    http://192.168.0.100:8080/ogsa/services/samples/chat/ChatFactoryService
    http://192.168.0.100:8080/ogsa/services/ogsi/NotificationSubscriptionFactoryService
    http://192.168.0.100:8080/ogsa/services/ogsi/HandleResolverService
    http://192.168.0.100:8080/ogsa/services/base/gram/ResourceInformationProviderService
    http://192.168.0.100:8080/ogsa/services/base/gram/ForkManagedJobFactoryService
    http://192.168.0.100:8080/ogsa/services/base/gram/MasterForkManagedJobFactoryService
    http://192.168.0.100:8080/ogsa/services/base/index/IndexService
    http://192.168.0.100:8080/ogsa/services/base/servicegroup/ServiceGroupFactory
    http://192.168.0.100:8080/ogsa/services/base/servicegroup/ServiceGroupService
    http://192.168.0.100:8080/ogsa/services/base/streaming/FileStreamFactoryFactoryService
    http://192.168.0.100:8080/ogsa/services/base/multirft/MultiFileRFTFactoryService
    http://192.168.0.100:8080/ogsa/services/gsi/AuthenticationService
    http://192.168.0.100:8080/ogsa/services/gsi/SecureNotificationSubscriptionFactoryService
    http://192.168.0.100:8080/ogsa/services/gsi/SecureNotificationSubscriptionFactoryService/hash-6471319-1069862187977  
  
11.작업(job) 제출하기
  클라이언트로서의 사용자가 proxy 를 통하여 GT3 컨테이너에 작업을 제출할 수 있는지 테스트 하기
  위하여 다음과 같이 사용자 계정으로 예제를 실행해 본다. 다음과 같은 형태로 나오면 정상이다.
    [cozykyd@myhome cozykyd]$ managed-job-globusrun -factory http://myhome.ssu.ac.kr:8080/ogsa/services/base/gram/MasterForkManagedJobFactoryService -file /usr/local/gt3/etc/test.xml
    WAITING FOR JOB TO FINISH
    ========== Status Notification ==========
    Job Status: Done
    =========================================
    DESTROYING SERVICE
    SERVICE DESTROYED
  





4   [GRID] [강좌] GridFTP 를 xinetd 서비스로 등록하여 사용하기  김영대 2003/12/02 6617 1773
3   [GRID] [강좌] Metadata Catalog Service (MCS) 설치  김영대 2003/11/29 6203 1542
2   [GRID] [강좌] Replica Location Service (RLS) 설치  김영대 2003/11/29 6138 1609
  [GRID] [강좌] Globus Toolkit 3.0.2 + SimpleCA 설치  김영대 2003/11/27 6450 1140

1
 

Copyright 1999-2017 Zeroboard / skin by zero