공부/클라우드 보안

9월 26일 클라우드 보안 1

마준123 2022. 9. 26. 17:31

Cloud Security

 

 * 클라우드

 = 네트워크에 대한 이해

 = 서버를 다루는 능력 ( 주로 Linux 사용 )

 = Database를 잘 사용해야 함

 = 약간의 스크립트 작성 능력

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

 

 * 4차 산업혁명 진행중

 = 석기시대 ( 돌도끼, 돌칼 ) ---> 청동기( 청동검 : 구리로 된 칼 ) ---> 철기 ( 쇠로된 칼 )   의 진화처럼 변화를 받아들이지 않으면 살아남기 힘들다.

 = 4차산업혁명 : 3차산업 vs. 4차산업(ICBMA : IoT, Cloud, Block chain, Machine Learning, AI)
 = Cloud는 IoT, Blockchain, Machine Learning, AI를 모두 뒷받침하는 기반 기술
 = 세계최고 부자 : 10명중 6명이 클라우드 Biz를 하고 있음

====================================================================================

 

실습준비 ) https://ubuntu.com/

Download 클릭 > Ubuntu Desktop 아래쪽에 있는 22.04 LTS를 클릭!

 

=====================================================================================

 

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

1위 : Amazon Cloud (AWS)

2위 : Microsoft (Azure)

3위 : Google (GCP)

 

 * 직접관리

 = 서버를 운영할 공간 ( 월세,전기료, 인터넷 연결 비용 )

 = 서버를 운영할 인력

 

 * 서버 호스팅 ( Server Hosting )

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

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

 = 대규모로 운영하면 단가가 내려감 ( 원세, 전기료, 인터넷, 인력 등의 비용을 최소화 할 수 있음 )

 

 * 웹 호스팅 (Web Hosting)
 = 웹서비스만 해주는 방식
 = 서버 한대에 여러 웹사이트를 운영할 수 있음
 = 비용을 더욱 줄일 수 있음

 * Cloud 
 = 서버에 가상머신을 운영, 가상머신은 서버의 역할을 함 
 = 웹호스팅 보다 훨씬 효율적 (비용을 더욱 줄일 수 있음)

 * Container
 = 운영체제에 Docker를 설치해서 그 위에 Container를 운영하는 방식
 = Kubernetis를 이용해서 운영을 더욱 효율적으로 할 수 있음

 * 종량제 : 사용한 만큼 지불, 사용 안하면 안내도 됨    ----> 기업 비즈니스
  <----> 정액제 : 사용하지 않아도 일정 금액을 내야 함  ----> 가정                      ex) 12800원/월
  cf. 기업에서는 정액제 허용 안됨

★★★★★★★★클라우드 컴퓨팅의 정의 ★★★★★★★★

 

 * 클라우드 컴퓨팅의 특징 ★★★★

 1) Multi-Tenancy ( 복수 점유 ) : IT자원을 공유

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

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

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

 * 클라우드가 비용이 절감되는 이유 
1) 필요한 만큼만 사용할 수 있기 때문(오토스케일링, 종량제)
2) 고객이 직접 설정하기 때문  ------>  고객이 공부해야 설정 가능(공부하는 비용 발생)
3) 대규모 : 대형 데이터센터를 운영하면 비용이 더 절감됨 (지자체에서 데이터센터 유치 경쟁)

 

 * 관제
 = 서버 관제 : 서버 서비스 설정, 에러 발생 체크 및 대응
 = 보안 관제 : 공격/악성코드가 들어오면 대응
 = 교대근무 : 6시간 4교대, 8시간 3교대
 = 주간 근무, 야간 근무, 비번(휴식), 비번 ----> 주야비비(4교대)

 

 * 설치가 다 되면 할일

 = 전원을 끄고, Ubuntu가 설치된 폴더를 압축(백업용)

 = 위치  C:\Users\user\Documents\Virtual Machines\Ubuntu 22.04 LTS   ----> 폴더를 통째로 압축

 = 나중에 혹시 문제가 생기면 지우고, 압축을 풀어서 사용하면 다시 설치 안해도됨

 = 소프트웨어 업데이터 ---> 나중에

 

-----------------------------------------------------------------------------------------------------------------------------------------------------

실습 ) MySQL 설치

$ sudo  apt  update
$ sudo  apt  install  mysql-server
      참고)  error가 발생해서   apt ... respository ... lock   ----->  rebooting하면 해결됨 

$ sudo mysql -u root -p
   (비밀번호를 물어보면, 초기에는 없으므로 그냥 엔터)
mysql> create database rookies9;
mysql> show databases;
mysql> create user board@localhost identified by 'cyber12#$';                  // 계정을 만들고
mysql> grant all privileges on rookies9.* to board@localhost;                    // 권한을 부여함

실습) Ubuntu에 Gnuboard 설치하기
cf. GNU board(GNU is not unix) : 무료 게시판
Ubuntu with Gnuboard.rtf 파일을 보고 실습! ( 그대로 따라하면 된다. )

 

Ubuntu with Gnuboard.rtf 의 내용

$ sudo  apt  update    
   (PW : ubuntu )
   소프트웨어 업데이트 창이 뜨면 '나중에 알림'을 선택   ----> 제대로 동작 안할 수 있음
$ sudo  apt  install  vim

