웹사이트 검색

Ubuntu 16.04를 사용한 초기 서버 설정


소개

새 Ubuntu 16.04 서버를 처음 생성할 때 기본 설정의 일부로 초기에 수행해야 하는 몇 가지 구성 단계가 있습니다. 이렇게 하면 서버의 보안과 유용성이 향상되고 후속 작업을 위한 견고한 기반이 제공됩니다.

1단계 — 루트 로그인

서버에 로그인하려면 서버의 공인 IP 주소를 알아야 합니다. 암호가 필요하거나 인증을 위해 SSH 키를 설치한 경우 "root” 사용자 계정의 개인 키가 필요합니다. 아직 서버에 로그인하지 않은 경우 이 시리즈의 첫 번째 자습서를 따라할 수 있습니다. , 이 프로세스를 자세히 다루는 SSH를 사용하여 Droplet에 연결하는 방법.

아직 서버에 연결되어 있지 않으면 다음 명령을 사용하여 root 사용자로 로그인하십시오(강조 표시된 단어를 서버의 공용 IP 주소로 대체).

  1. ssh root@your_server_ip

호스트 인증에 대한 경고가 나타나면 수락하고 루트 인증(비밀번호 또는 개인 키)을 제공하여 로그인 프로세스를 완료하십시오. 암호를 사용하여 서버에 처음 로그인하는 경우에도 루트 암호를 변경하라는 메시지가 표시됩니다.

루트 정보

루트 사용자는 매우 광범위한 권한을 가진 Linux 환경의 관리 사용자입니다. 루트 계정의 강화된 권한으로 인해 실제로 정기적으로 사용하는 것이 권장됩니다. 루트 계정에 내재된 권한 중 일부는 우연히라도 매우 파괴적인 변경을 수행할 수 있는 기능이기 때문입니다.

다음 단계는 일상 업무에 영향을 미치는 범위가 축소된 대체 사용자 계정을 설정하는 것입니다. 필요할 때 더 많은 권한을 얻는 방법을 알려드립니다.

2단계 - 새 사용자 만들기

root로 로그인하면 지금부터 로그인하는 데 사용할 새 사용자 계정을 추가할 준비가 된 것입니다.

이 예에서는 "sammy\라는 새 사용자를 생성하지만 이를 원하는 사용자 이름으로 바꿔야 합니다.

  1. adduser sammy

계정 암호부터 시작하여 몇 가지 질문을 받게 됩니다.

강력한 암호를 입력하고 원하는 경우 선택적으로 추가 정보를 입력합니다. 이는 필수 사항이 아니며 건너뛰려는 필드에서 ENTER를 누르기만 하면 됩니다.

3단계 - 루트 권한

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

일반 사용자에서 로그아웃하고 루트 계정으로 다시 로그인할 필요가 없도록 일반 계정에 "수퍼유저\ 또는 루트 권한을 설정할 수 있습니다. 이렇게 하면 일반 사용자가 관리자 권한으로 명령을 실행할 수 있습니다. 각 명령 앞에 sudo라는 단어를 넣어 권한을 부여합니다.

새 사용자에게 이러한 권한을 추가하려면 새 사용자를 "sudo\ 그룹에 추가해야 합니다. 기본적으로 Ubuntu 16.04에서는 "sudo\ 그룹에 속한 사용자가 sudo를 사용할 수 있습니다. 명령.

루트로 다음 명령을 실행하여 새 사용자를 sudo 그룹에 추가합니다(강조 표시된 단어를 새 사용자로 대체).

  1. usermod -aG sudo sammy

이제 사용자는 수퍼유저 권한으로 명령을 실행할 수 있습니다! 작동 방식에 대한 자세한 내용은 이 sudoers 튜토리얼을 확인하세요.

서버의 보안을 강화하려면 이 자습서의 나머지 단계를 따르십시오.

4단계 - 공개 키 인증 추가(권장)

서버 보안의 다음 단계는 새 사용자에 대한 공개 키 인증을 설정하는 것입니다. 이를 설정하면 로그인할 때 개인 SSH 키를 요구하여 서버의 보안이 강화됩니다.

키 쌍 생성

공개 키와 개인 키로 구성된 SSH 키 쌍이 아직 없는 경우 하나를 생성해야 합니다. 사용하려는 키가 이미 있는 경우 공개 키 복사 단계로 건너뜁니다.

새 키 쌍을 생성하려면 로컬 컴퓨터(예: 컴퓨터)의 터미널에 다음 명령을 입력합니다.

  1. ssh-keygen

로컬 사용자가 "localuser\라고 가정하면 다음과 같은 출력이 표시됩니다.

ssh-keygen output
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

