본문 바로가기

* Twodragon/보안 강의 (Course)

클라우드 시큐리티 과정 2기 - 7주차 VM과 Container 개요

안녕하세요. Twodragon입니다. 

클라우드 시큐리티 과정 2기 강의를 시작하게 되었고, 게더 타운(Gather Town)에서 진행되는 일정을 소개 드리려고 합니다.

 

Docker

 

먼저 게더 타운 진행 스케줄은 총 2시간(20분 진행, 5분 휴식)으로 다음과 같습니다.

온라인 강의 특성 상 눈의 피로 또는 학생분들의 높은 집중력을 위해 20분씩 진행하고 5분 휴식을 취하고 있습니다. 


10:00 - 10:20 = 근황 토크 & 멘티끼리 서로 가르쳐 주기 (과제 요약하여 발표 // 과제 토론 1회, 주제 토론 1회) & 과제 피드백 

10:25 - 10:45 = VM vs Container vs Kubernetes 개요

10:50 - 11:10 = Docker Compose 개요 

11:15 - 11:35 = Docker와 Docker Compose 활용

11:40 - 12:00 = 8주차 과정 이해를 위한 필수적인 실습


1. 근황 토크 & 과제 피드백

- 근황 토크 & 과제 관련하여 서로 피드백

  Q1) 과제 내용 요약 발표 후 서로 가르쳐 주기

 

- 현재 클라우드 보안에서 이슈가 되고 있는 사항 (KRCERT 또는 기사를 통해 얻은 참고자료)

 * BIND DNS 서버의 서비스 거부 취약점 (CVE-2022-0667) : Internet Systems Consortium (ISC)는 BIND DNS에서 서비스 거부를 유발하는 취약점으로, 영향받는 버전의 사용자는 DoS 피해가 발생할 수 있으므로 최신 업데이트 필요

 * Drupal 제품 보안 취약점 (CVE-2022-24728) : Drupal의 CKEditor 라이브러리에서 입력값 검증이 미흡하여 발생하는 XSS 취약점으로 최신 업데이트 필요

  * 랩서스(LAPSUS$) 해킹 그룹에서 대기업 위주의 정보 공개하였으며, 엔비디아, 마이크로소프트, 삼성, LG전자 등 해킹해 임직원 계정 정보 탈취 및 각종 기밀 유출 : 마이크로소프트에서 랩서스 그룹의 해킹 방법을 공개하여 보안 권고

 

2. VM vs Container vs Kubernetes 개요

 1) Virtual Machine (VM)

- 호스트OS에 의해 VM을 가상화 시켜주는 하이퍼바이저(Virtual Box, Xen, KVM, VMware)를 사용하여 원하는 운영체제를 GuestOS에 올려 여러 VM을 만들 수 있음. GuestOS도 HostOS와 같이 하나의 OS를 독립적으로 사용가능

 

 2) Container

- VM과 HostOS 까지 설치는 동일하지만 OS에 의해 컨테이너를 가상화 시켜주는 여러가지 소프트웨어들(docker, rkt, LXC)이 있고, 도커를 가장 많이 사용함. 도커(Docker)가 컨테이너를 만들고 여러 컨테이너들간의 호스트 자원을 분리해서 사용할 수 있게 함
- 리눅스 고유기술인 커널에 관련된 영역을 분리(namespace에서 mnt, pid, net, ipc, uts, user)와 자원에 대한 영역을 분리(cgroup에서 memory, CPU, I/O, network) 를 사용하여 격리하는 것

- 컨테이너 이해 : 초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기 (subicura.com)

 

초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기

초보를 위한 도커 안내서 2번째 글입니다. 도커의 기본적인 내용을 이야기 했던 첫번째 글에 이어 실제로 도커를 설치하고 컨테이너를 실행하면서 도커 명령어를 알아봅니다. 도커를 처음 접하

subicura.com

3) Kubernetes

- 쿠버네티스는 여러 컨테이너들을 한 Pod(파드)라는 개념으로 묶을 수 있고, 파드 내에 컨테이너는 하나 또는 다수로 표현됨. 내가 필요한 파드만큼 확장 가능하며, 컨테이너는 시스템을 모듈별로 쪼개서 개발할 수 있고, Microservices 운영에 장점이 있음

 

