웹사이트 검색

CentOS 7을 사용한 초기 서버 설정


소개

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

1단계 — 루트 로그인

서버에 로그인하려면 서버의 공용 IP 주소와 "root\ 사용자 계정의 암호를 알아야 합니다. 아직 서버에 로그인하지 않은 경우 이 시리즈의 첫 번째 자습서를 따라할 수 있습니다. 이 프로세스를 자세히 다루는 SSH를 사용하여 Droplet에 연결하는 방법.

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

  1. ssh root@SERVER_IP_ADDRESS

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

루트 정보

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

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

2단계 - 새 사용자 만들기

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

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

  1. adduser demo

다음으로 새 사용자에게 암호를 할당합니다(다시 "demo\를 방금 생성한 사용자로 바꿉니다).

  1. passwd demo

강력한 암호를 입력하고 다시 반복하여 확인하십시오.

3단계 - 루트 권한

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

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

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

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

  1. gpasswd -a demo wheel

이제 사용자는 수퍼유저 권한으로 명령을 실행할 수 있습니다! 작동 방식에 대한 자세한 내용은 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 demo@SERVER_IP_ADDRESS

프롬프트에서 비밀번호를 제공하면 공개 키가 원격 사용자의 .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 키를 사용하여 새 원격 사용자로 인증하려면 사용자의 홈 디렉토리에 있는 특수 파일에 공개 키를 추가해야 합니다.

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

  1. su - demo

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

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

  1. mkdir .ssh
  2. chmod 700 .ssh

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

  1. vi .ssh/authorized_keys

i를 눌러 삽입 모드로 들어간 다음 공개 키(클립보드에 있어야 함)를 편집기에 붙여넣어 입력합니다. 이제 삽입 모드를 종료하려면 ESC를 누르십시오.

:x를 입력한 다음 ENTER를 입력하여 파일을 저장하고 종료합니다.

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

  1. chmod 600 .ssh/authorized_keys

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

  1. exit

이제 개인 키를 인증으로 사용하여 새 사용자로 SSH 로그인할 수 있습니다.

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

5단계 - SSH 데몬 구성

이제 새 계정이 있으므로 SSH 데몬 구성(원격 로그인을 허용하는 프로그램)을 수정하여 루트 계정에 대한 원격 SSH 액세스를 허용하지 않도록 서버를 약간 보호할 수 있습니다.

루트로 텍스트 편집기를 사용하여 구성 파일을 열어 시작합니다.

  1. vi /etc/ssh/sshd_config

여기에는 SSH를 통한 루트 로그인을 비활성화하는 옵션이 있습니다. 이제 일반 사용자 계정을 통해 서버에 액세스하고 필요할 때 권한을 에스컬레이션할 수 있으므로 일반적으로 더 안전한 설정입니다.

원격 루트 로그인을 비활성화하려면 다음과 같은 줄을 찾아야 합니다.

#PermitRootLogin yes

힌트: 이 행을 검색하려면 /PermitRoot를 입력한 다음 ENTER를 누르십시오. 그러면 커서가 해당 행의 "P\ 문자로 이동해야 합니다.

"#\ 기호를 삭제하여 행의 주석 처리를 제거하십시오(Shift-x 누름).

이제 c를 눌러 커서를 "yes\로 이동합니다.

이제 "yes\를 cw를 누른 다음 "no\를 입력하여 바꾸십시오. 편집이 완료되면 Esc를 누르십시오. 다음과 같아야 합니다.

PermitRootLogin no

모든 서버에서 원격 루트 로그인을 비활성화하는 것이 좋습니다!

:x를 입력한 다음 ENTER를 입력하여 파일을 저장하고 종료합니다.

SSH 새로고침

이제 변경 사항을 적용했으므로 새 구성을 사용할 수 있도록 SSH 서비스를 다시 시작해야 합니다.

SSH를 다시 시작하려면 다음을 입력하십시오.

  1. systemctl reload sshd

이제 서버에서 로그아웃하기 전에 새 구성을 테스트해야 합니다. 새 연결이 성공적으로 설정될 수 있음을 확인할 수 있을 때까지 연결을 끊고 싶지 않습니다.

새 터미널 창을 엽니다. 새 창에서 서버에 대한 새 연결을 시작해야 합니다. 이번에는 루트 계정을 사용하는 대신 새로 만든 계정을 사용하려고 합니다.

위에서 구성한 서버의 경우 이 명령을 사용하여 연결합니다. 적절한 경우 자신의 정보를 대체하십시오.

  1. ssh demo@SERVER_IP_ADDRESS

참고: PuTTY를 사용하여 서버에 연결하는 경우 서버의 현재 구성과 일치하도록 세션의 포트 번호를 업데이트해야 합니다.

구성한 새 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음 새 사용자로 로그인됩니다.

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

  1. sudo command_to_run

모두 정상이면 다음을 입력하여 세션을 종료할 수 있습니다.

  1. exit

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

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

서버로 수행할 작업이 확실하지 않은 경우 새 CentOS 7 서버에 대한 추가 권장 단계에 대한 이 시리즈의 다음 자습서를 확인하십시오. fail2ban을 활성화하여 무차별 대입 공격, 기본 방화벽 설정, NTP 및 스왑 파일의 효과를 줄이는 것과 같은 내용을 다룹니다. 또한 일반 웹 응용 프로그램을 설정하는 방법을 보여 주는 자습서에 대한 링크도 제공합니다.

탐색만 하고 싶다면 나머지 LEMP 스택을 살펴보십시오.