이 파일 이름과 경로를 수락하려면 Return 키를 누르십시오(또는 새 이름을 입력하십시오).

다음으로 키를 보호하기 위한 암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하거나 암호를 비워둘 수 있습니다.

참고: 암호를 비워두면 암호를 입력하지 않고도 개인 키를 사용하여 인증할 수 있습니다. 암호를 입력하는 경우 로그인하려면 개인 키 암호가 모두 필요합니다. 암호로 키를 보호하는 것이 더 안전하지만 두 방법 모두 용도가 있으며 기본 암호 인증보다 더 안전합니다. .

그러면 localuser<의 .ssh 디렉토리에 개인 키 id_rsa와 공개 키 id_rsa.pub가 생성됩니다.의 홈 디렉토리. 서버에 액세스할 수 없는 사람과 개인 키를 공유해서는 안 된다는 점을 기억하세요!

공개 키 복사

SSH 키 쌍을 생성한 후 공개 키를 새 서버에 복사해야 합니다. 이를 수행하는 두 가지 쉬운 방법을 다룰 것입니다.

참고: Droplet 생성 중에 SSH 키를 선택한 경우 ssh-copy-id 메서드는 DigitalOcean에서 작동하지 않습니다. 이는 SSH 키가 있는 경우 DigitalOcean이 암호 인증을 비활성화하고 ssh-copy-id가 암호 인증에 의존하여 키를 복사하기 때문입니다.

DigitalOcean을 사용 중이고 Droplet 생성 중에 SSH 키를 선택한 경우 옵션 2를 대신 사용하십시오.

옵션 1: ssh-copy-id 사용

로컬 시스템에 ssh-copy-id 스크립트가 설치되어 있는 경우 이를 사용하여 로그인 자격 증명이 있는 모든 사용자에게 공개 키를 설치할 수 있습니다.

다음과 같이 키를 설치하려는 서버의 사용자 및 IP 주소를 지정하여 ssh-copy-id 스크립트를 실행합니다.

  1. ssh-copy-id sammy@your_server_ip

프롬프트에서 비밀번호를 제공하면 공개 키가 원격 사용자의 .ssh/authorized_keys 파일에 추가됩니다. 이제 해당 개인 키를 사용하여 서버에 로그인할 수 있습니다.

옵션 2: 수동으로 키 설치

이전 단계를 사용하여 SSH 키 쌍을 생성했다고 가정하고 로컬 컴퓨터의 터미널에서 다음 명령을 사용하여 공개 키(id_rsa.pub)를 인쇄합니다.

  1. cat ~/.ssh/id_rsa.pub

이렇게 하면 공개 SSH 키가 인쇄되며 다음과 같이 표시됩니다.

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

공개 키를 선택하고 클립보드에 복사합니다.

SSH 키를 사용하여 새 원격 사용자로 인증하려면 사용자의 홈 디렉토리에 있는 특수 파일에 공개 키를 추가해야 합니다.

서버에서 루트 사용자로 다음 명령을 입력하여 임시로 새 사용자로 전환합니다(자신의 사용자 이름으로 대체).

  1. su - sammy

이제 새 사용자의 홈 디렉토리에 있게 됩니다.

.ssh라는 새 디렉터리를 생성하고 다음 명령으로 권한을 제한합니다.

  1. mkdir ~/.ssh
  2. chmod 700 ~/.ssh

이제 텍스트 편집기로 authorized_keys라는 파일을 .ssh에서 엽니다. nano를 사용하여 파일을 편집합니다.

  1. nano ~/.ssh/authorized_keys

이제 공개 키(클립보드에 있어야 함)를 편집기에 붙여넣어 삽입합니다.

CTRL-x를 눌러 파일을 종료한 다음 y를 눌러 변경 사항을 저장하고 ENTER를 눌러 파일 이름을 확인합니다.

이제 다음 명령을 사용하여 authorized_keys 파일의 권한을 제한하십시오.

  1. chmod 600 ~/.ssh/authorized_keys

이 명령을 한 번 입력하여 root 사용자로 돌아갑니다.

  1. exit

이제 공개 키가 설치되었으며 SSH 키를 사용하여 사용자로 로그인할 수 있습니다.

키 인증 작동 방식에 대한 자세한 내용은 Linux 서버에서 SSH 키 기반 인증을 구성하는 방법 자습서를 참조하십시오.

다음으로 비밀번호 인증을 비활성화하여 서버의 보안을 강화하는 방법을 보여드리겠습니다.

5단계 - 암호 인증 비활성화(권장)

