본문 바로가기

IT's Life/Linux

Linux RPM 패키지 확인 및 디지털 인증서 (디지털 서명)


rpm -qa 명령을 실행하면  Linux 시스템에 많은 수의 RPM 패키지가 설치되어 있으며 각 패키지에는 많은 수의 설치 파일이 포함되어 있습니다. 따라서 실수로 파일을 삭제하거나 파일 데이터를 잘못 수정하거나 파일 내용을 악의적으로 조작하는 등의 문제를 감지 할 수 있도록 Linux는 다음 두 가지 모니터링 (감지) 방법을 제공합니다.

  • RPM 패키지 확인 : 실제로 설치된 파일을 / var / lib / rpm / 디렉토리에있는 데이터베이스의 내용과 비교하여 파일의 내용이 수정되었는지 확인합니다.
  • RPM 패킷 디지털 인증서 확인 : RPM 패키지 자체가 수정되었는지 확인하는 데 사용됩니다.

리눅스 RPM 패키지 검증

RPM 패키지 확인을 사용하여 설치된 소프트웨어 패키지 (또는 파일)가 수정되었는지 확인할 수 있으며, 이러한 방식으로 사용할 수있는 명령 형식은 다음 세 가지 유형으로 나뉩니다.

[root @ localhost ~] # rpm -Va

-Va 옵션은 시스템에 설치된 모든 패키지가 확인되었음을 나타냅니다.

[root @ localhost ~] # rpm -V 설치된 패키지 이름

-V 옵션은 지정된 RPM 패키지의 파일이 확인되었으며 첫 번째 문자임을 나타냅니다.

[root @ localhost ~] # rpm -Vf 시스템 파일 이름

-Vf 옵션은 시스템 파일이 수정되었는지 여부를 나타냅니다. 


예를 들어, 아파치 패키지의 모든 설치 파일이 수정되었는지 확인하면 다음 명령을 실행할 수 있습니다.

[root @ localhost-] # rpm -V httpd

보시다시피, 실행 후 아파치 패키지와 함께 설치된 모든 파일이 변경되지 않았으며 원본 패키지에서 설치된 파일과 동일하다는 메시지가 표시되지 않습니다. 

그런 다음 아파치 구성 파일 /etc/httpd/conf/httpd.conf를 적절히 수정하십시오. 형식은 다음과 같습니다.

[root @ localhost ~] #vim /etc/httpd/conf/httpd.conf 

... 일부 내용을 생략합니다 ... 

Directorylndex index.html index.html.var index.php #이 

문장은 아파치를 정의하는 기본값입니다 웹 페이지 파일의 이름입니다. 뒷면에 index.php 추가 #이 

문장에는 약 400 줄이 있습니다 

... 일부 내용을 생략하십시오 ...


아파치를 구성하는 방법을 배웠으므로 충돌을 방지하기 위해 아파치의 기본 웹 페이지 파일을 수정하려고합니다. 위 형식에 따라 파일을 수정 한 후 저장하고 종료 한 다음  rpm -V 명령을 사용하여 아파치 패키지를 확인하십시오.

[root @ localhost ~] # rpm -V httpd 

S.5 .... T. c /etc/httpd/conf/httpd.conf

보다시피 결과는 파일이 수정 된 정보를 보여줍니다. 이 정보는 다음 세 부분으로 나눌 수 있습니다.

1. 처음 8 자 (S.5 .... T)는 검증 정보에 속하며 각 문자의 구체적인 의미는 다음과 같습니다.

  • S : 파일 크기가 변경되었는지 여부
  • M : 파일 형식 또는 파일 권한 (rwx)이 변경되었는지 여부
  • 5 : 파일 MD5 체크섬 변경 여부 (파일 내용 변경 여부로 볼 수 있음)
  • D : 장치의 마스터 / 슬레이브 코드가 변경되었는지 여부
  • L : 파일 경로가 변경되었는지 여부
  • U : 파일의 소유자 (소유자)가 변경되었는지 여부
  • G : 파일 그룹이 변경되었는지 여부.
  • T : 파일의 수정 시간이 변경되었는지 여부
  • . : 관련 항목이 변경되지 않은 경우으로 표시됩니다.

2. 수정되는 파일 형식은 크게 다음 범주로 나눌 수 있습니다.

  • c : 구성 파일.
  • d : 일반 문서.
  • g : "고스트 파일", 파일이이 RPM 패키지에 포함되어서는 안됩니다.
  • l : 라이센스 파일.
  • r : 설명 파일 (읽어보기)

3. 수정중인 파일의 절대 경로 (파일 이름 포함).


따라서 S.5 .... T.c S.5 .... T.c /etc/httpd/conf/httpd.conf의 완전한 의미는 다음과 같습니다. 구성 파일 httpd.conf의 크기, 내용 및 수정 시간은 인위적으로 수정되었습니다.

