리눅스 서버 보안/안전한 웹 서버 구축

보안 서버 구축

seungwon9201 2024. 8. 2. 00:06

웹 서버를 운영할 때 기본적으로 HTTP 프로토콜을 사용하게 되면 네트워크 패킷 감청을 당할 수 있다. 그렇기 때문에 이에 대비해서 SSL/TLS(HTTPS)를 구축해서 통신 구간을 암호화 처리해야 한다.

 

HTTP는 정보를 암호화하지 않고 있는 그대로 보내는 평문 통신을 하기 때문에 패킷을 감청당하게 된다면 어떤 내용을 주고받는지 제삼자가 볼 수 있게 된다. 이것을 대비하기 위해서 SSL(Secure Socket Layer)를 HTTP에 적용한 HTTPS가 도입하게 되었다. 그래서 HTTPS는 암호화 통신을 하기 때문에 정보가 암호화가 되어 쉽게 감청하지 못한다는 장점이 있다. 

 

이번 실습에서는 웹 서버를 HTTPS를 적용해서 운영해 볼 것이다.

 

HTTPS를 웹 서버에 적용하는 방식은 두 가지가 있다.

  1. 사설 SSL/TLS 인증서를 생성해서 적용
    • 주로 내부망에서 개발할 때 주로 사용하고, 최신 웹 브라우저에서는 사실 인증서를 신뢰하지 않아 경고 메시지가 뜨지만 암호화는 정상적으로 적용돼서 통신한다.
  2. CA(Certificate Authority)에서 정식으로 SSL/TLS 인증서를 구매해서 적용
    • 인증서를 발급받으려면 서비스 도메인이 필요하고 인증서 구입을 위한 서류와 비용이 발생한다. 이러한 상황으로 인해 HTTPS를 적용하기 어려울 경우에 ISRG의 Let's Encrypt에서 제공하는 무료 인증서를 적용할 수 있다.

사설 SSL 인증서 발급과 적용

이제 내부망에서 개발 서버용으로 HTTPS를 적용을 하기 위한 실습을 해보자.

 

우선 SSL인증을 위한 라이브러리를 설치하자.

설치가 완료됐다면 인증서를 보관할 디렉터리를 생성하자.

이렇게 디렉터리까지 생성이 됐다면 개인키를 만들고 인증서 생성에 필요한 정보를 입력해야 한다.

개인키 생성

이제 발급받은 인증서 사인을 요청하자

국가,도시,구, 조직이름, 부서이름, 서버이름, 챌린지 암호, 회사이름을 입력하자.

이렇게 입력까지 끝냈다면 사설 인증서를 만들고 생성된 파일까지 확인해 보자.

인증서 파일까지 확인이 완료됐으니 이젠 웹 서버에 SSL 모듈을 활성화하고 웹 서버 설정 파일에 인증서를 설정하자.

SSL 모둘 활성화

이제 vi /etc/apache2/sites-available/default-ssl.conf 명령어를 실행해서 인증서 설정을 완료하면 된다. 

내용 추가

이렇게 했다면 모든 설정은 끝났다!

 

이제 웹 서버를 다시 활성화해서 실행만 해주면 끝이다.

사이트 활성화
웹 서버 다시 시작, HTTPS용 443 포트 방화벽 설정, 방화벽 정책 다시 읽기

자, 이제 모든 것이 끝났다. 한번 실습서버에 접속해 보자.

실습 서버에 접속을 했더니 맨 위에서 썼던 것처럼 사설 SSL 인증서라서 웹 브라우저에서 경고가 발생한다.

Advanced를 눌러서 허용을 클릭하면

이렇게 실습서버에 HTTPS가 정상적으로 설정이 되고 실행까지 된 것을 확인할 수 있다.

 

공인 SSL 인증서 발급은 실습을 위한 도메인이 있어야 하는데 현재 보유하고 있는 도메인이 없기 때문에 생략하겠다.

 

 

 

 

'리눅스 서버 보안 > 안전한 웹 서버 구축' 카테고리의 다른 글

Apache ModSecurity  (0) 2024.08.01
아파치 보안 설정  (0) 2024.07.28
Directory listing  (0) 2024.07.28