이제 새 사용자가 SSH 키를 사용하여 로그인할 수 있으므로 비밀번호 전용 인증을 비활성화하여 서버의 보안을 강화할 수 있습니다. 이렇게 하면 서버에 대한 SSH 액세스가 공개 키 인증으로만 제한됩니다. 즉, 서버에 로그인하는 유일한 방법(콘솔 제외)은 설치된 공개 키와 쌍을 이루는 개인 키를 소유하는 것입니다.

참고: 이전 섹션의 4단계에서 권장한 대로 사용자에게 공개 키를 설치한 경우에만 비밀번호 인증을 비활성화하십시오. 그렇지 않으면 서버에서 자신을 잠그게 됩니다!

서버에서 암호 인증을 비활성화하려면 다음 단계를 따르십시오.

루트 또는 새 sudo 사용자로 SSH 데몬 구성을 엽니다.

  1. sudo nano /etc/ssh/sshd_config

PasswordAuthentication을 지정하는 줄을 찾아 앞의 #를 삭제하여 주석 처리를 제거한 다음 해당 값을 "no\로 변경합니다. 변경한 후에는 다음과 같아야 합니다. :

PasswordAuthentication no

다음은 키 전용 인증에 중요하고 기본적으로 설정되는 두 가지 다른 설정입니다. 이전에 이 파일을 수정한 적이 없다면 다음 설정을 변경할 필요가 없습니다.

PubkeyAuthentication yes
ChallengeResponseAuthentication no

변경을 마쳤으면 앞에서 살펴본 방법(CTRL-X, Y, ENTER )을 사용하여 파일을 저장하고 닫습니다. ).

SSH 데몬을 다시 로드하려면 다음을 입력하십시오.

  1. sudo systemctl reload sshd

이제 비밀번호 인증이 비활성화되었습니다. 이제 SSH 키 인증을 통해서만 서버에 액세스할 수 있습니다.

6단계 - 로그인 테스트

이제 서버에서 로그아웃하기 전에 새 구성을 테스트해야 합니다. SSH를 통해 성공적으로 로그인할 수 있음을 확인할 때까지 연결을 끊지 마십시오.

로컬 컴퓨터의 새 터미널에서 생성한 새 계정을 사용하여 서버에 로그인합니다. 이렇게 하려면 다음 명령을 사용하십시오(사용자 이름과 서버 IP 주소 대체).

  1. ssh sammy@your_server_ip

4단계와 5단계에 설명된 대로 사용자에게 공개 키 인증을 추가한 경우 개인 키가 인증으로 사용됩니다. 그렇지 않으면 사용자 암호를 입력하라는 메시지가 표시됩니다.

키 인증에 대한 참고 사항: 암호로 키 쌍을 만든 경우 키의 암호를 입력하라는 메시지가 표시됩니다. 그렇지 않고 키 쌍에 암호가 없으면 암호 없이 서버에 로그인해야 합니다.

서버에 인증이 제공되면 새 사용자로 로그인됩니다.

루트 권한으로 명령을 실행해야 하는 경우 다음과 같이 명령 앞에 "sudo\를 입력하십시오.

  1. sudo command_to_run

7단계 - 기본 방화벽 설정

Ubuntu 16.04 서버는 UFW 방화벽을 사용하여 특정 서비스에 대한 연결만 허용되도록 할 수 있습니다. 이 응용 프로그램을 사용하여 매우 쉽게 기본 방화벽을 설정할 수 있습니다.

다른 응용 프로그램은 설치 시 UFW에 프로필을 등록할 수 있습니다. 이러한 프로필을 통해 UFW는 이러한 응용 프로그램을 이름으로 관리할 수 있습니다. 현재 서버에 연결할 수 있는 서비스인 OpenSSH에는 UFW에 등록된 프로필이 있습니다.

다음을 입력하면 확인할 수 있습니다.

  1. sudo ufw app list
Output
Available applications: OpenSSH

다음에 다시 로그인할 수 있도록 방화벽이 SSH 연결을 허용하는지 확인해야 합니다. 다음을 입력하여 이러한 연결을 허용할 수 있습니다.

  1. sudo ufw allow OpenSSH

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

  1. sudo ufw enable

"y\를 입력하고 Enter 키를 눌러 계속 진행합니다. 다음을 입력하면 SSH 연결이 계속 허용되는지 확인할 수 있습니다.

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

추가 서비스를 설치하고 구성하는 경우 허용 가능한 트래픽을 허용하도록 방화벽 설정을 조정해야 합니다. 이 가이드에서 몇 가지 일반적인 UFW 작업을 배울 수 있습니다.

여기에서 어디로 가야합니까?

이제 서버에 대한 견고한 기반이 마련되었습니다. 지금 서버에 필요한 모든 소프트웨어를 설치할 수 있습니다.