우분투 20.04의 초기 서버 설정

소개

새로운 Ubuntu 20.04 서버를 처음으로 생성할 때 초기 설정의 일부로 몇 가지 중요한 구성 단계를 수행해야 합니다. 이러한 단계는 서버의 보안과 사용 편의성을 높이며 이후 작업에 견고한 기반을 제공합니다.

DigitalOcean Droplet을 만들 때 새로운 Droplet에 자동으로 추가될 Ubuntu 버전을 선택할 수 있습니다. 우리의 즉시 사용 가능한 솔루션으로 설정을 간소화하세요.

단계 1 — root로 로그인

서버에 로그인하려면 서버의 공개 IP 주소를 알아야 합니다. 또한 암호 또는 — 인증을 위해 SSH 키를 설치한 경우 — root 사용자 계정의 개인 키가 필요합니다. 이미 서버에 로그인하지 않은 경우 이 과정을 자세히 다루는 Droplets에 SSH로 연결하는 방법 가이드를 따르는 것이 좋습니다.

이미 서버에 연결되어 있지 않은 경우 다음 명령을 사용하여 root 사용자로 로그인하십시오 (명령의 강조된 부분을 서버의 공용 IP 주소로 대체하십시오):

  1. ssh root@your_server_ip

호스트 신뢰성에 대한 경고가 나타나면 수락하십시오. 비밀번호 인증을 사용하는 경우 root 암호를 제공하여 로그인하십시오. 암호가 있는 SSH 키를 사용하는 경우 세션마다 키를 사용하는 첫 번째 시간마다 암호를 입력하라는 메시지가 표시될 수 있습니다. 비밀번호로 서버에 처음 로그인하는 경우 root 암호를 변경하라는 메시지가 나타날 수도 있습니다.

root에 대해

root 사용자는 매우 광범위한 권한을 가진 Linux 환경의 관리 사용자입니다. root 계정의 높은 권한으로 인해 일상적으로 사용하는 것이 권장되지 않습니다. 이는 root 계정이 실수로 인해 매우 파괴적인 변경을 가할 수 있기 때문입니다.

다음 단계는 일상적인 사용을 위해 권한이 축소된 새 사용자 계정을 설정하는 것입니다. 나중에 필요한 경우 증가된 권한을 일시적으로 얻는 방법도 안내해 드리겠습니다.

단계 2 — 새 사용자 생성

한 번 root로 로그인하면 새 사용자 계정을 추가할 수 있습니다. 나중에는 새로운 계정 대신 root로 로그인할 것입니다.

이 예제에서는 sammy라는 새 사용자를 만듭니다. 그러나 원하는 사용자 이름으로 교체하십시오.

  1. adduser sammy

일부 질문이 나올 것입니다. 먼저 계정 암호부터 입력하십시오.

강력한 암호를 입력하고 선택적으로 원하는 경우 추가 정보를 입력하십시오. 이는 필수가 아닙니다. 건너뛰고자 하는 필드에서는 그냥 ENTER를 누를 수 있습니다.

단계 3 — 관리자 권한 부여

이제 일반 계정 권한이 있는 새 사용자 계정이 있습니다. 그러나 때로는 관리 작업을 수행해야 할 수도 있습니다.

일반 사용자에서 로그아웃하고 root 계정으로 다시 로그인하지 않고도 일반 사용자로 관리 작업을 수행할 수 있도록 하기 위해, 우리는 일반 사용자에게 관리자 권한을 부여할 수 있습니다. 이렇게 하면 일반 사용자가 명령을 관리자 권한으로 실행할 수 있게 됩니다. 명령 앞에 sudo라는 단어를 넣으면 됩니다.

새로운 사용자에게 이러한 권한을 추가하려면 사용자를 sudo 그룹에 추가해야 합니다. 기본적으로 Ubuntu 20.04에서 sudo 그룹의 구성원인 사용자는 sudo 명령을 사용할 수 있습니다.

루트로 이 명령을 실행하여 새 사용자를 sudo 그룹에 추가하세요 (강조된 사용자 이름을 새 사용자로 대체하세요):

  1. usermod -aG sudo sammy

이제 일반 사용자로 로그인한 상태에서 명령 앞에 sudo를 입력하여 슈퍼 사용자 권한으로 실행할 수 있습니다.

단계 4 — 기본 방화벽 설정

Ubuntu 20.04 서버는 UFW 방화벽을 사용하여 특정 서비스로의 연결만 허용하도록 설정할 수 있습니다. 이 애플리케이션을 사용하여 기본 방화벽을 설정할 수 있습니다.

참고: 만약 서버가 DigitalOcean에서 실행 중이라면, UFW 방화벽 대신 DigitalOcean 클라우드 방화벽을 선택적으로 사용할 수 있습니다. 충돌하는 규칙을 피하기 위해 한 번에 하나의 방화벽만 사용하는 것이 좋습니다.

애플리케이션은 설치 시에 UFW에 프로필을 등록할 수 있습니다. 이러한 프로필을 통해 UFW가 이름으로 이러한 애플리케이션을 관리할 수 있습니다. 현재 서버에 연결할 수 있게 해주는 서비스인 OpenSSH에는 UFW에 프로필이 등록되어 있습니다.

