웹사이트 검색

Debian 9로 초기 서버 설정


소개

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

1단계 — 루트로 로그인

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

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

  1. ssh root@your_server_ip

호스트 인증에 대한 경고가 나타나면 수락합니다. 암호 인증을 사용하는 경우 로그인할 때 루트 암호를 제공하십시오. 암호로 보호된 SSH 키를 사용하는 경우 각 세션에서 키를 처음 사용할 때 암호를 입력하라는 메시지가 표시될 수 있습니다. 암호를 사용하여 서버에 처음 로그인하는 경우 루트 암호를 변경하라는 메시지가 표시될 수도 있습니다.

루트 정보

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

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

2단계 - 새 사용자 만들기

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

참고: 일부 환경에서는 LDAP와 같은 이름 서버에 대한 요청 속도를 높이기 위해 unscd라는 패키지가 기본적으로 설치될 수 있습니다. 현재 데비안에서 사용할 수 있는 가장 최신 버전에는 특정 명령(아래의 adduser 명령과 같은)이 다음과 같은 추가 출력을 생성하게 하는 버그가 포함되어 있습니다.

sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting

이러한 메시지는 무해하지만 이를 피하려면 사용자 정보에 LDAP와 같은 시스템을 사용할 계획이 없다면 unscd 패키지를 제거하는 것이 안전합니다.

  1. apt remove unscd

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

  1. adduser sammy

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

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

3단계 - 관리 권한 부여

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

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

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

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

  1. usermod -aG sudo sammy

이제 일반 사용자로 로그인하면 명령 앞에 sudo를 입력하여 수퍼유저 권한으로 작업을 수행할 수 있습니다.

4단계 - 기본 방화벽 설정

Debian 서버는 방화벽을 사용하여 특정 서비스에 대한 연결만 허용되도록 할 수 있습니다. iptables 방화벽이 기본적으로 설치되지만 데비안은 특정 방화벽을 강력하게 권장하지 않습니다. 이 가이드에서는 정책을 설정하고 예외를 관리하는 데 도움이 되도록 UFW 방화벽을 설치 및 사용합니다.

apt 패키지 관리자를 사용하여 UFW를 설치할 수 있습니다. 사용 가능한 패키지에 대한 최신 정보를 검색하도록 로컬 인덱스를 업데이트한 다음 다음을 입력하여 방화벽을 설치합니다.

  1. apt update
  2. apt install ufw

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

방화벽 프로필을 통해 UFW는 이름별로 애플리케이션에 대한 방화벽 규칙 세트를 관리할 수 있습니다. 일부 공통 소프트웨어에 대한 프로필은 기본적으로 UFW와 함께 번들로 제공되며 패키지는 설치 프로세스 중에 UFW에 추가 프로필을 등록할 수 있습니다. 지금 서버에 연결할 수 있는 서비스인 OpenSSH에는 사용할 수 있는 방화벽 프로필이 있습니다.

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

  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 작업을 배울 수 있습니다.

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

이제 매일 사용하는 일반 사용자가 있으므로 계정에 직접 SSH로 연결할 수 있는지 확인해야 합니다.

참고: 새 사용자로 로그인하여 sudo를 사용할 수 있는지 확인할 때까지 루트로 로그인 상태를 유지하는 것이 좋습니다. 이렇게 하면 문제가 있는 경우 문제를 해결하고 필요한 사항을 루트로 변경할 수 있습니다. DigitalOcean Droplet을 사용 중이고 루트 SSH 연결에 문제가 있는 경우 DigitalOcean 콘솔을 사용하여 Droplet에 로그인할 수 있습니다.

새 사용자에 대한 SSH 액세스를 구성하는 프로세스는 서버의 루트 계정이 인증에 암호를 사용하는지 아니면 SSH 키를 사용하는지에 따라 다릅니다.

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

암호를 사용하여 루트 계정에 로그인한 경우 SSH에 대한 암호 인증이 활성화됩니다. 새 터미널 세션을 열고 새 사용자 이름으로 SSH를 사용하여 새 사용자 계정에 SSH로 연결할 수 있습니다.

  1. ssh sammy@your_server_ip

일반 사용자의 비밀번호를 입력하면 로그인됩니다. 관리자 권한으로 명령을 실행해야 하는 경우 다음과 같이 명령 앞에 sudo를 입력하십시오.

  1. sudo command_to_run

