[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합보안 과정
클라우드기반 시스템 운영 구축 실무 #05
학습 내용
1) 3-Tier 웹 시스템 구조
2) Proxy Server
3) HTTP 메시지 구조
실습 사전 준비
- '03.시스템 네트워크 보안'에서 사용한 Kali, Metasploitable 가상머신
- 각각 192.168.10.50 / 192.168.10.60으로 세팅한다
[Kali]
Network Connections > Wired connection 1 > IPv4 Settings
Method: Manual
Address: 192.168.10.50 / Netmask: 24 / Gateway: 192.168.10.2
[Metasploitable]
sudo su -
msfadmin
cd /etc/network
ls
nano interfaces
192.168.10.20 ➞ 192.168.10.60 으로 수정
# 서버 내렸다 올리기
ifdown eth0
ifup eth0
ifconfig
1) 3-Tier 웹 시스템 구조
❶ 웹 서버 (Web Server/Front Server)
• 가장 앞에서 HTTP request를 받아 HTTP response를 보내는 서버
• Apache, IIS, Nginx 등의 미들웨어가 동작한다
❷ 웹 애플리케이션 서버 (WAS, Web Application Server)
• 웹 서버와 연동하여 사용자 컴퓨터나 장치에 웹 애플리케이션을 실행할 수 있는 환경 제공
• 사용자 요청에 따라 다른, 동적 환경을 구성한다
• 업무 처리 서버 (결제, 주문 등을 수행하는 프로그램 실행환경)
• Apache Tomcat, WebSphere Application 미들웨어로 구현
• PHP나 Perl 실행환경 필요 시 mod_perl 또는 mod_php 등을 설치
❸ 데이터베이스 서버 (DB Server)
• 애플리케이션 실행 시 생성되는 데이터를 관리하는 미들웨어
• MySQL, PostgresSQL, Oracle Database
❶ ❷ ❸ DB(get) 질의 조건
http://www.google.co.kr:80/sport/guest.php?who=anony&type=human
(1) URL (2) 요청 URI
[프로토콜]://[host주소(or IP)]:[Port번호]/[경로or파일]?[파라미터=값]
- URL(Uniform Resource Locator)
- URI(Uniform Resource Name)
: 둘 다 전체 주소를 나타내기도 한다.
2) Proxy Server
: 서버와 클라이언트 간의 요청과 응답을 중계하는 역할을 수행하는 서버(프로그램)
❶ 보안 목적
- 클라이언트 또는 서버의 실제 IP를 숨긴다 (Forward Proxy / Reverse Proxy)
* 접근 차단된 사이트 우회 접속 가능
* 프록시 서버의 IP만 공개함으로써 해킹 대비 가능
❷ 성능 목적
- 캐싱 기능과 트래픽 분산으로 성능 향상을 가져올 수 있다
* 캐싱 기능 : 자주 사용되는 동일한 요청을 캐싱하여 재활용하는 방식
* 트래픽 분산: 일부 프록시 서버는 로드 밴런싱도 제공,
여러 대의 서버가 있다면 서버의 트래픽을 분산시킨다
- 실제 서버를 호출하지 않고 프록시 서버가 대신 응답을 주어 서버의 자원 사용을 줄인다
❸ HTTP 메시지 구조 파악 목적
- burpsuite
❶ 보안 목적
• Forward Proxy
① Client의 안전을 보장
- Client는 Proxy 서버를 통해 서비스 제공 서버를 호출하므로
- 서비스 제공 서버는 Client의 IP 주소를 알 수 없다.
② 접근 차단된 사이트에 우회 접속
- 국가/지역별 사용하는 IP가 다르다.
- 차단된 A 국가 IP로 접속하려면,
그 사이트로 접근이 허가된 B 국가의 Proxy 서버를 통해 우회 접속할 수 있다.
- 응답이 B 국가로부터 오니 방화벽이 차단하지 않는다.
• Reverse Proxy
: 내부 서버의 안전을 보장
- Client는 Proxy 서버를 호출해 서비스 제공 서버에 접속하므로
- Client는 서비스 제공 서버의 IP 주소를 알 수 없다.
❷ 성능 목적
• HTTP Proxy가 없는 경우 작업 지연 발생
• HTTP Proxy가 있는 경우 작업 지연이 적음
❸ HTTP 메시지 구조 파악 목적
(실습) 가상머신에서 proxy로 웹 구조 파악하기
[Kali]
시작메뉴 > 03. > burpsuite > Proxy > Options
• Proxy Listeners 설정
- Specific address: 192.168.10.50
- bind to port: 8080
• Intercept Client Requests / Intercept Server Responses 설정
[Metasploitable] - Client
① 프록시 사용 설정
Firefox > 메뉴 > Settings > Network Settings
• Manual proxy configuration
- 192.168.10.50 / port: 8080
② http://192.168.10.60 접속
[Kali]
burpsuite에 기록이 남는 것 확인 - http 패킷 내용을 모두 볼 수 있다
3) HTTP 메시지 구조
❶ HTTP Protocol
❷ HTTP 메시지
❸ HTTP Reqest Method
❹ HTTP Response 코드
❶ HTTP Protocol
• WWW 상에서 HTML 문서를 주고받는 응용 계층 프로토콜
• 클라이언트와 서버 사이에 이뤄지는 요청(request) / 응답 (response) 프로토콜
• TCP 계열로 80번 포트 사용
• 웹에서 텍스트, 그래픽, 애니메이션을 보거나 사운드 재생 기능
• 무상태(stateless) 프로토콜
- 클라이언트 상태를 보존하지 않으며
- 이전 요청과 무관하게 각각의 요청을 독립적인 트랜잭션으로 취급한다
• 현재 인터넷에서 사용되는 HTTP 버전은 HTTP/1.0, HTTP/1.1, HTTP/2.0
- 1997년 1월에 공개된 HTTP/1.1 버전이 현재 가장 많이 사용된다
웹 문서 전송 시 전송 속도가 텍스트는 빠르고, 이미지는 느리다.
따라서 서버는 텍스트를 먼저 전송하고, 그 다음 이미지를 전송하게 된다.
이 때 HTTP 1.1은 텍스트/이미지에 대한 연결을 따로 설정하지 않고 연속해서 전송한다.
❷ HTTP 메시지
① Request 메시지 : Client ➞ Server 요청
② Response 메시지: Server ➞ Client 응답
HTTP Request | HTTP Response | ||||||
요청 라인 | 전송 함수 | 요청 URL | HTTP 버전 | 상태 라인 | HTTP 버전 | 응답 코드 | 처리 상태 |
GET | / | HTTP/1.1 | HTTP/1.1 | 200 | OK | ||
요청 헤더 | Client PC 웹 브라우저 정보, 시스템 정보 | 응답 헤더 | 응답 서버의 정보 | ||||
공백 라인 | 공백 라인 | ||||||
메시지 본문 | 전송함수에 따라 있거나 없음 GET: X, POST: O |
메시지 본문 | 응답 코드에 따라 웹페이지 또는 정보 |
① HTTP Request 메시지
요청 헤더: Client PC 웹 브라우저 정보, 시스템 정보
Accept | MIME-type으로 Client가 이해할 수 있는 Content-Type을 나타낸다 | ||||
Accept-Encoding | Client가 이해할 수 있는 컨텐츠 인코딩을 나타낸다 | ||||
Cookie | 이전 상태가 있는 경우, 서버가 클라이언트의 상태를 기억하게 해준다 | ||||
Host | 요청 전송 대상 서버의 호스트 이름 (+포트 번호)을 지정한다 | ||||
Connection | 네트워크 연결 관리에 대한 지시 (keep-alive: 연결 유지) | ||||
Accept-Language | Client가 이해할 수 있는 언어를 나타낸다 | ||||
User-Agent | 브라우저나 기타 클라이언트의 소프트웨어 정보 |
* MIME-type (Multipurpose Internet Mail Extensions)
구조: [type] / [subtype]
ex) text/html, text/css, text/javascript, text/plain, image/jpeg
application/zip, application/x-dosexec(실행파일)
multipart/form-data(브라우저에서 서버로 완성된 HTML Form을 전송 시)
② HTTP Response 메시지
❸ HTTP Reqest Method
❹ HTTP Response 코드
'SK shieldus Rookies > 클라우드 기반 시스템 운영ㆍ구축 실무' 카테고리의 다른 글
SIEM - Splunk 실습(Splunk Enterprise) & 검색 명령어 (미완) (0) | 2024.01.10 |
---|---|
[SK shieldus Rookies 16기] Zeek 환경 구성 (0) | 2024.01.09 |
[SK shieldus Rookies 16기] HTTPS 구성 실습 (0) | 2024.01.08 |
[SK shieldus Rookies 16기] 대칭키/비대칭키 암호화, 공개 키 기반 구조(PKI) (0) | 2024.01.05 |
Rsyslog 환경 구성 및 실습 (미완) (0) | 2024.01.05 |