https://daaa0555.tistory.com/464

 

VM(가상머신) 과 Container(컨테이너)의 차이

# VM vs Container # VM 공통적으로 하나의 서버가 있고 한서버에는 어떤 운영 체제가 있건 HostOS (맥 OS, 리눅스, 마이크로소프트 윈도우) 가 올라간다. VM의 경우 호스트OS에 의해 VM을 가상화 시켜주는

daaa0555.tistory.com

- 쿠버네티스 개념 : 쿠버네티스 시작하기 - Kubernetes란 무엇인가? (subicura.com)

 

쿠버네티스 시작하기 - Kubernetes란 무엇인가?

쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다. 1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기

subicura.com

 

Q2) VM과 Container, Kubernetes 사용 사례

 

3. Docker Compose 개요

- 여러 개의 컨테이너로부터 이루어진 서비스를 구축 및 실행하는 순서를 자동화하여 통합 관리하는 기능

- Docker Compose 실행단계

 1) 각각의 컨테이너의 Dockerfile 작성 (기존에 있는 이미지를 사용하는 경우는 불필요)
 2) docker-compose.yml를 작성하고, 각각 독립된 컨테이너의 실행 정의를 실시 (경우에 따라는 구축 정의도 포함)
 3) "docker-compose up" 커맨드를 실행하여 docker-compose.yml으로 정의한 컨테이너 사용

 

Docker Compose 문법 : https://darrengwon.tistory.com/793

 

docker compose와 간단한 compose 문법

🐳 docker compose 설치 linux의 경우 docker compose를 별도로 설치해줘야 한다. https://docs.docker.com/compose/install/ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-..

darrengwon.tistory.com

 

4. Docker와 Docker Compose 활용

- AWS에서 Docker 실행 : https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/docker-basics.html

 

Amazon ECS용 Docker 기본 사항 - Amazon Elastic Container Service

Amazon ECS용 Docker 기본 사항 Docker는 사용자가 Linux 컨테이너를 기반으로 하는 분산 애플리케이션을 구축, 실행, 테스트 및 배포할 수 있는 도구를 제공합니다. Amazon ECS는 태스크 정의에 Docker 이미

docs.aws.amazon.com

- 컨테이너와 네트워크 구조 파악하고 Docker 기반 Nginx 실행 

#Docker Network, Container, Volume 구조 파악
docker network ls
docker container ls
docker volume ls

#Docker Volume 생성
docker volume create nginx_01
docker volume create nginx_02

#nginx 구조
- 웹 로그
- 시스템 로그 (/var/log)
- 저장소 (volumes)

#Docker 기반 Nginx 실행
docker run -it -p 8080:80 -d --name=nginx_01 -v nginx_01:/var/log/nginx nginx:latest 
docker run -it -p 8081:80 -d --name=nginx_02 -v nginx_02:/var/log/nginx nginx:latest

#Docker 정보
docker inspect nginx_01
docker inspect nginx_02

#Docker container 내부 접속을 위한 bash 실행
docker exec -it nginx_01 /bin/bash
docker exec -it nginx_02 /bin/bash

#ifconfig 설치
apt-get update -y
apt install net-tools
ifconfig

- Docker-Compose를 이용하여 ELK Stack 시작하기
- ELK 구조 이해를 위한 설명 : https://velog.io/@hanblueblue/Elastic-Search-1

- 컨테이너 보안 : https://infosec.adtcaps.co.kr/happyFile/liveFile/eqstinsight-file/2019_%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%EB%B3%B4%EC%95%88%EA%B0%80%EC%9D%B4%EB%93%9C%EB%9D%BC%EC%9D%B8_Docker%26amp%3BKubernetes_fv.pdf?fileName=20190621080345E90N.pdf&boardSeq=927 

 

 

5. 8주차 과정 이해를 위한 필수적인 실습

- Docker Swarm 구성 및 모니터링 : https://yena-diary.tistory.com/6

- Minikube 데모 : 튜토리얼 | Kubernetes

- Docker Swarm 툴 활용 : https://dockerswarm.rocks/portainer/