본문 바로가기

Rookies 9기/클라우드 취약점 진단 및 대응 실무

취약점 진단 및 대응 실무 3일차

728x90

도커 컨테이너

•도커 설치 및 사용법

sudo apt install docker.io
sudo docker search nginx

Search 명령을 사용해 도커 허브에 있는 이미지를 찾을 수 있다.

sudo docker pull nginx

pull 명령어로 도커 허브에 있는 저장소에서 이미지를 다운 받는다.

sudo docker images

설치된 이미지를 확인은 명령어이다.

sudo docker run -itd -p 8888:80 --name=webapp nginx

run명령어(Create + Start)로 nginx 이미지 파일을 실행시켜 준다.

sudo docker ps

현재 실행 중인 파일은 ps 명령어로 확인할 수 있다.

localhost:8888

nginx가 잘 실행이 되는 걸 볼 수 있다.

nginx 페이지 수정
페이지 수정하기
sudo docker cp index.html webapp:/usr/share/nginx/html/index.html
페이지 수정 후

 

 

•도커 컨테이너 로그들 확인

도커 컨테이너 로그들은 /var/lib/docker/containers 에 쌓인다.

cat 명령어로 로그들을 볼 수 있다.

 

 

•Nikto

Web Server 스캐닝

 잠재적 위협이 될만한 요소들을 파악

nikto

-h 명령어로 Web 스캐닝할 URL 주소를 적어준다.

 

 

•도커 컨테이너 실행

도커 생성하기

똑같은 이름의 도커 컨테이너가 있으면 생성이 되지 않는다.

nginx

 

 

• 도커 diff 명령어 

sudo docker diff webapp

diff 명령어는 컨테이너에서 변경된 항목을 보여준다.(비교 기준은 컨테이너를 실행한 docker image의 내용)

 

 

•도커 레지스트리에 올리기

이미지 생성
태그 설정
도커 허브 ID/PW 가 있어야 한다.
push 명령어로 도커 허브 레지스터에 이미지를 올린다.
도거 허브

도커 허브 페이지로 들어가면 이미지가 올라온 걸 볼 수가 있다.

도커 허브에있는 내 이미지를 가져와 생성

 

 

•도커 컨테이너 로그 관리 

sudo mkdir ngnix_log

로그를 쉽게 관리하기 위해 폴더 하나를 만들어준다.

sudo docker run -idt -p 8080:80 -v /home/kali/nginx_log:/var/log/nginx nginx1.19

 /var/log/nginx 에 생성될 로그를 /home/kali/nginx_log 안으로 저장시켜준다. 

로그 확인
sudo docker inspect [도커컨테이너ID or image]

도커 이미지 또는 컨테이너의 세부 정보를 확인할 수 있다.

 

 

•도커 컨테이너 관리

폴더 생성

/usr/share/nginx/html에 생성될 html를 /home/kali/nginx_web안으로 저장한 후 nginx_web에서 관리할 수 있다.

index.html 생성
index.html 파일이 실행됨

 

• 실행 중인 컨테이너에 명령어 실행 방법

exec 명령어

• Docker 네트워크 사용법

sudo docker network ls

현재 생성되어 있는 DOcker 네트워크 목록을 조회할 수 있다.

sudo docker network create

새로운 Docker 네트워크를 생성할 수 있다.

 

2개의 172.x.x.x 대역을 받았다.

web-net01 네트워크의 대역을 사용한다.

insepect 를 사용해 세부내용 확인
172.18.0.1 대역의 네트워크를 사용했다.

네트워크를 지정해서 만들 수도 있다.

 

 

Docker 로드 밸런서

80 포트가 사용되어 있을 수 있기 때문에 apache2 서버를 중지시켜준다.

sudo apt install nginx
sudo service nginx start
동작 확인

관리해 줄 폴더 생성

5001, 5002, 5003 이렇게 3개의 포트를 만들어 web01, web02, web03 폴더에 하나씩 저장해준다.

현재 실행중인 파일 확인
index.html 수정 하기
web page1 의 index.html
web page2 의 index.html
web page3 의 index.html
nginx.conf

nginx.conf 에서 web01, web02, web03 폴더에 있는 nginx에 봐라 볼 수 있게 수정을 해준다.

nginx.conf 수정

http 부분 빼고 모든 내용은 주석 처리해준다.(access.log, erroe.log 도 빼준다.)

nginx 재시작

새로 고침 해줄 때마다 페이지가 바뀐다.

가중치 설정 방법