이번에 포스팅할 내용은 웹 인증서를 인증해주는 기관인 Root CA와 하위 CA 서버를 하나 두고 웹서버를 가동한다.
Root CA가 인증한 인증서를 기반으로 안전한 웹 서버라는 것을 인증한다.
물론 GNS3상에서 하는 것이라 Root CA와 하위 CA도 내가 만들고 내가 서명하고 혼자 다한다.
이번 실습을 통해 CA와 웹 서버, 인증서에 대해 이해해보도록 하자.
실습 환경이다. GNS3로 사용자pc와 RootCA서버, CA서버, 웹서버를 간단히 연결한다.
사용자pc는 win7, RootCA와 CA는 winserver2012 , 웹서버는 centos6.5를 사용한다.
WebServer
먼저 웹서버이다. 웹서버를 열기 위해서는 필요요소를 다운로드 해야하는데 Centos를 깐 CD안에 기본적으로 찾을 수 있어서 네트워크를 따로 연결하지 않아도 다운로드가 가능하다.
머신-설정-저장소 로 들어가서 시디를 넣어주자 (Virtual BOX 기준)
루트 폴더로 가자.
mkdir abc 로 abc 폴더를 하나 생성하자.
리눅스에서 cd를 사용하려면 마운트를 해줘야 한다.
mount /dev/cdrom /media/abc 는 cdrom에 있는 것을 media/abc로 마운트를 해주는 명령어이다.
후에 인증서를 교환할때 ftp 서버를 이용해야 할 일이 있으므로 미리 다운받아 놓자.
rpm -ivh vsftpd-[tap][tap]
탭을 이용하면 자동완성이 가능하다.
그다음 이제 웹서버를 php로 돌리기위해서 php를 다운하자
rpm -ivh php-5.3.3[tap][tap]
그러면 아래와 같이 의존성 에러가 뜬다.
의존성 에러는 쉽게 이것을 설치하기 위해 미리 선행으로 설치되어야 하는 파일을 의미한다.
php-cli을 다운받아 보자.
rpm -ivh php-cli-5.3[tap][tap]
을 하였더니 아래에 또 의존성에러로 php-common을 다운받으라고 한다.
php-common을 다운받자.
rpm -ivh php-common-5.3.3[tap][tap]
다운로드가 완료되면 다시 php-cli을 다운받자.
rpm -ivh php-cli-5.3[tap][tap]
모두 다운이 끝나면 이제 다시 rpm -ivh php-5.3.3[tap][tap] 을 하여서 php를 다운받자.
다운이 끝나면
service httpd start 로 서버를 시작하자.
chkconfig httpd on 으로 매번 서버를 킬때 자동으로 서비스가 실행되게 한다.
service iptables off 로 방화벽을 꺼준다.
chkconfig iptables off 로 서버를 킬때 자동으로 방화벽이 꺼지게 한다.
setenforce 0 으로 모두 접근 가능하게 바꿔주자.
그다음 cd /var/www/html로 들어가자.
들어가서 vi index.html 명령어를 입력하여 다음과같이 간단한 html파일을 만들어보자.
사용자 pc로 가서 웹서버인
http://113.80.10.200 에 접속을하면 방금 만든 html이 열린것을 확인 할 수 있다.
웹서버가 정상 가동되는 것을 확인했다.
이제 다음은 내가만든 Root CA에서 안전한 사이트라는 것을 인증하기 위한 인증기관을 만들어보자.
RootCA
먼저 제어판 -시스템 및 보안- 시스템 에 가서
설정변경을 클릭한다.
변경 버튼을 클릭하여 컴퓨터의 이름을 바꿔주자.
RootCA로 이름을 바꾸고 확인을 눌러주자.
서버관리자를 들어가서 역할 및 기능 추가
버튼을 누르자.
여기서 새로운 서버역할을 추가할 수 있다. 다음을 눌러주자.
음~ 다음
다음~
서버 역할에서
Activer Directory Certificate Services 를 체크하여 구성 추가 해주자.
다음을 눌러주자. 넘어간다.
다음을 눌러주자~
Certification Authority Web Enrollment 를 체크해주고 다음을 눌러주자.
이것은 인증을 웹으로 할 수 있는 기능이다.
다음을 누르다보면 설치를 할 것이다. 설치가 끝이나면 아무것도! 만지지 말길!
설치가 끝난 화면이다.
네모 친 '대상 서버에서 Active Directory 인증서 서비스 구성' 을 클릭해주자
다음을 누른다.
인증 기관 / 인증 기간 웹 등록 을 체크하고 다음을 눌러주자.
독립 CA를 체크하고 다음을 눌른다.
Root CA이므로 루트CA에 체크하고 다음을 눌러주자.
새 개인 키 만들기를 체크하고 다음을 누른다.
암호화 옵션을 지정하는 화면인데 그냥 기본인 SHA256 방식 / 키길이 2048로 하자.
사실 뭘해도 상관 없다. SHA뒤에 숫자와 키길이가 늘어날수록 암호를 뚫기 더 어려운 인증서가 된다.
CA의 이름을 정해주는 화면이다. 다음을 눌러주자.
인증서를 한번 받고 몇 년간 사용 가능하게 할지 결정하는 화면이다.
기본 5년으로 하고 다음을 누른다.
인증서 위치를 설정한다.
C\Windows\system32\CertLog 에 생기는 것을 알아두자.
다음을 누른다. 그러면 이제 인증서가 완료된다.
다음은 하위 CA로 가보자.
CA
Root CA와 설치 과정은 똑같다. 다만 CA종류를 하위 CA로 해주자.
다음을 눌러주고 설치를 마친다.
이제 인터넷익스플로러를 키고
http://113.80.10.100/certsrv 로 접속하자.
(처음에 위험한 사이트라고 경고를 보여주고 허용하라는 메세지가 뜨면
허용을 해주면 된다.)
이것은 RootCA에서 아까 선택한 인증서 웹등록 서비스에 접속하는 것이다.
다음과 같은 화면이 나온다. Request a certificate를 클릭하자.
-위 화면이 접속안되는 이유는 여러 가지가 있다.
1.RootCA서버에 방화벽이 켜져있다.
2.CA서버에 방화벽이 켜져있다.
3.만약 Virtual BOX에서 RootCA를 복사해서 사용한 경우 MAC주소가 겹쳐서 통신이 안될 수가 있다.
1,2번에 경우 방화벽을 꺼주도록 하고
3번에 경우에는 CA나 ROOTCA중 하나를 종료하고 VirtualBOX에서 맥주소를 다시 설정해주자.
맨 아래에 advanced certificate request를 클릭한다.
맨아래에 base-64-encoded를 사용한 CMC or PKCS ~~ 를 클릭해주자.
그럼 왼쪽과 같은 화면이 뜬다. 처음에 CA에 인증서 서버를 추가했을 때 생성되는 파일이 있는데,
컴퓨터-C드라이브 안에 들어가면 오른쪽과 같은 .req 가 생성된 것을 볼 수 있다.
이것을 오른쪽 클릭-연결프로그램-워드패드 로 열어주자.
암호화된 내용이 보인다. 이것을 통째로 긁어서 왼쪽에 TextArea에 넣어주자.
그리고 Submit 을 클릭한다.
위와 같은 화면이 나오고 인증서 요청을 보냈다. 이제 RootCA로 가서 인증서를 발급해주어야 한다.
RootCA
서버관리자에서 왼쪽 탭 -AD CS를 클릭한다.
ROOTCA를 오른쪽 클릭하여 Certification Authority를 클릭한다.
왼쪽 탭에서 보류 중인 요청에 들어가면 방금 보낸 요청을 볼 수 있다.
오른쪽 클릭하여 발급을 클릭한다.
CA
다시 CA로 돌아와서 RootCA의 certsrv로 다시 들어가서 (웹으로 접속)
View the status of a pending certificate request를 클릭한다.
그러면 요청이 허가된 것을 확인할 수 있다. 클릭한다.
인증서를 다운받을 수 있고, 인증서 체인을 받을 수 있다.
인증서 체인을 다운받자
Download certificate chain 클릭
CA의 서버관리자-AD CS탭에 들어가면 CA가 시작이 안된 것을 볼 수 있다.
오른쪽 클릭하여 서비스 시작을 한다.
그러면 인증서를 달라고 하는데 아까 다운받은 인증서 체인을 넣어준다.
다음과 같이 오류가 발생하는데 당황하지말고 확인을 눌러준다.
윈도우키 +R을 누르고 CMD를 입력하여 도스창을 키자.
다음과 같은 명령어를 입력하자.
certutil –setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE
입력하면 이제 오류창이 뜨지 않게 설정이 된 것이다. (안되면 오타, 띄어쓰기,대문자 확인)
다시 들어가서 인증서를 넣어주면 다음과 같은 화면이다.
확인을 눌러주면 초록불이 들어온다.
이제 RootCA의 하위CA로 등록이 된 것이다.
다음 포스팅은 이제 웹서버에서 인증서를 만들어 다음과 같이 RootCA에게 발급받고
인증서가 있는 웹 서버로 만들어 보도록 하겠다.
'네트워크<구축,해킹,보안> > GNS3' 카테고리의 다른 글
[GNS3]Sophos 방화벽 구축 (1) - interface, NAT (0) | 2018.03.22 |
---|---|
[GNS3] CA(인증기관)과 WebServer의 SSL보안통신 이해하기-(2)인증서 발급,FTP (0) | 2018.03.12 |
SSL Strip을 실습해보자. (5) | 2018.02.24 |
[GNS3]Beast2.07을 이용하여 VM을 해킹해보자! (2) -분석 (0) | 2018.02.02 |
[GNS3]Beast2.07을 이용하여 VM을 해킹해보자! (1) -무작정 실습 (4) | 2018.02.01 |