- IPv4 주소 배분 및 연결
- IP주소는 네트워크와 호스트로 구분 {네트워크 부분은 Lastname(성), 호스트 부분은 Firstname(이름)}
Q. 어디까지 네트워크일까?
A. Subnet Mask에서 1에 해당하는 IP주소 부분이 네트워크 부분
- VPC에 적용
클라우드에 할당된 자유롭게 구성할 수 있는 나만의 공간
/16 이상 만들 수 없음
10.10.0.0/16
172.16.0.0/16 → 호스트를 2¹⁶ = 65536 (실제 65000개 정도 사용 가능)
172.16.10.0/24 → 호스트를 2⁸ = 256 (실제 250개 정도 사용 가능)
10.0.0.0/8 → 생성 불가능
- IP 주소의 범위
ex) 1921.168.100.0/24 → 네트워크 주소가 24bit로 호스트 부분 8bit
- IP 주소는 전체가 8bit로 32bit이다
- 호스트 부분이 8bit = 2⁸ = 256 (0~255)
- 0 : Network 주소에 할당, 255는 Broadcast 주소, 실제 호스트 할당 가능 주소는 1~254
- 1~254 중 Gateway, AWS에서 모니터링하는 주소 등 제외하고 약 250개 정도 실제 EC2에 할당 가능
* VPC 10.10.0.0/16
- 사용가능한 호스트 부분이 16bit (65536)
- 65536 안에 256이 256개 들어감 (=16bit 안 8bit가 256개 들어감)
첫 번째 서브넷 : 10.10.0.0/24
두 번째 서브넷 : 10.10.1.0/24
세 번째 서브넷 : 10.10.2.0/24
...
마지막 서브넷 : 10.10.255.0/24
→ 256개
→ 10.10은 VPC에 할당된 부분으로 10.10으로 시작하지 않을 시 다른 VPC가 됨
→ 세 번째 옥텟 부분 0~255까지 모두 256 = 서브넷의 주소부분이 됨
→ 네 번째 옥텟 부분은 호스트 부분 (0:Network, 255:Broadcast라서 호스트 할당 불가, GW, ASW monitoring : 1~254까지 할당
※ 8bit = 1byte (=Octet)
- NAT
① 공유기 통해 나갈 때
- IP 헤더의 출발지 IP에 써있는 사설 IP를(다른 장부에 기록하고) 지운 후 공인 IP로 바꿔 써넣음
- 인터넷으로 나가서 목적지를 찾아감, 목적지에서는 회신을 줄 때, 출발지는 자신의 IP, 목적지는 바꿔 넣은 공인 IP를 사용해 패킷 생성
② 공유기 통해 들어올 때
- IP 헤더의 목적지 IP에 써있는 공인 IP를 (장부 참고) 사설 IP로 변경
- 내부망에서는 사설 IP만 사용하기 때문에 목적지에 있는 사설 IP를 보고 해당 호스트 찾아주게 됨
* Internet GW는 퍼블릭 IP를 내부에 부여해 1:1 매칭 시킴 (외↔내)
- NAT GW는 내부망에 있는 호스트가 외부로 나가는 것만 가능 (외←내), 리턴 트래픽 허용, 외부에서 들어오는 건 연결X
- NAT 기술
① 고정 NAT (static NAT)
- 퍼블릭 IP 1개, 사설 IP 1개 매핑하는 기술 (주소 변경X, 항상 퍼블릭 IP와 같은 사설 IP 연결)
ex) IP가 바뀌면 책임 묻기 어렵
→ Elastic IP (탄력적 IP)
② 유동 NAT (Dynamic NAT)
- 퍼블릭 IP 1개, 사설 IP 1개 1:1 매핑이지만, 일시적으로 사용중지나 리부팅 시 IP 변경됨 (퍼블릭 IP가 모자라 사용하는 컴퓨터에만 할당)
ex) EC2를 사용중지했다가 나중에 다시 킬 시 퍼블릭 IP 변경됨
→ 인터넷 게이트웨이
③ Port NAT (=NAT Overload)
- 퍼블릭 IP 1개, 여러 개 사설 IP 연결하는 기술
- 퍼블릭 IP에 각각 다른 포트 사용해 여러 사설 IP와 1:1 매칭
- Port 활용
→ NAT 게이트웨이
- Private Subnet과 Public Subnet
- Subnet 만들면 Private Subnet으로 생성됨
- 설정에서 '자동으로 퍼블릭 IP주소를 할당' 체크하면 Public Subnet으로 변경됨
- Private & Public 둘 다 사설 IP로 구성되어있음 → VPC 내 사설 IP로 통신
- Public에 EC2 or ECS 생성 시 퍼블릭 IP를 부여해 IGW로 들어올 때 공인 IP를 사설 IP로 변경해줌(NAT)
- 가용영역 (AZ : Availability Zone)
- 가상의 데이터 센터, 실제 3~5개 정도의 데이터센터의 일부 빌려 가상 데이터 센터 생성
- 리전 (Region)
- 가용영역 3개 이상 모아 해당 지역에서 클라우드 서비스 제공하는 단위
- 보안 그룹 (Security Group)
- 순서 의미 부여 X
- 거부 따로 설정X, 모든 거부 상태엣 허용만 설정
- 리턴 트래픽 허용 (요청에 대한 응답 들어옴)
- 인스턴스에 대해 설정 → 윈도우 방화벽, UFW(우분투 방화벽) 등과 비슷 (호스트 방화벽)
- 소스 (출발지 IP주소)를 허용 or 거부
Anywhere : 모든 곳에서 접근 가능
내 IP : 내가 있는곳에서만 접근 가능, 외부에서 접속해야 하는 경우, 수정해놓고 접근
- 포트는 용도 따라 설정
앱서버는 어디서든 접속 허용
22(SSH), 3389(RDP)는 접속 IP 제한해야 함
cf. 어디서든 접속 가능하게 하면 어떤 공격을 당할 수 있을까?
Brute Force Attack : 모든 가능한 경우 수 대입 ex) 숫자 4자리 : 0000~9999 대문자 4자리 : AAAA-ZZZZ → 시간 오래 걸림
Dictionary Attack : 자주 사용하는 패스워드 목록 파일로 저장해 순차적으로 대입해보는 방법 ex) password.txt→ 시간 절약
cf. Port Scan :어떤 포트가 열려 있는지 확인하기 위해서
- 방화벽
- Rule Set (=Access List)
출IP, 출Port, 목 IP, 목 Port, 허용/거부, 시간, 방향 등
10 | Admin | FW | 허용 |
20 | Any | FW | 거부 |
30 | Any | Game/Stock | 거부 |
40 | Internal | Any | 허용 |
* | Any | Any | 거부 |
→ 맨 마지막 줄에 모두 거부 포함
- Network Access Control List (NACL, 네트워크 기반 접근 통제 목록)
- 허용과 거부 모두 설정
- 위에서부터 내려가며 적용 (윗줄이 우선), 번호 작을수록 우선 적용
- 맨 아랫줄에는 모두 거부
- 최소 하나의 허용 존재해야 함
- 규칙대로만 적용하므로, 리턴 트래픽 허용되지 않음
- 자주 참조되면 윗줄에 배치 (효율성)
- Subnet에 적용 (Network ACL이므로)
클라우드 기본 환경 설정 실습)
- vpc 생성
① VPC 생성 클릭
② VPC만 클릭 후 이름 작성 (ksh_vpc)
③ IPv4 CIDR 수동 입력
④ IPv4 CIDR (10.1.0.0/16)
⑤ IPv4 CIDR 블록 설정 없음
⑥ 테넌시 기본값
⑦ VPC 생성 클릭
- 서브넷 생성
① 서브넷 생성 클릭
② VPC 선택 (ksh_vpc)
③ 서브넷 이름 (ksh_pub, ksh_pri)
④ 가용 영역 (ap-northeast-3a, ap-northeast-3b)
⑤ IPv4 CIDR : 10.1.1.0/24, 10.1.2.0/24
⑥ 서브넷 생성 클릭
⑦ 서브넷 선택 후 작업에서 설정 편집 선택
⑧ 퍼블릭 IPv4 주소 자동할당 활성화 체크 (public subnet으로 변환)
⑨ 저장
- 인터넷 게이트웨이
① 인터넷 게이트웨이 생성 클릭
② 이름 태그 후 생성 (igw-ksh)
③ 인터넷 게이트웨이 생성 클릭
④ 만든 이름 선택 후 작업에서 VPC 연결
⑤ 사용 가능한 VPC에서 vpc 선택
⑥ 인터넷 게이트웨이 연결 클릭
- 라우팅 테이블
① 라우팅 테이블 목록 테이블 클릭
② 해당 라우팅 테이블 ID 클릭
③ 라우팅 탭 클릭 후 편집 클릭
③ 라우팅 추가 클릭 0.0.0.0/0 (게이트웨이)로 라우팅 추가
④ 인터넷 게이트웨이 클릭 > 대상 클릭 후 변경 사항 저장
⑤ 서브넷 연결 탭에서 서브넷 연결 편집 클릭
⑥ 체크 후 저장하면 명시적 서브넷 연결로 이동됨
- ec2 생성
① EC2 목록 클릭 후 인스턴스 시작 클릭
② 이름 (webserver) 작성 후 OS 선택 (ubuntu)
③ 새 키 페어 생성 (ksh)
※ key 속성 변경 : 참고 → https://shy-109x.tistory.com/19
④ 네트워크 설정에서 생성한 VPC, 서브넷 클릭
⑤ 방화벽 보안 그룹 생성 클릭
⑥ 인바인드 보안 그룹 규칙 추가해주기
⑦ 스팟 인스턴스 요청 체크
⑧ 인스턴스 시작 클릭
- 오사카 가격 설정 : $ 0.0046 (리전마다 다름)
① 윈도우10에서 cmd창 열어 SSH 클라이언트 > 예에 있는 ssh -i "aws_~" 복사
② 복사한 값 cmd에 붙여 넣으면 만든 인스턴스에 접속이 됨
③ $ sudo apt install apache2 -y
$ sudo apt install vim -y
④ $ cd /var/www/html
$ sudo rm index.html
$ sudo vi index.html
⑤ 웹사이트에 퍼블릭 IP로 접속
- wordpress 설치
$ sudo rm -rf html
$ sudo wget https://ko.wordpress.org/latest-ko_KR.tar.gz
$ sudo tar -xvf latest-ko_KR.tar.gz
$ sudo mv wordpress html
$ sudo chwon -Rf www-data:www-data html
디렉터리의 소유자와 그룹 소유권을 변경
sudo apt install php php-mysql php-common php-gd php-json php-xml php-curl php-fpm php-mbstring 설치
$ sudo apt install mysql-server
$ sudo service apache2 restart
$ sudo mysql -u root -p
mysql> create database wordpress;
mysql> create user wordpress@localhost identified by '1234';
mysql> grant all privileges on *.* to wordpress@localhost;
mysql> flush privileges;
'SK shieldus Rookies 9기 > 클라우드 보안 컨설팅 실무' 카테고리의 다른 글
클라우드 보안 컨설팅 실무 6일차 (22/11/14) (0) | 2022.11.15 |
---|---|
클라우드 보안 컨설팅 실무 3일차 (22/11/09) (0) | 2022.11.09 |
클라우드 보안 컨설팅 실무 2일차 (22/11/08) (0) | 2022.11.09 |