Openssl 업그레이드 하기.

Coumputer's/Linux 2010. 12. 9. 19:40

openssl을 업그레이드 하기 위해서는 먼저 최신버전의 openssl을 다운받는다.
필자는 openssl-0.9.8b에서 openssl-0.9.8p버전으로 업그레이드 하였으며 oepnssl소스는
http://www.openssl.org에서 받을 수 있다. 
(다이렉트 링크 : http://www.openssl.org/source/openssl-0.9.8p.tar.gz)

1. compile하기.
  다운받은 source를 압축해제하여 config명령어를 사용하여 Makefile을 만든다.
 필자는 oepnssl을 설치하는 것이 목적이 아니라 prefix나 openssldir옵션은 주지 않았으며
 업그레이드 하기 위해서는 shared 라이브러리가 생성되어야 함으로 shared옵션만 주었다.
 # ./config shared
 # make
 make명령어를 치면 current디렉토리에 library파일들이 생성이 되며 ./apps 디렉토리에는 
 openssl파일이 생성된다.

2. 설치하기
 libcrypto 설치하기
 먼저 새로 생성한 libcrypto파일을 /lib 디렉토리에 copy한다.
  # cp libcrypto.so.0.9.8 /lib/libcrypto.so.0.9.8p
 기존 0.9.8b 버전에 걸려 잇는 symbolic link를 지워주고 새로 link를 생성한다.
  # rm -rf libcrypto.so.6
  # ln -s libcrypto.so.0.9.8p libcrypto.so.6
  # ls -al
lrwxrwxrwx 1 root root 19 Dec 8 13:10 /lib/libcrypto.so.0.9.8 -> libcrypto.so.0.9.8p -rwxr-xr-x 1 root root 1241576 Oct 16 2007 /lib/libcrypto.so.0.9.8b -rwxr-xr-x 1 root root 1530219 Dec 8 13:09 /lib/libcrypto.so.0.9.8p lrwxrwxrwx 1 root root 19 Dec 8 13:09 /lib/libcrypto.so.6 -> libcrypto.so.0.9.8p

 추가로 /usr/lib디렉토리에도 libcrypto.a와 libcrypto.so파일을 생성해 준다.
  # cp {openssl소스 디렉토리}/libcrypto.a /usr/lib
  # cd /usr/lib
  # ln -s ../../lib/libcrypto.so.0.9.8p libcrypto.so.6
  # ls -al libcrypto*
    -rw-r--r-- 1 root root 2425450 Dec  8 16:11 /usr/lib/libcrypto.a
    lrwxrwxrwx 1 root root      29 Dec  8 16:12 /usr/lib/libcrypto.so -> ../../lib/libcrypto.so.0.9.8p

 libssl 설치는 libcrypto 설치의 /lib디렉토리와 같은 방식으로 설치하면 된다.
  # cp libssl.so.0.9.8 /lib/libssl.so.0.9.8p
  # rm -rf libssl.so.6
  # ln -s libssl.so.0.9.8p libssl.so.6
  # ls -al
    - rwxr-xr-x 1 root root 279336 Oct 16  2007 /lib/libssl.so.0.9.8b
    -rwxr-xr-x 1 root root 322722 Dec  8 13:11 /lib/libssl.so.0.9.8p
    lrwxrwxrwx 1 root root     16 Dec  8 13:12 /lib/libssl.so.6 -> libssl.so.0.9.8p

3. openssl바이너리와 openssl 헤더파일 바꿔주기.
 마지막으로 openssl바이너리와 openssl 헤더파일을 기존 파일에서 대체하면 된다.
 헤더파일을 바꾸어주는 것은 추후에 있을 ssl라이브러리를 사용하는 openssh와 같은 프로그램을 
 소스 설치시 필요하기 때문에 바꾸어 준다.^^
 which openssl로 찾아서 바꾸어주면 된다.  기본적으로 /usr/bin 디렉토리 밑에 openssl파일이 있다.
 헤더파일은 /usr/include/oepnssl/ 디렉토리를 통째로 바꾸어주면 된다.
  # cp ./apps/openssl /usr/bin
  cp: overwrite `/usr/bin/openssl'? y
  # rm -rf /usr/include/openssl
  # cp -rf ./include/openssl /usr/include

Grub 복구하기.

Coumputer's/Linux 2010. 12. 9. 19:35

주로 Acronics를 사용하여 Linux이미지를 생성하고 복원하는 작업을 할 많이 하게 되는데.
이전에 만든 이미지나.. H/W가 변경됨에 따라서 이미지를 복원하여 재생성 하는 작업을 많이 하게 된다.
문제는 가끔씩 Grub 부트로더를 읽다가 멈추는 경우가 있다.
까만화면에 "GRUB" 글짜만 보이고 더이상 부팅을 진행안할 경우 grub을 다시 install해주면 된다.

1. Linux설치 시디로 부팅하여 Rescue모드로 들어간다.
필자는 Redhat 9 이미지로 복원을 한 후 위와 같은 현상이 발생하였으며, 
Fedora 8 CD로 Rescue모드 부팅하여 grub을 재 인스톨하였다.

2. chroot를 이용하여 HDD의 파티션으로 이동한다.
 Rescue모드로 들어오면서 화면에 HDD파티션으로 이동하기 위해서 chroot명령어를 이용하라고
안내가 나오게 된다. 그대로 입력하면 shell prompt가 바뀌면서 HDD의 / 파티션으로 이동된다.
필자는 "chroot /mnt/sysimage/"를 통해서 HDD 파티션으로 이동하였다.

3. /sbin/grub-install /dev/sda를 이용하여 MBR에 grub을 install한다.
  필자는 문제가 발생하여 /sbin/grub-install --recheck /dev/sda를 이용하여 grub을 install하였다.

위와 같은 방법으로 필자는 Grub를 MBR에 인식시키는데 성공하였다.

추가로 /sbin/grub를 통해서 grub prompt에서 작업하는 내용도 있지만, 필자는 위 작업이 
더 쉽게 사용할 수 있을 듯하여 위 내용만 적었음을 알립니다.^^