2014.06.11. 10:27
RHEL 6 (or CentOS 6) 서버에서 gpg 암호화를 위한 방법이다.
1. rng-tools 패키지 설치
$ yum install -y rng-tools
* rng는 Random Number Generator의 약자이다. |
2. rngd 관련 옵션 설정
랜덤 값을 생성해 줄 urandom device를 이용한다.
/dev/random 로 지정하면 gpg 키가 생성되지 않으니 urandom으로 지정할 것.
$ vim /etc/sysconfig/rngd |
3. rngd 데몬 시작
$ /etc/init.d/rngd start
4. gpg-agent 실행
실행하면 /root/.gnupg/S.gpg-agent 파일이 생성된다.
$ /usr/bin/gpg-agent --daemon --use-standard-socket
--> gpg-agent 데몬을 죽이려면 kill -9 PID 하고 rm -f /root/.gnupg/S.gpg-agent
5. gpg 파일 생성하기
$ gpg --gen-key |
* GnuPG에 관련된 자세한 사용법은 아래 사이트를 참조할 것. |
6. 평문 파일 생성
$ echo "ipmi-admin-password" > /root/password-plain
7. User ID의 공개키를 이용해서 평문 파일을 gpg 암호화 파일로 변환하여 생성.
password-plain.gpg 파일이 생성된다.
$ gpg -e -r testuser /root/password-plain
-> -o 옵션과 파일명을 주면 원하는 파일명으로 생성. -o 옵션을 안주면 password-palin.gpg 파일명으로 생성.
* 만약 공개키를 파일로 export 하고 싶다면 아래처럼 한다. |
8. gpg 파일 퍼미션 조정
$ chmod 600 /root/password-plain.gpg
9. 평문 파일은 삭제
$ rm -f /root/password-plain
10. 스크립트 파일 생성
$ echo "gpg --quiet -d /root/password-plain.gpg" > decrypt-password
11. 스크립트 파일 내용 확인
$ cat decrypt-password
gpg --quiet -d /root/password-plain.gpg
12. root만 실행할 수 있도록 퍼미션 조정
$ chmod 700 /root/decrypt-password
13. decrypt-password를 실행한다.(최초 실행시 비밀키(개인키)값 redhat123 을 입력해 줘야 한다.)
실행하면 ipmi-admin-password 문장이 나온다. 자신의 공개키로 암호화 된 문서를 자신의 비밀키(개인키)로 복호화 하여 문서의 내용을 보는 것이다.
decrypt-password 스크립트의 -d 옵션이 decrypt 이다.
$ bash /root/decrypt-password
비밀키 redhat123 입력
문서내용 ipmi-admin-password 이 출력된다. 즉, fence 장치의 비번이다.
14. cluster.conf 파일에 반영
passwd_script="/root/decrypt-password"