Ubuntu 18.04를 사용하여 초기 서버 설치

Ubuntu 18.04를 사용하여 초기 서버 설치

소개


새 Ubuntu 18.04 서버를 만든 후 초기 서버 설정에서 보안을 높이고 향후 관리를 편리하게 하기 위한 설정 절차를 취해야 합니다.
소프트웨어나 서비스를 계속 설치하고 구성하기 전에 이 안내서는 새 서버에 기반을 다지기 위해 가능한 한 빨리 끝내야 할 절차를 안내합니다.

1단계 - Root 사용자로 로그인


새로 설치된 서버는 일반적으로 루트 계정만 설정합니다. 이것은 서버에 처음 로그인할 때 사용하는 계정입니다.
root 사용자는 매우 광범위한 권한을 가진 관리 사용자입니다.루트 계정의 권한이 높아져서 정기적으로 사용하는 것을 권장하지 않습니다.루트 계정의 고유한 일부 기능은 의외의 변경이라도 매우 파괴적인 변경을 할 수 있기 때문이다.따라서 일반적인 시스템 사용자를 설정하고 사용자 sudo에게 권한을 부여하여 제한된 관리 명령을 실행할 수 있도록 하는 것이 좋습니다.다음 단계에서는 이러한 사용자를 설정합니다.
시작하려면 서버에 로그인해야 합니다.서버의 공용 IP 주소를 알고 있는지 확인합니다.인증하려면 서버에 인증용 SSH 키가 설정되어 있지 않도록 계정 암호 또는 루트 사용자 계정의 SSH 개인 키가 필요합니다.서버에 로그인하지 않은 경우 설명서 how to connect to your Droplet with SSH을 따라야 할 수도 있습니다.
서버에 연결되지 않은 경우 다음 명령을 사용하여 루트 사용자로 로그인하십시오.명령의 강조 표시 부분을 서버의 공용 IP 주소로 바꾸십시오.
  1. ssh [email protected]your_server_ip
호스트 신뢰성에 대한 경고를 받습니다(나타나는 경우).암호 인증을 사용하는 경우 로그인할 루트 암호를 제공합니다.또는 암호로 보호된 SSH 키를 사용하는 경우 세션에서 키를 처음 사용할 때마다 암호를 입력하라는 메시지가 표시될 수 있습니다.또한 암호로 서버에 로그인한 것이 처음이라면 루트 암호를 변경하라는 메시지가 표시될 수도 있습니다.
다음 단계에서는 권한이 낮아진 새 시스템 사용자 계정을 설정하고 sudo을 통해 관리 명령을 실행하도록 설정합니다.

2단계 - 새 사용자 만들기


루트로 로그인하면 새 사용자를 만들 수 있습니다. 지금부터 일반 시스템 사용자가 됩니다.
다음 예제에서는 sammy라는 새 사용자를 만들었지만 선택한 사용자 이름으로 바꿔야 합니다.
  1. adduser sammy
당신은 몇 가지 질문을 받게 될 것입니다. 우선 계좌 비밀번호입니다.
강력한 비밀번호를 입력하면 원하면 다른 정보를 기입할 수 있습니다.이것은 필요하지 않습니다. 건너뛰고 싶은 필드에서 ENTER을 눌러도 됩니다.
다음 단계에서 이 사용자에게 sudo 권한을 설정합니다.이것은 사용자가 sudo 프로그램을 통해 루트 사용자로 관리 작업을 수행할 수 있도록 합니다.

3단계 - 관리 권한 부여


현재 일반 권한이 있는 새 사용자 계정이 있습니다.그러나 서버를 관리하거나 프로필을 편집하거나 서버를 다시 시작하는 등 관리 작업을 수행해야 할 때가 있습니다.
일반 사용자를 종료하고 루트 계정으로 다시 로그인하는 것을 피하기 위해서, 일반 계정에 소위'슈퍼 사용자'나 루트 권한을 설정할 수 있습니다.이것은 일반 사용자가 각 명령 앞에 단어 sudo을 붙여서 명령을 관리할 수 있도록 합니다.
새 사용자에게 이 권한을 추가하려면sudo 그룹에 새 사용자를 추가해야 합니다.Ubuntu 18.04에서 기본적으로 sudo 그룹에 속하는 사용자는 sudo 명령을 사용할 수 있습니다.
다음 명령은 사용자가 속한 그룹 목록의 sudo 그룹을 포함한 기본 사용자 설정을 수정합니다.-a 매개 변수를 주의하십시오. 이것은 append를 대표합니다.이 옵션이 없으면 사용자가 링크한 현재 그룹이 sudo으로 바뀌어 의외의 결과를 초래할 수 있습니다.-G 매개 변수는 usermod에 사용자의 그룹 설정을 변경할 것을 알려 줍니다.
루트 사용자로서 이 명령을 실행하면 새 사용자를 sudo 그룹에 추가합니다. 강조 표시된 단어를 새 사용자로 대체합니다.
  1. usermod -aG sudo sammy
