Devlog.
게시일

NAVER Cloud Platform 서버 초기 설정하기

cover
date
Oct 26, 2023
slug
naver-cloud-platform-서버-초기-설정하기
status
Published
tags
Ubuntu
Server
NAVER Cloud Platform
summary
클라우드 서버 초기 설정
type
Post

서버 생성

간단하게 Next.js 프로젝트를 배포할 용도로 서버를 사용할 예정이므로 Classic 서버를 생성한다.
서버 생성 과정
1. 서버 생성 클릭
notion image
2. 원하는 구성을 선택하고 다음 클릭
notion image
3. 원하는 서버 타입 선택 후 다음 클릭
notion image
4. 인증키 생성, 저장 후 다음 클릭
notion image
5. 기본 ACG 선택 후 다음 클릭
notion image
6. 서버 생성 클릭
notion image

ACG 설정

ACG(Access Control Group)는 서버 간 네트워크 접근 제어 및 관리를 할 수 있는 IP/Port 기반 필터링 방화벽 서비스다.
기본 ACG는 원격 접속 포트(22, 3389)에 대해 전체 IP가 허용되어 있다. 보안을 위해 지정된 IP에서만 접속할 수 있도록 수정한다.
ACG 설정 과정
1. ACG 설정 클릭
notion image
2. 다음 항목을 삭제한다.
notion image
3. IP와 포트 지정 후 추가, 적용 클릭
notion image
 

초기 서버 접속

웹 서비스 배포를 위해 공인 IP를 발급받는다.
초기 서버 접속은 관리자 비밀번호 확인을 통해 진행해야 한다.
관리자 비밀번호 확인 과정
1. 서버 관리 및 설정 변경 → 관리자 비밀번호 확인 클릭
notion image
2. 서버 생성 시 발급 받은 인증키 첨부 → 비밀번호 확인 클릭
notion image
3. 관리자 비밀번호 확인
notion image
 
다음 명령어로 서버 접속을 진행하고 관리자 비밀번호를 입력하여 접속한다.
ssh root@<서버 공인 IP 주소>

사용자 계정 추가하기

서버 생성 후 초기에는 root 계정만 존재한다. root 계정만 사용한다면 실수로 시스템을 잘못 건드릴 수 있으니 사용자 계정을 추가하는 것이 좋다.
계정 추가 과정
1. home 이동
cd ~
2. adduser 명령어로 계정 추가, 패스워드 지정
adduser <계정명>
notion image
계정 추가가 완료되면 ssh 접속 시 해당 계정으로 접속할 수 있다.
ssh <계정 명>@<서버 공인 IP 주소>
새로 만든 계정은 sudo 명령어를 사용할 수 없기 때문에 sudoers 파일에 계정을 추가해야 한다.
sudo 권한 부여 과정
1. root 계정으로 전환
su root
2. /etc/sudoers 파일 편집
다음 명령어로 파일을 편집한다.
visudo
User privilege specification 항목 아래에 계정 정보를 추가한다.
<계정 명> ALL=(ALL:ALL) ALL

SSH 접속 방식 변경

서버 생성 후 초기 SSH 접속 방식은 계정 비밀번호를 입력하여 접속하는 방식이다.
비밀번호 방식의 경우 비밀번호를 외우기 힘들어서 간단하게 설정하거나, 아무곳에나 기록하는 등 보안적으로 취약하다. 따라서 key 인증 방식으로 변경하는 것이 좋다.
Key 인증 방식 변경 과정
1. key 생성
ssh-keygen -t rsa -b 4096 -f <키 이름>
명령어가 수행되면 명령어가 수행된 위치에 공개 키(<키 이름>.pub)와 개인 키(<키 이름>)가 생성된다.
2. 공개 키 전달
개인 키는 서버에 접속할 클라이언트가 사용하고 공개 키는 접속하고자 하는 서버가 사용한다. 다음 명령어를 통해 서버로 공개 키를 전달할 수 있다.
ssh-copy-id -i <키 이름>.pub <계정 명>@<서버 공인 IP 주소>
3. Key 인증 활성화
키를 통해서만 접속할 수 있도록 서버의 ssh 설정 파일 /etc/ssh/sshd_config에서 다음 내용을 추가/변경한다.
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no

이후

기초적인 설정을 마쳤다면 패키지 업데이트, 업그레이드 및 불필요한 패키지 제거를 진행하고 zsh 및 oh-my-zsh 등을 설치하여 개발 환경 설정을 진행한다.

패키지 업데이트, 업그레이드 및 불필요한 패키지 제거

sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove

zsh 설치

sudo apt install -y zsh

oh-my-zsh 설치

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

asdf 설치

asdf: 다중 런타임 버전 매니저
1. 설치
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
2. .zshrc에서 활성화
plugins=( [plugins...] asdf)

zsh-syntax-highlighting 설치

1. 설치
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
2. .zshrc에서 활성화
plugins=( [plugins...] zsh-syntax-highlighting)

zsh-autosuggestions 설치

1. 설치
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
2. .zshrc에서 활성화
plugins=( # other plugins... zsh-autosuggestions )