서버가 생성된 후 바로 행해야하는 작업중의 하나가 root를 대신할 수 있는 새로운 사용자 등록입니다.

이렇게 새로운 사용자를 등록하고, 이 새로운 사용자로 접속해 root로 작업함으써 발생하는 리스크를 줄이고 서버 자체가 털릴 가능성을 그 만큼 줄일 수 있습니다.

1. 우분투(Ubuntu) 18.04 설치 시리즈를 시작하며

2018년 초에 발표된 우분투(Ubuntu) 18.04는 기존 버젼인 16.04이나 17.10과는 같은 것 같으면서도 미묘하게 다른 점들이 있습니다.

서버 운영체제로 우분투(Ubuntu) 18.04를 설치해보면서 얻었던 삽질기를 기반으로 우분투(Ubuntu) 18.04에서 서버를 안전하게 설치하는 방법에 대한 고민을 나누어 보도록 하겠습니다.

#1. root 대신할 사용자 등록 및 권한 부여하기

#2. UFW로 방화벽 설정 및 22번 포트 변경

오늘은 서버 설치하자마자 root 대신 사용할 사용자 등록 및 관리자 권한 부여에 대해서 살펴 보도록 하겠습니다.

2. 루트 사용자로 로그인

서버 관리시 루트로 계속 관리하는 것은 보안에 문제가 생길 수 잇습니다. 그래서 가능하면 루트대신 사용자를 등록해 서버에 접속합니다.

서버에 루트 사용자로 접속은 상요하는 프로그램마다 조금씩 다르지만 기본은 아래와 같은 명령을 사용합니다.

1
ssh root@your_server_ip
cs

3. 새로운 사용자 등록

일단 root로 로그인하면 새로운 사용자를 등록할 수 있습니다. 당연하겠지만..

새로운 사용자 등록 시 adduser 명령어를 사용합니다. 예를 들어 newdream이라는 사용자를 등록해 보죠.

1
adduser newdream
cs

새로운 사용자를 등록하는 과정에서 몇가지 질문에 대한 답을 입력해야 합니다. 우선 새로운 사용자의 비밀번호부터 입력합니다.

비밀번호 후에는 Full Name, Room Number, Work phone, Home phone, other 등을 질문하는데요. 그냥 엔터를 쳐서 넘어가도 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for happist
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] Y
 
cs

4. 새로운 사용자에게 관리자 권한 부여

아렇게 새로운 사용자가 생겼는데요. 이 사용자는 일반적인 권한을 갖습니다.

그런데 서버 작업을 하다보면 관리자 권한으로 진행할 필요가 생깁니다. 이를 대비해서 새로운 사용자에게도 관리자 권한을 부여합니다.

이는 새로운 사용자를 일시적으로 관리자 권한을 가질 수 있는 sudo 그룹에 추가한다는 것을 의미합니다.

1
usermod -aG sudo newdream
cs

이렇게 관리자 권한이 부여되면 sudo를 사용해 관리자 권한이 필요한 작업을 할 수 있습니다.

5. 기본 방화벽 세팅

이 작업이 서버 설치 후 처음으로 하는 것이라면 기본 방화벽 세팅이 필요합니다.

자세한 방화벽 세팅은 다음 포스팅에서 자세히 다루겠지만 여기서는 기본적으로 SSH 접속을 위해서 OpenSSH를 사용할 수 있도록 합니다

1
ufw allow OpenSSH
cs

이 다음에는 UFW 방화벽을 가동시킵니다.

1
ufw enable
cs

이제는 새로운 사용자가 등록되었고, 사용자는 SSH로 접속할 준비를 완료되었습니다.

지금 방화벽 상태를 보려면 status 명령을 사용합니다.

1
ufw status
cs

그러면 아래와 같은 화면이 나타납니다.

1
2
3
4
5
6
7
Output
Status: active
 
To                         Action      From
—                         ———      ——
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
cs