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
참고 : 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
( 기억나는 태그가 별로 없어서 뭐라도 때려넣었다... )
* 파일을 퍼블릭으로 설정하지 않으면 나타나는 오류
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 |