본문 바로가기

Rookies 9기/클라우드 보안

클라우드 보안 1일차

728x90

클라우드

클라우드는 구름이라는 뜻을 가지고 있으며, 데이터를 로컬 PC에나 내부 디스크에 보관하지 않고 인터넷을 통해 중앙 컴퓨터(클라우드)에 저장을 할 수 있다.(인터넷만 있으면 어디서든 접속이 가능하다)

 

•클라우드를 잘하려면?

- 네트워크에 대한 이해

- 서버를 운영하는 능력(주로 Linux 사용)

- 데이터베이스 사용

- 약간의 스크립트 작성

- 클라우드의 특징에 대한 이해

 

• 클라우드 서비스 업체(Cloud Service Provider : CSP)

- 1위 : Amazon (AWS)

- 2위 : Microsoft (Azure)

- 3위 : Google(GCP)

 

• 직접 관리

- 서버를 운영할 공간

- 서버를 운영할 인력

              ⇓

• 서버 호스팅

- 서버 관리를 전문업체에 위탁 관리를 시키는 것

- 서버 자체가 담보역할 ---> 랜탈하는 개념(월 비용만 계산)

- 대규모로 운영하면 단가가 내려감

              ⇓

• 웹 호스팅

- 웹 서비스만 해주는 방식

- 서버 한대에 여러 웹사이트를 운영할 수 있음

- 비용을 더욱 줄일 수 있음

              ⇓

• Cloud

- 서버에 가상머신을 운영, 가상 머신은 서버의 역할을 함

- 웹호스팅 보다 훨씬 효율적(비용울 더욱 줄일 수 있음)

              ⇓

• Container

- 운영체제에 Docker를 설치해서 그 위에 Container를 운영하는 방식

- Kubernetis를 이용해서 운영을 더욱 효율적으로 할 수 있음

 

클라우드 컴퓨팅의 특징 ⭐⭐⭐⭐

1) Multi_Tenancy (복수 점유) : IT자원을 공유

2) Self-Service : 고객이 직접 설정(각종 비용이 절감)

3) 규모의 경제 : 더 크게하면 단가를 더 낮출 수 있음

4) 동적 확장성(필요할 때 눌림/줄임)과 사용한 만큼 지불(종량제)

 

• 클라우드가 비용이 절감되는 이유⭐

1) 필요한 만큼만 사용할 수 있기 때문 (오토스케일링, 종량제)

2) 고객이 직접 설정하기 때문 ----> 고객이 공부해야 설정 가능(공부하는 비용 발생)

3) 대규모 : 대형 데이터센터를 운영하면 비용이 더 절감됨

 

• 종량제 : 사용한 만큼 지불, 사용 안하면 안내도 됨  <---> 정액제 : 사용하지 않아도 일정 금액을 내야 함

cf. 기업에서는 정액제 가능?? => 불가능

 

•우분투를 써야하는 이유

- 안정성이 굉장이 좋아졌다.

 

데이터베이스

실습준비
1) https://ubuntu.com/ 에서 우분트 22.04.LTS버전을 다운로드 
2) MySQL Server 설치
 - sudo apt update
 - sudo apt install mysql-server

• 데이터베이스 만들기

sudo mysql -u root -p
create database rookies9;
show databases

 

Ubnutu에 Gnuboard 설치하기

Gnuboard5

Gnuboard는 PHP 언어를 사용하여 무료로 웹 게시판을 만들 수 있다.

1) 웹서버 설치
$ sudo  apt  install  apache2                 

2) Database 설치 (MySQL 설치)
$ sudo  apt  install  mysql-server
$ sudo  mysql  -u root  -p                                                                       // MySQL에 접속, 패스워드 없음 (그냥 엔터)
mysql>  create  database  gnuboard;                                                    // gnuboard라는 DB를 생성하기
mysql>  show  databases;                                                                     // 잘 만들어졌는지 확인
mysql>  create  user  board@localhost  identified by '1234';                // 사용자 및 비밀번호 생성
mysql>  grant  all  privileges  on  gnuboard.*  to  board@localhost;     // board에게 gnuboard의 모든 테이블에 대한 권한부여
mysql>  exit
 
3) 웹서버에서 사용할 언어 설치
$ sudo  apt  install   php   php-mysql   php-common  php-gd  php-fpm   php-xml  php-json  php-curl  git
 
4) 게시판 소스 다운로드
$ cd  /var/www/html
$ sudo  git clone https://github.com/gnuboard/gnuboard5                 
$ cd  gnuboard5

$ sudo  mkdir  data                                                                                 // 사용자들이 업로드할 데이터 디렉토리 생성
$ sudo  chmod  707   data                                                                      // 누구나 읽고 쓰기 가능하도록 설정
  
5) 마무리
$ sudo  apt  install  net-tools
$ ifconfig                                                                                                  // ip주소 확인(복사)
$ sudo  service  apache2  restart
 
6) 게시판 설정
http://192.168.5.133/gnuboard5/                                                              // 우분투ip 주소
그누보드5 설치하기 클릭
사용자 : board,   비밀번호 : 1234,    DB명 : gnuboard,  웹사이트 관리자 admin/admin1234

create database gnuboard, show databases;

gnuboard 데이터베이스를 만들어준 후 잘 만들었는지 확인을 한다.

