Search
Duplicate

오라클 클라우드 서버 무료로 사용하기

무료 클라우드를 생각하면 보통 AWS 프리티어를 떠올리겠지만, 프리티어의 경우 1년 동안만 무료로 사용할 수 있다.
(물론 컨퍼런스와 같은 행사 등에서 크레딧을 받아 요금을 크레딧으로 지불 할 수 있지만..)
종종 사용했던 프리티어 계정을 잊고 지냈다가 무료 사용기간이 지난 후 과금 폭탄을 맞았다라는 썰도 들리곤 한다.
AWS는 대인배라서 그런지 상황을 잘 설명하면 한 번은 봐주긴한다..
학생 혹은, 주머니 사정이 여의치않은 사람들은 이러한 상황 때문에 클라우드 서비스 사용이 부담스러울 것이다.
오라클 클라우드에서 평생 무료로 (물론 제공하는 범위의 제한은 있다.) 사용할 수 있는 서버를 제공해준다.
VM의 스펙이 빵빵하지는 않지만, 개인이 개발/테스트 용도로 충분히 사용할 정도다.
대략적인 순서는 아래와 같다.
1.
오라클클라우드 계정 생성
2.
인스턴스(VM이라고 보면 된다.) 생성
3.
인스턴스 SSH 접속
1번 계정 생성 과정은 생략하고 바로 인스턴스 생성부터 설명하겠다.
작업환경은 윈도우즈 OS 기준.

오라클 클라우드 홈페이지 접속

만약 계정이 없는 경우 "무료로 시작하기"를 통해 회원가입을 한다.
계정을 생성 후 "Orcle Cloud 로그인"을 통해 로그인 한다.

오라클 클라우드 콘솔

VM 인스턴스 생성 클릭
인스턴스의 이름을 정한 뒤, 이미지 변경을 클릭하여 사용할 OS를 설정한다.
필자의 경우 CentOS7이 익숙하기 떄문에 오라클 리눅스가 아닌 CentOS7을 선택했다.

RSA 키 발급

인스턴스에 SSH로 접속하기 위하여 키체인을 생성해야한다. (SFTP 접속시에도 사용한다)
PuttyGen을 사용하여 공개/비밀키를 생성할 것이다. Putty를 설치하면 같이 설치가 된다.
RSA / 2048bit (기본 값)으로 설정 후 "Generate" 클릭
참고로, 붉은색 표시한 영역에 마우스를 위치후 이리저리 움직여줘야 게이지가 올라간다.
발급이 완료 되면, 아래 캡쳐를 참고하여 공개키(.pub), putty 전용 비밀키(.ppk),
openssh 비밀키 (.key) 3가지 형태로 저장한다.
공개키(.pub)
putty 전용 비밀키(.ppk) - Putty에서만 사용가능하다..
(1) openssh 비밀키 (.key) - SecureCRT, XShell등에서 사용 가능...
(2) openssh 비밀키 (.key) - SecureCRT, XShell등에서 사용 가능...
(3) openssh 비밀키 (.key) - SecureCRT, XShell등에서 사용 가능...
(4) openssh 비밀키 (.key) - SecureCRT, XShell등에서 사용 가능...
여기서 Public Key 텍스트르 전체 선택 후 복사한다.

오라클 클라우드 콘솔

복사한 Public Key를 SSH 키 부분에 붙여넣은 후 "생성" 버튼을 클릭한다.
생성 중이다
우측 상단에서 컴퓨트 → 인스턴스 를 클릭 시 이동되는 페이지
조금 기다리면 실행 중 상태로 변경된다.
인스턴스 생성이 완료되었다! 이제 서버에 SSH로 접속을 해보자.
먼저 공용 IP주소쪽에 있는 복사버튼을 눌러 IP주소를 복사하자.

Open Putty

오라클 클라우드 인스턴스 생성 시 기본 제공하는 일반 계정은 "opc"이다.
따라서 host 부분에 opc@고정IP를 입력한다.
좌측 카테고리에서 Connection > SSH > Auth를 누른 후 Private Key File을 import 한다.
Open 클릭.
"예"를 눌러준다.
비밀번호 로그인이 아닌 키체인으로 로그인을 하였다. 위에서 발급한 Key file들은 반드시 잊어버리면 안된다.
서버 스펙은 대략 이정도이다.

기본 서버 설정

여기까지만 해도 바로 사용할 수 있지만, 약간의 설정을 하자.
root 계정으로 로그인한다.
sudo su -
Bash
복사
root의 비밀번호를 설정한다.
passwd root
Bash
복사

사용자 계정 생성 (그룹 포함)

기본 제공하는 계정을 사용해도 되지만 필자는 opc 계정은 ssh 접속용도로만 사용하고,
서버 내부에서 사용할 계정은 따로 만들 것이다.
(1) 그룹을 추가한다. (당연히 다른 그룹이름을 사용해도 무관하다.)
(2) 생성한 그룹에 속하는 계정을 추가한다. (당연히 다른 계정이름을 사용해도 무관하다.)
(3) 생성한 계정의 비밀번호를 설정한다.
groupadd 그룹이름 useradd -g 그룹이름 계정이름 passwd 계정이름
Bash
복사

