소개
새로운 Ubuntu 22.04 서버를 처음 생성할 때, 초기 설정의 일부로 몇 가지 중요한 구성 단계를 수행해야 합니다. 이러한 단계는 서버의 보안과 사용성을 높이며, 후속 작업에 대한 견고한 기반을 제공할 것입니다.
DigitalOcean 앱 플랫폼을 사용하여 GitHub에서 응용 프로그램을 배포하세요. DigitalOcean이 앱의 확장을 담당합니다.
단계 1 — root로 로그인하기
서버에 로그인하려면 서버의 공인 IP 주소를 알아야 합니다. 또한 인증을 위해 SSH 키를 설치했다면 root 사용자 계정의 비밀번호 또는 개인 키가 필요합니다. 서버에 아직 로그인하지 않은 경우에는 이 과정을 자세히 다루는 SSH를 사용하여 드롭렛에 연결하는 방법 가이드를 따르는 것이 좋습니다.
현재 서버에 연결되어 있지 않은 경우 다음 명령을 사용하여 root 사용자로 로그인하세요. 명령의 강조된 your_server_ip
부분을 서버의 공인 IP 주소로 대체하세요:
호스트 신뢰성에 대한 경고를 수락하십시오. 서버가 암호 인증을 사용하는 경우 root 암호를 제공하여 로그인하십시오. 암호로 보호된 SSH 키를 사용하는 경우 세션마다 키를 처음 사용할 때 암호를 입력해야 할 수 있습니다. 암호로 서버에 처음 로그인하는 경우 암호를 변경해야 할 수도 있습니다. 프롬프트를 받으면 암호를 변경하는 지침을 따르십시오.
root에 관하여
root 사용자는 Linux 환경에서 권한이 상승된 관리 사용자입니다. root 계정의 높은 권한으로 인해 정기적으로 사용을 권장하지 않습니다. root 계정은 실수로도 매우 파괴적인 변경을 가할 수 있습니다.
다음 단계는 일상적인 사용을 위해 권한이 줄어든 새 사용자 계정을 설정하는 것입니다. 나중에 필요할 때 더 높은 권한을 일시적으로 얻는 방법을 안내해 드리겠습니다.
단계 2 — 새 사용자 생성
root로 로그인한 후에 새 사용자 계정을 추가할 수 있습니다. 나중에는 root 대신 이 새 계정으로 로그인할 것입니다.
이 예제는 새 사용자를 만듭니다. 사용자 이름은 sammy로 설정되어 있지만, 원하는 사용자 이름으로 바꿔주세요:
몇 가지 질문을 받게 될 것입니다. 계정 비밀번호부터 시작합니다.
강력한 비밀번호를 입력하고 원하는 경우 추가 정보를 입력하세요. 이 정보는 필수가 아니며, 건너뛰고 싶은 필드는 언제든지 ENTER
를 누를 수 있습니다.
단계 3 — 관리자 권한 부여
이제 일반 계정 권한을 가진 새 사용자 계정이 있습니다. 그러나 가끔은 root 사용자로 관리 작업을 수행해야 할 때가 있습니다.
일반 사용자로서 로그아웃하고 root 계정으로 다시 로그인하는 번거로움을 피하기 위해 사용자의 일반 계정에 슈퍼유저 또는 root 권한을 설정할 수 있습니다. 이러한 권한을 부여하면 일반 사용자가 명령어 앞에 sudo
를 넣어 관리자 권한으로 명령을 실행할 수 있습니다.
이러한 권한을 새 사용자에게 추가하려면 사용자를 sudo 시스템 그룹에 추가해야 합니다. Ubuntu 22.04의 기본 설정에 따르면 sudo 그룹의 구성원은 sudo
명령을 사용할 수 있습니다.
루트로서, 새로운 사용자를 sudo 그룹에 추가하려면 다음 명령을 실행하십시오 (강조된 sammy
사용자 이름을 새로운 사용자로 바꿉니다):
일반 사용자로 로그인한 상태에서 명령 앞에 sudo
를 입력하여 슈퍼 사용자 권한으로 실행할 수 있습니다.
단계 4 — 방화벽 설정
Ubuntu 22.04 서버에서는 UFW 방화벽을 사용하여 특정 서비스로의 연결만 허용할 수 있습니다. 이 응용 프로그램을 사용하여 기본 방화벽을 설정할 수 있습니다.
참고: 서버가 DigitalOcean에서 실행 중인 경우 UFW 방화벽 대신 DigitalOcean 클라우드 방화벽을 선택적으로 사용할 수 있습니다. 충돌하는 규칙을 피하기 위해 한 번에 하나의 방화벽만 사용하는 것이 좋습니다.
응용 프로그램은 설치 시 UFW에 프로필을 등록할 수 있습니다. 이러한 프로필을 통해 UFW가 응용 프로그램을 이름으로 관리할 수 있습니다. 서버에 연결할 수 있게 해주는 서비스인 OpenSSH는 UFW에 프로필이 등록되어 있습니다.
설치된 UFW 프로필 목록을 확인하려면 다음을 입력하십시오:
OutputAvailable applications:
OpenSSH
다음과 같이 입력하여 방화벽이 SSH 연결을 허용하도록 만들어 다음에 서버에 로그인할 수 있도록 하십시오:
이제 방화벽을 활성화하려면 다음을 입력하십시오:
y
를 입력하고 ENTER
를 눌러 진행합니다. SSH 연결이 여전히 허용되는지 확인하려면 다음을 입력하세요:
OutputStatus: 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 키를 사용하는지에 따라 다릅니다.
루트 계정이 비밀번호 인증을 사용하는 경우
루트 계정에 비밀번호를 사용하여 로그인한 경우 SSH에 비밀번호 인증이 활성화됩니다. 새로운 사용자 계정으로 SSH하려면 새 터미널 세션을 열고 새 사용자 이름으로 SSH를 사용하십시오:
일반 사용자의 암호를 입력한 후 로그인됩니다. 관리자 권한으로 명령을 실행해야하는 경우에는 다음과 같이 명령 앞에 sudo
를 입력하십시오:
각 세션에서 처음으로 sudo
를 사용할 때마다 (그리고 그 후 일정한 간격으로) 일반 사용자의 암호를 입력해야합니다.
서버의 보안을 강화하기 위해 비밀번호 인증 대신 SSH 키를 설정하는 것이 강력히 권장됩니다. 키 기반 인증을 구성하는 방법은 Ubuntu 22.04에서 SSH 키 설정 가이드를 참조하십시오.
루트 계정이 SSH 키 인증을 사용하는 경우
만약 SSH 키를 사용하여 root 계정에 로그인했다면, SSH의 비밀번호 인증은 비활성화됩니다. SSH 키로 보통의 사용자로 로그인하려면 로컬 공개 키의 사본을 새로운 사용자의 ~/.ssh/authorized_keys
파일에 추가해야 합니다.
이미 서버의 root 계정의 ~/.ssh/authorized_keys
파일에 공개 키가 있으므로 현재 세션을 사용하여 해당 파일 및 디렉터리 구조를 새로운 사용자 계정에 복사할 수 있습니다.
올바른 소유권과 권한으로 파일을 복사하는 가장 간단한 방법은 rsync
명령을 사용하는 것입니다. 이 명령은 root 사용자의 .ssh
디렉터리를 복사하여 권한을 보존하고 파일 소유자를 수정하는 등의 작업을 단일 명령으로 수행합니다. 아래 명령어의 강조된 부분을 보통의 사용자 이름에 맞게 변경해야 합니다:
참고: rsync
명령은 슬래시로 끝나는 소스와 대상을 슬래시 없이 끝나는 소스와 대상과 다르게 취급합니다. 아래의 rsync
를 사용할 때 소스 디렉터리 (~/.ssh
)에 슬래시를 추가하지 않았는지 확인하십시오 (~/.ssh/
를 사용하지 않았는지 확인하십시오).
실수로 명령에 슬래시를 추가하면 rsync
가 ~/.ssh
디렉터리 구조 전체를 복사하는 대신 root 계정의 ~/.ssh
디렉터리 내용을 sudo
사용자의 홈 디렉터리로 복사합니다. 파일은 잘못된 위치에 있게 되며 SSH가 이를 찾고 사용할 수 없습니다.
이제 로컬 머신에서 새 터미널 세션을 열고 새 사용자 이름으로 SSH를 사용하세요:
새 사용자 계정으로 패스워드를 사용하지 않고 서버에 연결될 것입니다. 기억하세요, 관리자 권한으로 명령을 실행해야 할 경우 명령 앞에 sudo
를 입력하세요. 이렇게 하면 됩니다:
세션마다(그리고 가끔 가다가) 첫 번째로 sudo
를 사용할 때 일반 사용자 암호를 입력해야 합니다.
여기서부터 어디로 가야 할까요?
이 시점에서 서버에 대한 튼튼한 기반이 마련되었습니다. 이제 서버에 필요한 소프트웨어를 설치할 수 있습니다.
Linux 명령어에 더 익숙해지고 싶다면, Linux 명령 줄 기본 사항을 확인할 수 있습니다.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04