1) 웹서버 설치
$ sudo  apt  install  apache2                     //  y입력후 엔터

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 'cyber12#$';                // 사용자 및 비밀번호 생성
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                 // github에 있는 gnuboard를 통째로 복제
$ 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.X.130/gnuboard5/    
그누보드5 설치하기 클릭
사용자 : board,   비밀번호 : cyber12#$,    DB명 : gnuboard,  웹사이트 관리자 admin/admin1234
-----> 이미지 업로드 및 게시물 업로드 하기




admin / admin12#$    

* 원격에서 관리를 하기 위해서 SSH설정을 하고, 접속해보기
$ sudo apt install ssh
$ sudo  adduser  ive
   PW : after              (잘못된 암호라고 나오지만, 무시하고 두번 입력)
   Is the information correct?
$ sudo  vi  /etc/sudoers
  : set nu                                  // 왼쪽에 라인번호 보임
  (45번째 줄로 내려감)
   i를 눌러서 편집모드로 들어감
   root   ALL=(ALL:ALL) ALL
   ive     ALL=(ALL:ALL) ALL                   // 내용 추가
   ESC를 눌러서 편집모드 종료
   :wq!

참고) 편집전으로 되돌리려면
   ESC
   :q!                   // 저장하지말고 종료

실습) 윈도우에서 접속해보기
cmd> ssh 192.168.5.X   -l  ive             ( -l  :  login )
$ sudo  apt  update

 

내 주소는 192.168.5.135

192.168.5.135
192.168.5.135/gnuboard5 , 그누보드 5 설치하기를 누르면 설치가 시작되고 관리자 계정을 만들 수 있다.
설치되고 게시판에 게시물을 한개 올린모습.

 

참고 :  https://blog.lael.be/post/11072

(우분투에 대한 전반적인 디테일한 설명 , 그누보드에 대한 설명은 없다 )

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------

 * 아마존 계정 로그인
 = 각자 다른 리전(Region)에서 작업
 = Zone : 가상의 데이터센터 (실제로는 3개이상의 물리적인 데이터센터에 걸쳐있는 가상의 데이터센터)
 = 리전마다 Zone은 3개 이상 구성
 = 리전을 따로 사용하는 이유는 VPC를 만들 수 있는 개수가 제한이 있음

 * 스토리지 (Storage)
 = 저장 창고 (데이터를 보관함)
 = Amazon S3 (Simple Storage Service)
 = 데이터를 Bucket 단위로 관리할 수 있음
 = Bucket은 이름을 고유한 이름으로 만들어야 함 (전세계에서 유일한 이름으로 설정, 나는 강사님 따라 destinyofsorrow1 으로 했다.) 

cmd> ssh 192.168.5.135 -l ive
$ cd /var/www/html
$ sudo mv index.html  index.old
$ sudo vi index.html
i
<html>
       <body>
                <img src="https://destinyofsorrow1.s3.ap-northeast-3.amazonaws.com/20323e2ae27ef0343d292bbe327b562b375b29e7.jpg">
        </body>
</html>
ESC
:wq

웹브라우저를 열고, 우분투IP로 접속해보기 


 * 버킷을 두가지로 나누어서
 = 나 혼자만 보려는 파일 ----> Private 설정
 = 모두에게 공개하려는 파일 ----> Public 설정
 = 특정 권한이 있는 사람에게만 공유하려는 파일 ---> ACL를 적용

ex) Netflix
---> S3에 보관 (권한은 과금자인 고객만 접근이 가능하도록 설정)

 * 인터넷으로 스토리지에 있는 파일을 공개하려면?
 = Bucket도 Public 설정 and 객체도 Public 설정  ---->  인터넷 공개됨

실습 준비)
카페에서 받은 index.html 파일과 이미지(pixabay)를 다운로드해서, index.html 파일의 내용을 notepad++로 수정해보세요.
버킷에 index.html과 이미지 파일 업로드 ---> 퍼블릭 공개하도록 설정

실습) S3에 업로드하고 정적 웹사이트 만들기

http://destinyofsorrow1.s3-website.ap-northeast-3.amazonaws.com
( 기억나는 태그가 별로 없어서 뭐라도 때려넣었다... )

 

홍천에 간 찐따

클라우드 보안 홍천에 간 찐따입니다. 홍천에 간 찐따입니다. 후원문의:01095939623 instagram : https://www.instagram.com/ma_jun._____/ Save the Earth, otherwise Earth kill us.

destinyofsorrow1.s3-website.ap-northeast-3.amazonaws.com


* 파일을 퍼블릭으로 설정하지 않으면 나타나는 오류
1)  403 Forbidden (권한이 없음 ----> Public으로 설정하지 않아서)
2)  XML ------->  권한이 없기 때문에 뜨는 에러임

 

 * 정적 웹사이트 호스팅 어디에 쓰나?

1) 웹사이트가 접속 안될때 "지금은 접속이 원활하지 않습니다. 잠시후에 접속하기 바랍니다."

2) 이벤트 안내 페이지 : "오늘만 반짝 세일", 주차장이 꽉 차서 어디어디로 주차하세요" 등등

 

 

'공부 > 클라우드 보안' 카테고리의 다른 글

10월 05일 클라우드 보안 6  (0) 2022.10.05
9월 30일 클라우드 보안 5  (0) 2022.09.30
9월 29일 클라우드 보안 4  (0) 2022.09.29
9월 28일 클라우드 보안 3  (0) 2022.09.28
9월 27일 클라우드 보안 2  (0) 2022.09.27