새로 추가한 계정 키체인 생성

신규 추가 계정으로 ssh 접속을 할 수 있게 키체인을 생성, 등록을 한다
생성 방식은 동일 하며 새로 생성할 때, 키의 파일 이름을 다르게 저장한다.
본인의 경우 계정명이 "pjw"이므로 새로 생성한 키 파일이름에 "-pjw" 를 붙였다.

private key를 통한 SFTP 로그인

FTP Tool은 WinSCP를 사용한다. (다른 Tool을 사용해도 무관하다.)
호스트 이름은 인스턴스에 할당 된 "고정 IP"를 입력
사용자 이름은 "opc" (현재는 새로 생성한 계정의 키체인을 등록하지 않았기 때문)
* 비밀번호는 공란으로 둔 채, 우측 하단에 보이는 "고급" 버튼을 클릭한다.
SSH > 인증 > 개인키 파일에 "최초"에 생성하였던 opc계정의 키체인 중 .ppk파일을 등록한다.
그리고 확인을 누른 다음 로그인 버튼을 클릭한다.
정상적으로 로그인이 되면 이번에 새로 생성한 계정의 키체인 중 .pub 파일을 업로드한다.
참고로 좌측이 로컬 PC, 우측이 원격지 서버 (오라클 클라우드 인스턴스)

신규 계정에 대한 키체인 등록

최초에 제공된 opc 계정이 아닌 새로 추가한 계정으로 SSH 접속을 할 수 있게 키체인을 등록한다.
먼저 opc 계정으로 SSH 접속을 한다.
sudo su - cd /home/계정이름 mkdir .ssh chmod 700 .ssh chown 계정이름:그룹이름 .ssh #이 부분은 캡쳐에서 누락이 되었다.. cd .ssh cp /home/opc/키체인.pub . chmod 700 키체인.pub chown 계정이름:그룹이름 키체인.pub mv 키체인.pub authorized_keys #authorized_keys으로 이름을 바꿔준다. ls -al #권한, 소유권 확인
Bash
복사
(수정 전)
vi authorized_keys
Bash
복사
공캐키 파일을 리눅스에서 사용될 수 있도록 수정을 해야한다.
1) "AAA.." 앞 부분 내용을 지우고 "ssh-rsa "(공백 포함)으로 바꾼다.
2) 줄바꿈 부분을 제거후 저장하고 나간다.
authorized_keys 파일과 .ssh 디렉토리의 권한은 700 or 600정도로 맞추고,
소유권 (계정,그룹)도 잘 맞춰주고 확인을 해본다.
여기까지 설정을하면 끝났다! Putty로 opc 계정이 아닌 새로 생성한 계정으로 접속해보자.
(위에 설명 한 키체인을 등록하는 방법은 꼭 오라클 클라우드가 아니더라도,
다른 리눅스 계열 서버에서 동일하게 적용할 수 있다.)
Private key 파일로 로그인 하는 요령은 opc계정으로 로그인했던 방식과 동일하다
Private key 파일로 로그인 하는 요령은 opc계정으로 로그인했던 방식과 동일하다
접속 성공! 키체인 파일은 꼭 어딘가에 백업을 해놓자..

터미널(Mac or Linux)에서 비밀키 파일로 SSH 접속하는 방법

SSH GUI툴이 아닌, 터미널(Mac or Linux)에서 접속 할 경우 아래 내용을 참고한다.
➜ ~ ls -trl 키체인파일이 존재하는 디렉토리/ #중요한건 디렉토리 and 키체인파일의 권한은 700 혹은 600으로 설정해야한다. total 0 drwx------@ 4 pjw staff 128 9 27 16:55 user-key ➜ ~ ssh -i 비밀키파일("~.ppk"가 아닌 openssh 형태의 파일. 여기 포스팅에서는 "~.key") 계정이름@서버호스트(ip 혹은 도메인) # ex : ssh -i privatekey.key user@10.10.10.10 Last login: Sun Sep 27 09:51:49 2020 from 223.131.194.250 [pjw@parkjw-svr ~]$
Bash
복사
참고로 PuttyGEN이 아니더라도, 터미널에서 OpenSSH를 통하여 키체인을 발급해서 사용 할 수 있다.

sudo 권한 설정 (패스워드 생략)

편의성을 위해 방금 생성한 계정이 비밀번호를 입력하지 않더라도 "sudo" 명령어를 사용할 수 있게 설정할 것이다.
vi /etc/sudoers
Bash
복사
아래와 같이 입력 후 저장하고 나간다. (:wq)
계정이름 ALL=NOPASSWD: ALL
Bash
복사

SSH root 로그인 제한 해제

vi /etc/ssh/sshd_config
Bash
복사
기본 값은 "#PermitRootLogin no" 으로 되어 있다 (주석되어 있으므로 root 계정으로 SSH 접속 가능)
"PermitRootLogin yes" 로 변경 후 저장하고 나간다. (:wq)
설정 적용을 위하여 sshd 데몬을 재기동한다.
systemctl restart sshd.service
Bash
복사
이제 사용하면된다..!
해당 포스트에서 OS 보안 취약점 설정까지 작성하기는 다소 무리가 있다고 생각되서 이 정도까지만 작성하겠다.