다음을 입력하여 확인할 수 있습니다:

  1. ufw app list
Output
Available applications: OpenSSH

다음으로 SSH 연결을 허용하여 방화벽이 다음에 다시 로그인할 수 있도록 해야 합니다. 이를 허용하려면 다음을 입력하세요:

  1. ufw allow OpenSSH

그런 다음 방화벽을 활성화할 수 있습니다.

  1. ufw enable

y를 입력하고 ENTER를 누르세요. SSH 연결이 여전히 허용되는 것을 확인할 수 있습니다:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

방화벽은 현재 SSH를 제외한 모든 연결을 차단하고 있으므로 추가 서비스를 설치하고 구성하면 방화벽 설정을 조정하여 트래픽을 허용해야 합니다. 우리의 UFW Essentials 가이드에서 일반적인 UFW 작업에 대해 알아볼 수 있습니다.

단계 5 – 정기 사용자의 외부 액세스 활성화

매일 사용할 일반 사용자가 있다면 해당 계정으로 직접 SSH에 액세스할 수 있는지 확인해야 합니다.

참고: 새 사용자로 로그인하고 sudo를 사용할 수 있는지 확인할 때까지는 root로 로그인하는 것이 좋습니다. 이렇게 하면 문제가 발생할 경우 root로 문제 해결 및 필요한 변경 사항을 수행할 수 있습니다. DigitalOcean 도플릿을 사용하고 root SSH 연결에 문제가 있는 경우 복구 콘솔을 사용하여 도플릿에 다시 액세스할 수 있습니다.

새 사용자의 SSH 액세스 구성 프로세스는 서버의 root 계정이 인증을 위해 암호 또는 SSH 키를 사용하는지에 따라 다릅니다.

루트 계정이 비밀번호 인증을 사용하는 경우

루트(root) 계정으로 로그인할 때 비밀번호를 사용하면 SSH에 대한 비밀번호 인증이 활성화됩니다. 새로운 사용자 계정으로 SSH를 사용하려면 새 터미널 세션을 열고 새로운 사용자 이름으로 SSH를 사용하면 됩니다:

  1. ssh sammy@your_server_ip

정규 사용자의 비밀번호를 입력한 후에 로그인됩니다. 관리자 권한으로 명령을 실행해야 할 경우 sudo를 입력하십시오:

  1. sudo command_to_run

각 세션에서 처음으로 sudo를 사용할 때 (그리고 일정 기간마다) 정규 사용자 암호를 입력해야 합니다.

서버의 보안을 강화하려면 비밀번호 인증 대신 SSH 키를 설정하는 것이 좋습니다. Ubuntu 20.04에서 SSH 키를 설정하는 방법은 Ubuntu 20.04에 SSH 키 설정하기 가이드를 참조하십시오.

루트 계정이 SSH 키 인증을 사용하는 경우

루트 계정으로 SSH 키를 사용하여 로그인한 경우 SSH에 대한 암호 인증이 비활성화되어 있습니다. 성공적으로 로그인하려면 새 사용자의 ~/.ssh/authorized_keys 파일에 로컬 공개 키의 사본을 추가해야 합니다.

이미 서버의 루트 계정의 ~/.ssh/authorized_keys 파일에 공개 키가 있으므로 기존 세션에서 해당 파일과 디렉토리 구조를 새 사용자 계정으로 복사할 수 있습니다.

올바른 소유자 및 권한으로 파일을 복사하는 가장 간단한 방법은 rsync 명령을 사용하는 것입니다. 이는 하나의 명령으로 루트 사용자의 .ssh 디렉토리를 복사하고 권한을 보존하며 파일 소유자를 수정합니다. 아래 명령의 강조 표시된 부분을 귀하의 보통 사용자 이름에 맞게 변경해 주세요:

참고: rsync 명령은 슬래시로 끝나는 소스 및 대상을 슬래시로 끝나지 않는 소스 및 대상과 다르게 처리합니다. 아래 rsync를 사용할 때 소스 디렉토리(~/.ssh)에 슬래시가 없는지 확인하십시오 (~/.ssh/를 사용하지 않았는지 확인하십시오).

명령에 슬래시를 잘못 추가한 경우 rsync는 루트 계정의 ~/.ssh 디렉토리의 내용을 sudo 사용자의 홈 디렉토리로 복사하여 전체 ~/.ssh 디렉토리 구조를 복사하지 않게 됩니다. 파일이 잘못된 위치에 있게 되며 SSH가 해당 파일을 찾아 사용할 수 없게 됩니다.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

이제 로컬 머신에서 새 터미널 세션을 열고 새로운 사용자 이름으로 SSH를 사용하세요:

  1. ssh sammy@your_server_ip

비밀번호를 사용하지 않고 새 사용자 계정에 로그인해야 합니다. 필요한 경우 관리자 권한으로 명령을 실행하려면 다음과 같이 명령 앞에 sudo를 입력하세요:

  1. sudo command_to_run

세션마다 처음으로 sudo를 사용할 때와 가끔 이후에는 일반 사용자 암호를 입력해야 합니다.

다음 단계는 어디로 가야 할까요?

이 시점에서 서버에 필요한 소프트웨어를 설치할 수 있는 견고한 기반을 갖추었습니다.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04