각 세션에서 처음으로 sudo를 사용할 때(그리고 이후에도 정기적으로) 일반 사용자 비밀번호를 입력하라는 메시지가 표시됩니다.

서버의 보안을 강화하려면 암호 인증을 사용하는 대신 SSH 키를 설정하는 것이 좋습니다. 키 기반 인증을 구성하는 방법을 알아보려면 Debian 9에서 SSH 키 설정에 대한 가이드를 따르십시오.

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

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

공개 키가 이미 서버에 있는 루트 계정의 ~/.ssh/authorized_keys 파일에 있으므로 cp 명령. 그런 다음 chown 명령을 사용하여 파일의 소유권을 조정할 수 있습니다.

일반 사용자의 이름과 일치하도록 아래 명령의 강조 표시된 부분을 변경해야 합니다.

  1. cp -r ~/.ssh /home/sammy
  2. chown -R sammy:sammy /home/sammy/.ssh

이제 새 터미널 세션을 열고 새 사용자 이름으로 SSH를 사용합니다.

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

각 세션에서 처음으로 sudo를 사용할 때(그리고 이후에도 정기적으로) 일반 사용자 비밀번호를 입력하라는 메시지가 표시됩니다.

6단계 - 선택적 구성 완료

이제 강력한 기본 구성이 있으므로 시스템에 더 쉽게 액세스할 수 있도록 몇 가지 선택적 단계를 고려할 수 있습니다. 다음 섹션에서는 사용성에 중점을 둔 몇 가지 추가 조정을 다룹니다.

매뉴얼 페이지 설치

데비안은 대부분의 소프트웨어에 대한 광범위한 설명서를 man 페이지 형식으로 제공합니다. 그러나 man 명령이 최소 설치에 기본적으로 항상 포함되는 것은 아닙니다.

man-db 패키지를 설치하여 man 명령과 수동 데이터베이스를 설치합니다.

  1. sudo apt install man-db

이제 구성 요소에 대한 설명서를 보려면 다음을 입력할 수 있습니다.

  1. man command

예를 들어 top 명령에 대한 설명서를 보려면 다음을 입력하십시오.

  1. man top

Debian 리포지토리에 있는 대부분의 패키지에는 설치의 일부로 매뉴얼 페이지가 포함되어 있습니다.

기본 편집기 변경

데비안은 다양한 텍스트 편집기를 제공하며 그 중 일부는 기본 시스템에 포함되어 있습니다. visudosystemctl edit와 같은 통합 편집기 지원이 있는 명령은 시스템 기본 편집기에 매핑된 editor 명령에 텍스트를 전달합니다. 기본 설정에 따라 기본 편집기를 설정하면 시스템을 보다 쉽게 구성하고 좌절을 피할 수 있습니다.

선호하는 편집기가 기본적으로 설치되지 않은 경우 apt를 사용하여 먼저 설치하십시오.

  1. sudo apt install your_preferred_editor

다음으로 현재 기본값을 보고 update-alternatives 명령을 사용하여 선택 항목을 수정할 수 있습니다.

  1. sudo update-alternatives --config editor

이 명령은 기본값을 변경하라는 프롬프트와 함께 알고 있는 편집기 테이블을 표시합니다.

Output
There are 8 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/joe 70 auto mode 1 /bin/nano 40 manual mode 2 /usr/bin/jmacs 50 manual mode 3 /usr/bin/joe 70 manual mode 4 /usr/bin/jpico 50 manual mode 5 /usr/bin/jstar 50 manual mode 6 /usr/bin/rjoe 25 manual mode 7 /usr/bin/vim.basic 30 manual mode 8 /usr/bin/vim.tiny 15 manual mode Press <enter> to keep the current choice[*], or type selection number:

맨 왼쪽 열의 별표는 현재 선택 항목을 나타냅니다. 기본값을 변경하려면 선호하는 편집기의 "선택\ 번호를 입력하고 Enter를 누르십시오. 예를 들어 위의 표에서 nano를 기본 편집기로 사용하려면 1을 선택합니다:

Output
Press <enter> to keep the current choice[*], or type selection number: 1 update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in manual mode

이제부터는 visudosystemctl edit와 같은 명령이나 editor 명령이 호출될 때 선호하는 편집기가 사용됩니다.

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

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