시스템 사용자가 설정되었습니다.다음 단계에서는 서버에 기본 방화벽을 설정합니다.

단계 4 - 기본 방화벽 설정


UFW(단순 방화벽)는 Ubuntu 서버와 함께 제공되는 방화벽 구성 도구입니다.UFW 방화벽을 사용하여 서버에서 일부 서비스에만 연결할 수 있도록 할 수 있습니다.
참고: 서버가 Digital Ocean에서 실행되는 경우 UFW 방화벽 대신 DigitalOcean Cloud Firewalls을 사용할 수 있습니다.우리는 디버깅하기 어려운 충돌 규칙을 피하기 위해 방화벽을 한 번에 하나만 사용할 것을 건의합니다.
설치 시 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 작업은 this guide에서 배울 수 있습니다.

단계 5 - 일반 사용자에 대한 외부 액세스 활성화


현재 일상적으로 사용하는 일반 사용자가 있습니다. 이 계정에 SSH를 통해 직접 연결할 수 있는지 확인해야 합니다.
주의: 로그인하고 sudo을 새 사용자로 사용할 수 있는지 확인하기 전에, 루트 사용자로 로그인하는 것을 권장합니다.이렇게 하면 문제가 있으면 루트 사용자로서 문제를 해결하고 필요한 변경을 할 수 있습니다.Digital Ocean Droplet을 사용하고 루트 SSH 연결에 문제가 있으면 log into the Droplet using the DigitalOcean Console을 사용할 수 있습니다.
새 사용자에게 SSH 액세스를 구성하는 과정은 서버의 루트 계정에서 암호를 사용하는지 SSH 키를 사용하는지 여부에 따라 달라집니다.

루트 계정에서 암호 인증을 사용하는 경우


루트 계정에 암호를 사용하여 로그인하면 SSH에서 암호 인증이 활성화됩니다.새 터미널 세션을 열고 새 사용자 이름과 함께 SSH를 사용하여 새 사용자 계정에 SSH를 연결할 수 있습니다.
  1. ssh sammy@your_server_ip
일반 사용자 암호를 입력하면 로그인합니다.관리 권한으로 명령을 실행해야 할 경우 명령 전에 다음과 같이 sudo을 입력하십시오.
  1. sudo command_to_run
세션이 sudo을 처음 사용할 때마다 일반 사용자 암호를 입력하라는 메시지가 표시됩니다.
서버의 보안을 강화하기 위해 암호 인증이 아닌 SSH 키를 설정하는 것이 좋습니다.키 기반 인증을 설정하는 방법은 설명서 setting up SSH keys on Ubuntu 18.04에 따라 확인하십시오.

루트 계정에서 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
이제 새 터미널 세션을 열고 새 사용자 이름으로 로그인합니다.
  1. ssh sammy@your_server_ip
인증하려면 원격 사용자의 SSH 암호를 입력하라는 메시지가 표시되지 않고 새 사용자 계정에 로그인할 수 있어야 합니다.SSH 키가 키 구문으로 설정된 경우 터미널 세션에서 키를 처음 사용할 때 암호를 입력하여 SSH 키를 잠금 해제해야 할 수 있습니다.
관리 권한으로 명령을 실행해야 할 경우 명령 전에 다음과 같이 sudo을 입력하십시오.
  1. sudo command_to_run
세션이 sudo을 처음 사용할 때마다 일반 사용자 암호를 입력하라는 메시지가 표시됩니다.

여기서 어디로 갑니까?


이로써 당신은 서버에 튼튼한 기반을 다졌습니다.이제 서버에 필요한 소프트웨어를 설치할 수 있습니다.
Linux 명령에 익숙해지려면 Linux Command Line Primer을 참조하십시오.설정을 확장하려면 저희 Ubuntu 18.04 tag page을 보셔서 이 버전에 기반한 더 많은 안내서를 얻으셔야 합니다.