create user board@localhost identified by '1234;

board@localhost 사용자를 만들고 비밀번호를 1234로 설정을 한다.

grant all privileges on gnuboard.* to board@localhost;

board에게 gnuboard의 모든 테이블에 대한 권한을 부여한다.

그다음 위에 나오 소스 코드 그대로 순서대로 진행을 한다.

웹 브라우저 접속

웹 브라우저에 접속을 한 다음 주소창 192.168.5.133/gnuboard5 입력을 하여 접속을 하면 그누보드 5 설치 버튼을 클릭한다.

DB명을 우분투에서 만들었던 DB명으로 입력을 해야한다.

기본 설치가 다 끝났다.

다시 주소창에 192.168.5.133/ gnuboard5를 입력 후 들어가면 그누보드 5의 기본 화면이 보인다.

잘 작동이 되는지 자유게시판에 파일을 업로드해보자.

이미지 파일을 업로드할 예정이다. 

이미지 파일이 잘 올라가는 걸 보니 홈페이지가 잘 작동이 되는 걸 알 수 있다.

 

• 2 Tier 

웹서버가 DB에 연결되는 형태를 말한다. 클라이언트/서버 환경은 하나의 클라이언트에 서버 프로세스가 하나씩 생성되는 방식이다.

• 3 Tier

클라이언트가 미들웨어로 메시지를 주고받으면서, 데이터베이스에 저장하여 사용하는 형태이다.

 

• SSH 실습(윈도우에서 접속해보기)

Ubuntu

우분트 터미널에서 ive 계정을 생성을 해준다.

/etc/sudoers

root 밑에 ive ALL=(ALL:ALL) ALL를 추가해준다.

CMD

Cmd 창에서 ssh 192.168.5.133 -l ive를 입력해 로그인을 해준다.

-ㅣ 옵션은 로그인 옵션이다.

 

AWS

• 아마존 계정 로그인

- Zone : 가상의 데이터센터(실제로는 3개 이상의 물리적인 데이터센터에 걸쳐있는 가상의 데이터 센터)

- 리전마다 Zone은 3개 이상 구성

- 리전을 따로 사용하는 이유는 VPC를 만들 수 있는 개수가 제한이 있다

 

• 스토리지(Storage)

- 저장 창고(데이터를 보관)

- Amazon S3(Simple Storage Service)

- 데이터를 Bucket 단위로 관리할 수 있음

- Bucket은 이름을 고유한 이름으로 만들어야 함(전 세계에서 유일한 이름으로 설정)

 

버킷 생성

tjdguswl이라는 버킷을 만들었다. 파일을 업로드해보자.

파일 업로드

hacker.jpg 파일을 업로드할 수 있다.(인터넷에 공개)

 

※ 인터넷에 공개할 경우

‣ 퍼블릭 읽기 액세스 권한 부여를 선택

‣ 퍼블릭 액세스 권한을 부여할 위험이 있음을 알고 있다에 체크

 

※ 버킷을 두 가지로 나누어서

‣ 나 혼자만 보려는 파일 ----> Private 설정

‣ 모두에게 공개하려는 파일 ----> Public 설정

‣ 특정 권한이 있는 사람에게만 공유하려는 파일 ---> ACL를 적용

 

• AWS 실습

CMD

CMD에서 SSH로 ive계정에 접속을 한 후, cd /var/www/html 명령어로 디렉토리를 이동을 해준다. 

그다음 기존에 있던 index.html를 sudo mv index.html  index.old로 변경을 해주고 sudo vi index.html 명령어로 위 코드를 작성해준다.

웹브라우저를 열고 우분투IP로 접속을 하면 AWS에서 업로드한 파일 이미지가 나오는 걸 볼 수 있다.

 

• AWS 실습

강사님이 주신 index.html 파일과 이미지를 다운로드해서 index.html 파일의 내용을 notepad++로 수정해보세요.

이미지는 위에서 AWS에 올린 hacker.jpg를 사용할 것이다.(내용은 내 맘대로 수정을 한다)

notepad++로 수정한 index.html를 AWS에 업로드를 한다.(권한은 Public으로 설정을 한다)

두 가지 파일이 올라가 있는 걸 확인할 수 있다.

속성을 클릭한 후 밑으로 내리다 보면 정적 웹 사이트 호스팅이 보인다

여기에서 편집을 눌러 비 활성됨을 활성화로 바꿔준다.

ㅇㅈㅇ

정적 웹 사이트 호스팅이 활성화된 걸 볼 수 있고 이동할 수 있는 주소가 보인다.(복사를 한다)

웹브라우저에 복사한 주소을 입력을 하면 index.html에 수정한 내용과 이미지가 보인다.

 

※ 파일을 퍼블릭으로 설정하지 않으면 나타나는 오류

1)  403 Forbidden (권한이 없음 ----> Public으로 설정하지 않아서)

2)  XML ------->  권한이 없기 때문에 뜨는 에러임

'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글

클라우드 보안 6일차  (0) 2022.10.05
클라우드 보안 5일차  (0) 2022.09.30
클라우드 보안 4일차  (0) 2022.09.29
클라우드 보안 3일차  (0) 2022.09.28
클라우드 보안 2일차  (0) 2022.09.27