반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

비구름

41. SSL(Linux) 본문

공부

41. SSL(Linux)

비구름 2022. 4. 7. 11:20
반응형

목차

1. SSL이란?

2. 개인키, 공개키 생성

3. SSL 실습

1. SSL이란?

- 전송하는 데이터 암호화

- 종단간 신뢰성 확보(공인인증서 : 신뢰성 확보 가능, 사설인증서 : 신뢰성 확보 불가능)

- 제3자 공인인증기관 (KISA 6개의 중간인증기관)

 

1.1. 대칭키 암호화

- 암호화 키와 복호화 키가 같음

- 키가 유출되면 원본 훔쳐보기 가능 -> 원본 위조(데이터 조작) 위험

- 키 관리의 문제점이 발생함

 

1.2. 공개키 암호화(RSA)

- 암호화 키와 복호화 키가 다름(복호화 : 개인키, 암호화 : 공개키)

- 공개키로 암호화된 것을 개인키로 풀 수 있지만 반대로는 불가능

1.3. 전자서명의 구조

(1) 데이터를 해쉬값으로 만듦

(2) 개인키로 해쉬값을 암호화

(3) 암호화 키로 데이터를 암호화

(4) 암호화된 데이터를 공개키로 풀어볼 수는 없으나 해쉬값을 비교

- md5sum : 해쉬값을 통해 원본파일과 동일한 파일인지 확인하는 목적으로 쓰이는 명령어

2. 개인키, 공개키 생성

2.1. 실제 PC에서 ssh-keyent 명령어를 통해 공개키와 개인키를 생성합니다. 

-m : 포맷을 설정

-f : 키 파일의 이름 지정

-b : 비트 수 지정

-N : 암호 문구 지정

키 생성
생성된 키 확인

2.2. CentOS7-1에 공개키와 개인키를 복사 할 /root/.ssh 디렉터리를 생성 후 복사합니다.

디렉터리 생성
개인키, 공개키 복사

2.3. /etc/ssh/sshd_config/ 파일의 설정을 변경합니다.

root 계정 접근 허용
패스워드 로그인 불가능
sshd 재시작하여 설정 적용
실제 PC에서 개인키를 사용하여 CentOS7-1로 접속 확인

2.4. id_rsa의 접근 권한을 수정합니다.

공개키는 authorized_keys, 개인키는 id_rsa로 지정

2.5. 공개키를 CentOS7-2, CentOS7-3으로 복사합니다.

authorized_keys 복사
CentOS7-2,  CentOS7-3 ssh 설정
CentOS7-1에서CentOS7-2,  CentOS7-3로 접속 확인
실제 PC에서 CentOS7-2,  CentOS7-3로 접속 확인

3. SSL 실습

3.1. SSL 인증서 생성

3.1.1. yum 명령어로 openssl 패키지를 설치합니다.

3.1.2. 개인키를 생성합니다.

ca.key로 이름 설정, 2048 비트
개인키 생성 확인

3.1.3. 개인키로 인증요청서를 생성합니다.

ca.csr로 이름 설정
인증요청서 작성

3.1.4. 개인키와 인증요청서로 인증서 생성합니다.

인증서 이름 ca.crt로 지정

3.1.5. 개인키와 인증서를 옮깁니다.

개인키와 인증서 위치 변경(정해진 위치)
개인키와 인증서를 CentOS7-2, CentOS7-3으로 복사

3.2. FTP(SSL) 실습

3.2.1. WinPcap와 Wireshark를 설치합니다.

- WinPcap : 패킷 라이브러리 프로그램

- Wireshark : 패킷 분석 프로그램

WindPcap 먼저 설치
Wireshark 설치
WinPcap을 설치 했으므로 Npcap는 설치하지 않음

3.2.2. Wireshark 실행 후 패킷 분석을 시작합니다.

이더넷 카드를 더블 클릭하여 패킷 분석 시작

3.2.3. FTP 패킷 분석을 위해 FileZilla에서 1.PNG 파일을 다운로드합니다.

1.PNG 다운로드

3.2.4. Wireshark의 패킷 분석을 정지하고 파일 형식을 pcap으로 변경하여 저장합니다.

3.2.5. ftp로 검색 후 패킷을 확인합니다.

아무 패킷이나 확인
SSL이 적용되어 있지 않아서 FTP 통신 내용을 확인 가능

3.2.6. Hexedit을 설치합니다.

- 파일을 분석하여 Hex 값을 보여주는 프로그램(Hex : 내용이 16 진수인 상태)

3.2.7. 데이터를 원시 데이터로 바꾸어 저장합니다.

Raw : 원시 데이터로 변경

3.2.8. Hexedit로 저장한 파일을 16진수 값으로 변환합니다.

원시코드로 작성된 파일을 16진수로 보여줌
파일을 다시 저장
원본 파일과 똑같은 파일이 생성됨

3.2.9. vi 편집기로 /etc/vsftpd/vsftpd.conf 파일의 설저 파일을 수정합니다.

ssl 사용을 위해 추가

3.2.10. /etc/vsftpd/vsftpd.conf 파일을 설정 후 FileZilla로 재접속하여 인증서 화면을 확인합니다.(사설 인증서이므로 알 수 없는 인증서로 표기)

3.2.11. ssl이 적용되었는지 확인하기 위해서 11.png 파일을 다운로드합니다.

3.2.12. Wireshark에서 패킷을 확인하여 ssl이 적용된 것을 확인합니다.

3.3. WEB(SSL) 실습

3.3.1. mod_ssl 패키지를 설치합니다.

3.3.2. /etc/httpd/conf.d/ssl.conf 파일을 수정합니다.

DocumentRoot 디렉터리 지정
인증서 파일, 개인키 파일 경로 지정

3.3.3. 방화벽을 설정 후 적용시킵니다.

443번 포트 : https

3.3.4. https를 붙여 도메인에 접속합니다.

Root 인증서로 사이트를 확인할 수 없어서 출력되는 화면
안전하지 않음으로 접속 가능

3.3.5. Wireshark를 통해 패킷에 ssl이 적용된 것을 확인합니다.

양 쪽 IP Address로 패킷 검색
https 패킷이 암호화되어 있는 것을 확인

반응형

'공부' 카테고리의 다른 글

43. NAVER CLOUD 서버 구축  (0) 2022.04.11
42. SSL(Windows)  (0) 2022.04.11
40. Windows Server 설정(2)  (0) 2022.04.05
39. Windows Server 설정(1)  (0) 2022.04.03
38. Windows Server(FTP, WEB, DNS)  (0) 2022.04.03
Comments