'MD5'에 해당되는 글 2건
- 2011.08.07 [Chap4 #07] - 파일 무결성 검증(md5sum, sha1sum)
- 2011.08.06 [Chap2 #06] - debsums를 사용하여 설치된 패키지 검증
♧ 소프트웨어 패키지나 CD 또는 DVD 이미지와 같은 파일을 인터넷을 통해 공유 하고자 할 때,
SHA1SUM 또는 MD5SUM 파일이 함께 배포되는 경우가 많다.
이러한 파일은 다운로드 받은 파일이 원본 파일과 정확히 동일한 파일인지 확인하는데
사용되는 파일로써, 체크섬(checksum) 정보가 포함되어 있다.
MD5 (128 비트) 체크섬을 확인
SHA1 (160 비트) 체크섬을 확인
md5sum [ OPTION ]... [ FILE ]... sha1sum [ OPTION ]... [ FILE ]... |
[ 옵션 ]
-b, --binary |
바이너리 모드로 읽기 |
-c, --check |
파일에 (md5, sha1) 합계를 읽고 체크. |
-t, --text |
텍스트 모드로 읽기 (기본값) |
체크섬을 검증 하는 경우의 옵션 |
|
--quiet |
체크섬 검증이 성공한 메시지는 출력 안함 |
▶ md5sum, sha1sum 명령어를 사용해 파일의 체크섬을 생성.
$ touch devanix $ md5sum devanix d41d8cd98f00b204e9800998ecf8427e devanix $ sha1sum devanix da39a3ee5e6b4b0d3255bfef95601890afd80709 devanix |
☞ 파일의 유효성을 검증하기 위해 md5sum 또는 sha1sum 정보 중 무엇을 선택할지는 전적으로 배포자의 결정.
▶ Xubuntu 11.04 (Natty Narwhal) 배포판 사이트에서 MD5SUMS 파일 검증.
/* Xubuntu 11.04(Natty Narwhal) 다운 */ $ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso --2011-08-07 18:57:05-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso Resolving cdimage.ubuntu.com... 91.189.92.164 접속 cdimage.ubuntu.com|91.189.92.164|:80... 접속됨. HTTP request sent, awaiting response... 200 OK Length: 722745344 (689M) [application/x-iso9660-image] Saving to: `xubuntu-11.04-desktop-i386.iso'
100%[==========================================>] 722,745,344 6.70M/s in 2m 51s 2011-08-07 18:59:57 (4.03 MB/s) - `xubuntu-11.04-desktop-i386.iso' saved [722745344/722745344]
/* 해당 사이트 MD5SUMS 파일 다운 */ $ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS --2011-08-07 19:03:00-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS Resolving cdimage.ubuntu.com... 91.189.92.174 접속 cdimage.ubuntu.com|91.189.92.174|:80... 접속됨. HTTP request sent, awaiting response... 200 OK Length: 266 [text/plain] Saving to: `MD5SUMS'
100%[==========================================>] 266 --.-K/s in 0s 2011-08-07 19:03:01 (5.88 MB/s) - `MD5SUMS' saved [266/266]
/* 체크섬 파일(MD5SUMS) 내용 보기 */ $ cat MD5SUMS ab4b5b18892afd8d4d3228fbc30061d9 *xubuntu-11.04-alternate-amd64.iso d5b6d8595c44e9954ebc4f188cb9fb49 *xubuntu-11.04-alternate-i386.iso f1b224166bea923042e53b0e9d5ff63f *xubuntu-11.04-desktop-amd64.iso 78719bfee11576729a62b4a241d40b19 *xubuntu-11.04-desktop-i386.iso
/* MD5SUMS 파일에 기록되어 있는 모든 파일을 한 번에 검증 */ $ md5sum -c MD5SUMS md5sum: xubuntu-11.04-alternate-amd64.iso: 그런 파일이나 디렉터리가 없습니다 xubuntu-11.04-alternate-amd64.iso: 열기 또는 읽기 실패 md5sum: xubuntu-11.04-alternate-i386.iso: 그런 파일이나 디렉터리가 없습니다 xubuntu-11.04-alternate-i386.iso: 열기 또는 읽기 실패 md5sum: xubuntu-11.04-desktop-amd64.iso: 그런 파일이나 디렉터리가 없습니다 xubuntu-11.04-desktop-amd64.iso: 열기 또는 읽기 실패 xubuntu-11.04-desktop-i386.iso: 성공 md5sum: 경고: 3 중 4 개의 파일들을 읽을 수 없었음
/* 체크섬 파일에 있는 파일 목록 중 하나만을 검증 */ $ cat MD5SUMS | grep *desktop-i386* | md5sum -c xubuntu-11.04-desktop-i386.iso: 성공 |
☞ MD5SUMS 파일 대신 SHA1SUMS 파일을 가지고 있더라도, sha1sum 명령어와 동일
[ /etc 디렉토리의 모든 파일에 대한 체크섬 생성 & 검증 ] |
||
♧ find 명령어와 md5sum 명령어를 함께 사용한다면 파일시스템의 어떠한 부분이라도 검증할 수 있다.
① /etc 디렉토리의 모든 파일에 대한 md5 체크섬 생성
☞ 128비트 체크섬이 기록된 /tmp/md5.list 파일 생성.
② 시간이 지난 뒤, 이들 중 어떤 것이 변경 되었는지 확인
☞ 결과에서 볼 수 있듯이, 하나의 파일(hosts.allow)만 변경 되었다. ☞ 필요 하다면 다음 단계로 변경된 파일을 조사하여 의도적인 것인지 살펴본다. |
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap7 #02] - (1) 하드디스크 파티션 나누기(fdisk, sfdisk, parted) (0) | 2011.08.08 |
---|---|
[Chap7 #01] - 파일시스템 기초 이해 (0) | 2011.08.07 |
[Chap4 #05] - 확장 파일시스템의 파일 속성 변경(lsattr, chattr) (1) | 2011.08.07 |
[Chap4 #04] - 파일 복사하기(cp, dd) (0) | 2011.08.07 |
[Chap4 #03] - 파일시스템 살펴보기 (cd, pwd, pushd, popd) (0) | 2011.08.07 |
♧ 시스템에 설치되어 있지만 정상적으로 동작하지 않거나 실행조차 되지 않는
바이너리 파일이나 패키지를 만나는 경우. 불안정한 네트워크나 전력 환경 등의
여러 가지 원인으로 인해 패키지가 훼손될 수 있다.
또는 악의적인 의도로 조작한 버전으로 피해를 입힐 목적으로 교체하려고 노력할 때
패키지 속에 포함된 정보와 실제 파일시스템에 존재하는 파일들을 검사해볼 필요가 있다.
debsums 프로그램은 /var/lib/dpkg/info 디렉토리에 있는 md5sum 파일을 바탕으로
모든 설치된 패키지의 MD5 검사를 수행할 수 잇는 데비안 기반의 시스템 유틸리티이다.
▷ 설치 : $ sudo aptitude install debsums
▶ debsums의 일반적 옵션
debsums 명령 |
내 용 |
debsums -a |
모든 파일들을 검사한다(기본적인 설정파일들을 포함) |
debsums -e |
패키지 설정 파일들만 검사. |
debsums -c |
변경된 파일 목록만 표준출력을 통해 보여준다. |
debsums -l |
md5sum 정보를 가지고 있지 않은 파일들을 보여준다. |
debsums -s |
에러가 발생한 목록만 보여준다. |
debsums <package names> |
주어진 패키지에 대한 검사를 수행. |
▷ 별다른 옵션 없이 debsums 명령어만 실행할 경우. (시스템에 있는 모든 파일 검사)
$ debsums /usr/bin/acpi /usr/share/man/man1/acpi.1.gz /usr/share/doc/acpi/AUTHORS …[중략]… debsums: no md5sums for bsdutils debsums: no md5sums for bzip2 debsums: no md5sums for cdrecord …[중략]… /usr/share/locale-langpack/en_AU/LC_MESSAGES/adduser.mo /usr/share/locale-langpack/en_AU/LC_MESSAGES/alsa-utils.mo …[중략]… |
OK OK OK
REPLACED OK |
☞ 성공하면 오른쪽에 OK 상태 표시.
md5sum 정보가 일치하지 않을 경우 : FAILED 상태 표시.
다른 패키지 파일에 대체 되었을 경우: REPLACE 상태 표시.
▷ -a옵션 : 각각의 패키지에서 배포한 설정파일이 변경되었는지 여부 검사
$ debsums -a /usr/bin/acpi /usr/share/man/man1/acpi.1.gz /usr/share/doc/acpi/AUTHORS …[중략]… |
OK OK OK |
▷ -e옵션 : 다른 것은 모두 무시하고 오직 설정파일만 검사
$ debsums -e …[중략]… /etc/X11/Xresources/x11-common /etc/X11/Xsession /etc/X11/rgb.txt …[중략]… |
OK FAILED OK |
☞ 의도하지 않았거나 부주의하게 수정된 설정파일은 없는지 검사할 수 있는 좋은 방법.
▷ -c옵션 : 시스템에서 변경된 파일만 표준 출력을 통해 보여줌
$ debsums -c debsums: no md5sums for at debsums: no md5sums for base-files debsums: no md5sums for bc …[중략]… |
☞ 위의 명령 실행결과에서 파일들에 대한 md5sum 정보가 없다는 것을 알 수 있다.
▷ -l옵션 : md5sum 정보가 없는 파일 목록을 확인
$ debsums -l binutils e2fslibs g++ gcc-4.5-base …[중략]… |
▷ -s옵션 : 에러가 발생할 경우에만 출력
$ debsums -s debsums: no md5sums for at debsums: no md5sums for base-files debsums: no md5sums for bc …[중략]… |
☞ 에러가 발생하지 않는다면 별다른 출력 없이 조용히 실행.
▷ 해당 패키지에 한해서 검사
$ debsums coreutils /bin/cat /bin/chgrp /bin/chmod …[중략]… |
OK OK OK |
☞ 해당 패키지가 가진 md5sum 파일에 기술된 파일 목록에 대해서만 검사를 수행.
이 파일은 /var/lib/dpkg/info 디렉토리에서 찾을 수 있다.
☞ 만약 패키지가 md5sum 파일을 가지고 있지 않다면 에러 발생.
$ debsums binutils debsums: no md5sums for binutils |
[ binutils 패키지에서 누락된 md5sum 데이터들을 생성&체크 ] |
||||||
① md5sum 데이터들을 생성(dpkg, md5sum과 약간의 쉘 프로그래밍 조합 활용)
☞ 추후 md5sum 검사가 필요할 때에 md5sum -c 옵션과 해당 데이터베이스 파일명을 지정.
② debsums에서 binutils.md5sums 파일을 사용하기 위해서는 문제가 발생할 수 있는 부분 즉, 아래와 같이 '/' 문자로 시작되는 파일명부분을, sed를 이용하여 삭제 할 수 있다.
☞ sed를 사용하여 문제가 되는 '/' 부분을 제거후 확인.
이렇게 적절히 수정된 파일을 /var/lib/dpkg/info 디렉토리에 복사해주면, debsums 명령어를 사용하게 됨.
|
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap3 #01] - 리눅스 가상 콘솔(터미널) 사용 (0) | 2011.08.06 |
---|---|
[Chap2 #07] - deb 패키지 만들기 (0) | 2011.08.06 |
[Chap2 #05] - aptitude를 사용하여 Software 관리 (0) | 2011.08.05 |
[Chap2 #04] - dpkg를 사용하여 Software 관리 (0) | 2011.08.05 |
[Chap2 #03] - APT 사용하여 Software 관리 (0) | 2011.08.04 |