![]() |
LINUX |
ソースファイルのチェック
*CentOS 5.5の場合です
*md5、sha1、sha256、gpgなどで署名されたファイルの改竄チェックをします
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
RPMパッケージのチェック:RPM-GPG-KEYのインストール(例)
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
:RPM-GPG-KEYのインストールの確認
# rpm -qa |grep gpg-pubkey gpg-pubkey-e8562897-459f07a4
:RPM-GPG-KEYのアンインストール(例)
# rpm -e gpg-pubkey-e8562897-459f07a4
:rpmパッケージのチェック
$ rpm --checksig -v acpid-1.0.4-9.el5_4.2.i386.rpm
acpid-1.0.4-9.el5_4.2.i386.rpm:
Header V3 DSA signature: OK, key ID e8562897
Header SHA1 digest: OK (5be067b1bccb07336cf9e2ddcb19fac8ce75eae8)
MD5 digest: OK (0a61005ea0c5197f88fe5d6a95c67d40)
V3 DSA signature: OK, key ID e8562897
md5sumのチェックインターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
md5sumが利用できる場合はオリジナルファイルと一致するか確認する事ができます。
例
httpd-2.2.16.tar.bz2 httpd-2.2.16.tar.bz2.md5
[sola@venus sola]$ cat httpd-2.2.16.tar.bz2.md5 c8ff2a07c884300bc7766a2e7f662d33 *httpd-2.2.16.tar.bz2
*md5sumのチェック
[soloa@venus sola]$ md5sum --check httpd-2.2.16.tar.bz2.md5 httpd-2.2.16.tar.bz2: OK
*または
[soloa@venus sola]$ openssl md5 httpd-2.2.16.tar.bz2 MD5(httpd-2.2.16.tar.bz2)= c8ff2a07c884300bc7766a2e7f662d33
sha1sumのチェックインターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
sha1sumが利用できる場合はオリジナルファイルと一致するか確認する事ができます。
例
openssl-0.9.8o.tar.gz.sha1 openssl-0.9.8o.tar.gz
*sha1sumのチェック
[sola@venus sola]$ cat openssl-0.9.8o.tar.gz.sha1 80c73afc7dca790cd26936cb392a4dfd14d4e4d7 [sola@venus sola]$ sha1sum openssl-0.9.8o.tar.gz 80c73afc7dca790cd26936cb392a4dfd14d4e4d7 openssl-0.9.8o.tar.gz
*または
[soloa@venus sola]$ openssl sha1 openssl-0.9.8o.tar.gz SHA1(openssl-0.9.8o.tar.gz)= 80c73afc7dca790cd26936cb392a4dfd14d4e4d7
GnuPG(pgp)のチェックインターネットのダウンロードサイトからソースパッケージなどをダウンロードするときなど、
GnuPGが利用できる場合はオリジナルファイルと一致するか確認する事ができます。
例1
pgpkey2009.txt
*https://www.isc.org/about/openpgp から pgpkey2009.txt を右クリックして保存
bind-9.7.1-P2.tar.gz.asc
*ftp://ftp.isc.org/isc/bind9/9.7.1-P2/ から bind-9.7.1-P2.tar.gz.asc を右クリックして保存
bind-9.7.1-P2.tar.gz
*PGP公開鍵をGnuPGのkeyringにインポートします
[sola@venus sola]$ mkdir ~/.gnupg [sola@venus sola]$ gpg --import pgpkey2009.txt
*gpgチェック
[sola@venus sola]$ gpg --verify bind-9.7.1-P2.tar.gz.asc
gpg: Signature made Fri Jul 16 03:31:10 2010 JST using RSA key ID 0B7BAE00
gpg: Good signature from "Internet Systems Consortium, Inc. (Signing key, 2009)
<pgpkey2009@isc.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: FA76 7A86 A371 E359 22F6 A5C8 D811 B53F 0B7B AE00
*gpg: Good signatureの行があればOK
例2
openssh-5.5p1.tar.gz openssh-5.5p1.tar.gz.asc
*gpgチェック
[sola@venus sola]$ gpg openssh-5.5p1.tar.gz.asc
gpg: Signature made Fri Apr 16 09:17:18 2010 JST using DSA key ID 86FF9C48
gpg: Can't check signature: public key not found
*公開鍵のインストール
[sola@venus sola]$ gpg --keyserver wwwkeys.pgp.net --recv-keys 86FF9C48
*公開鍵の指紋のチェック・鍵の信用度の設定
*ここでは実験的に"5 = 絶対的に信用する"に設定しています
[sola@venus sola]$ gpg --fingerprint 86FF9C48
[sola@venus sola]$ gpg --edit-key 86FF9C48
Command> trust
1 = I don't know or won't say
2 = I do NOT trust
3 = I trust marginally
4 = I trust fully
5 = I trust ultimately
m = back to the main menu
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
Command> quit
*gpgチェック
[sola@venus sola]$ gpg --verify openssh-5.5p1.tar.gz.asc
gpg: Signature made Fri Apr 16 09:17:18 2010 JST using DSA key ID 86FF9C48
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "Damien Miller (Personal Key) <djm@mindrot.org>"
![]() |
Copyright(c) 528p.com All Rights Reserved. |