파일에 대한 모든 수정 사항이 악의적 인 것은 아닙니다. 일반적으로 구성 파일을 수정하는 것이 일반적입니다 (예 : 아파치를 구성하는 경우 구성 파일을 수정해야 함) 검증 정보가 이진 파일을 수정하라는 메시지를 표시하는 경우 의도적으로 수정하지 않는 한주의해야합니다.


Linux RPM 디지털 인증서 확인

RPM 패키지 확인 방법은 설치된 RPM 패키지와 해당 설치 파일을 확인하는 데만 사용할 수 있으며, RPM 패키지 자체가 수동적 인 경우이 방법으로 문제를 해결할 수 없으므로 RPM 디지털 인증서 확인 방법을 사용해야합니다.

이해하기 위해 RPM 패키지 확인은 실제로 RPM 패키지를 처음 설치할 때 기존 설치 파일과 초기 파일을 비교하므로 변경 사항이 있으면 사용자에게 메시지를 표시하므로 RPM 패키지 자체가 수정되었는지 확인할 수 없습니다.

디지털 서명 이라고도하는 디지털 인증서 는 소프트웨어 개발자가 직접 게시합니다. Linux 시스템에 디지털 인증서를 설치 한 후 RPM 패키지를 수정하면 패키지에 포함 된 디지털 인증서도 변경되며 시스템과 시스템이 일치하지 않으므로 소프트웨어를 설치할 수 없습니다. 


디지털 인증서를 모방 할 수없는 고유 한 서명 (제조업체의 디지털 인증서가 고유함)으로 상상할 수 있으며 승인 한 파일 만 서명됩니다 (제조업체에서 출시 한 소프트웨어가 디지털 인증서 확인을 준수하는 한). 파일이 수정 된 후 서명이 달라집니다 (소프트웨어가 변경되면 디지털 인증서가 변경되어 확인이 통과되지 않습니다. 물론 실제 사람의 서명은 직접 변경되지 않으므로 디지털 인증서가 매뉴얼보다 더 수동적 임) 서명은 신뢰할 수 있어야합니다). 

디지털 인증서를 사용하여 RPM 패키지를 확인하는 방법은 다음 두 가지 특징이 있습니다.

설치하기 전에 원본 공개 키 파일을 찾아야합니다.

RPM 패키지를 설치하면 RPM 패키지에서 인증서 정보를 추출한 다음 출하시 설치된 공장 인증서로이를 확인합니다. 확인이 통과되면 설치가 허용되고 확인이 실패하면 설치가 허용되지 않고 경고가 발행됩니다.


디지털 인증서는 기본적으로 시스템 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6에 있으며 다음 명령으로 확인할 수 있습니다.

# 의 숫자 증서 위치

[root @ localhost ~] # ll / etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6 

-rw-r--r-. 1 루트 루트 1706 6 월 26 일 17:29 / etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6


디지털 인증서를 설치하는 명령은 다음과 같습니다.

[root @ localhost ~] # rpm --import / efc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-6 

--import는 수입 디지털 인증서를 의미합니다


디지털 인증서가 설치된 후 다음 명령을 사용하여 확인할 수 있습니다.

[root @ localhost ~] # rpm -qa | grep gpg-pubkey 

gpg-pubkey-c105b9de-4e0fd3a3


보다시피, 디지털 인증서가 성공적으로 설치되었습니다. 디지털 인증서가있는 시스템에 RPM 패키지를 설치하면 시스템이 자동으로 패키지의 디지털 인증서를 확인하고, 확인에 성공하면 설치 될 수 있으며, 그렇지 않으면 설치되지 않습니다 (시스템에 오류가보고 됨). 

디지털 인증서 자체도 RPM 패키지이므로 rpm 명령을 사용하여 디지털 인증서의 세부 정보를 쿼리하거나 제거 할 수 있습니다. 디지털 인증서 세부 사항을 조회하는 명령은 다음과 같습니다.

[root @ localhost ~] # rpm -qi gpg-pubkey-c105b9de-4e0fd3a3 # 

디지털 인증서 패키지 의 세부 정보 쿼리 

이름 : gpg-pubkey 

재배치 : ( 

이동할 수 없음) 버전 : c105b9de 공급 업체 : (없음) 

릴리스 : 4e0fd3a3 빌드 날짜 : 

2012 년 11 월 12 일 월요일 2:05:20 설치 날짜 : 2012 년 11 월 12 일 월요일 2:05:20 빌드 호스트 : 로컬 호스트 

그룹 : 공개 키 

소스 RPM : (없음) 

크기 : 0 

라이센스 : pubkey 

... 일부 출력 생략 ... 

----- END PGP PUBLIC KEY BLOCK ----


디지털 인증서를 설치 제거하려면 다음 명령과 함께 -e 옵션을 사용하십시오.

[root @ localhost ~] # rpm -e gpg-pubkey-c105b9de-4ead3a3

디지털 인증서는 수동으로 제거 할 수 있지만 제거하지 않는 것이 좋습니다.