
CentOS 8을 사용하여 초기 서버 설치
2022-06-01 last update
9 minutes reading Initial Server Setup CentOS Getting Started CentOS 8 Linux Basics소개
새 CentOS 8 서버를 처음 만들 때 기본 설정의 일부로 가능한 한 빨리 구성 절차를 수행해야 합니다.이것은 서버의 안전성과 가용성을 향상시키고 후속 조작에 튼튼한 기반을 다질 것이다.
1단계 - Root 사용자로 로그인
서버에 로그인하려면 서버의 공용 IP 주소를 알아야 합니다.암호가 필요하거나 SSH 키를 설치하여 인증을 하려면 루트 사용자 계정의 개인 키가 필요합니다.서버에 로그인하지 않은 경우 이 프로세스에 대한 자세한 내용은 설명서 how to connect to your Droplet with SSH을 따라야 할 수도 있습니다.
서버에 연결되지 않은 경우 다음 명령을 사용하여 root 사용자로 로그인합니다 (명령에 강조 표시된 부분을 서버의 공용 IP 주소로 바꿉니다).
- ssh root@your_server_ip
호스트 신뢰성에 대한 경고를 받습니다(나타나는 경우).암호 인증을 사용하는 경우 로그인할 루트 암호를 제공합니다.암호로 보호된 SSH 키를 사용하는 경우 세션에서 키를 처음 사용할 때마다 암호를 입력하라는 메시지가 표시될 수 있습니다.암호를 사용하여 서버에 처음 로그인한 경우 루트 암호를 변경하라는 메시지가 표시될 수도 있습니다.루트 디렉토리 정보
루트 사용자는 Linux 환경의 관리 사용자로 매우 광범위한 권한을 가지고 있다.루트 계정의 권한이 높아져서 정기적으로 사용하는 것을 권장하지 않습니다.루트 계정의 고유한 일부 기능은 의외의 변경이라도 매우 파괴적인 변경을 할 수 있기 때문이다.
따라서 다음 단계는 대체 사용자 계정을 만들어 일상적인 업무의 영향 범위를 줄이는 것이다.필요할 때 이 계정은 더 많은 권한을 얻을 수 있습니다.
2단계 - 새 사용자 만들기
루트 사용자로 로그인하면 새 사용자 계정을 만들 수 있습니다. 지금부터 이 계정으로 로그인할 것입니다.
이 예에서는 sammy라는 새 사용자를 만들었지만, 원하는 사용자 이름으로 바꾸어야 합니다.
- adduser sammy
다음은 sammy
사용자에게 강력한 암호를 설정합니다.- passwd sammy
암호를 두 번 입력하라는 메시지가 표시됩니다.이렇게 하면 사용자는 사용할 수 있지만, 우선 sudo
명령을 사용할 수 있는 추가 권한을 부여합니다.필요할 때 루트 사용자로 명령을 실행할 수 있도록 합니다.3단계 - 관리 권한 부여
이제 일반 계정 권한이 있는 새 사용자 계정이 생겼습니다.그러나 우리는 때때로 관리 임무를 수행해야 할 수도 있다.
일반 사용자를 종료하고 루트 계정으로 다시 로그인하는 것을 피하기 위해서, 우리는 일반 계정에 소위'슈퍼 사용자'나 루트 권한을 설정할 수 있습니다.이것은 일반 사용자가 관리 권한으로 명령을 실행하고 단어
sudo
을 각 명령 앞에 놓을 수 있도록 합니다.이러한 권한을 새 사용자에게 추가하려면 휠 그룹에 새 사용자를 추가해야 합니다.기본적으로 CentOS 8에서 휠 그룹에 속한 사용자는
sudo
명령을 사용할 수 있습니다.root 사용자로서 이 명령을 실행하면 새 사용자를 휠 그룹에 추가합니다. 강조 표시된 단어를 새 사용자 이름으로 대체합니다.
- usermod -aG wheel sammy
이제 일반 사용자로 로그인할 때 명령 전에 sudo
을 입력하여 수퍼유저 권한을 사용하여 작업을 수행할 수 있습니다.단계 4 - 기본 방화벽 설정
방화벽은 서버에 기본적인 보안 수준을 제공한다.이러한 애플리케이션은 서버의 각 포트에 대한 트래픽을 거부하지만 명시적으로 승인된 포트/서비스는 제외합니다.CentOS에는
firewalld
이라는 서비스가 있습니다.firewall-cmd
이라는 도구는 firewalld
방화벽 정책을 설정하는 데 사용됩니다.참고: 서버가 Digital Ocean에서 실행되는 경우 DigitalOcean Cloud Firewalls이 아닌
firewalld
을 사용할 수 있습니다.우리는 디버깅하기 어려운 충돌 규칙을 피하기 위해 방화벽을 한 번에 하나만 사용할 것을 건의합니다.먼저
firewalld
을 설치합니다.- dnf install firewalld -y
기본 firewalld
구성은 ssh
개의 연결을 허용하므로 방화벽을 즉시 열 수 있습니다.- systemctl start firewalld
서비스가 시작되었는지 확인하려면 서비스 상태를 확인하십시오.- systemctl status firewalld
Output● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago
Docs: man:firewalld(1)
Main PID: 13180 (firewalld)
Tasks: 2 (limit: 5059)
Memory: 22.4M
CGroup: /system.slice/firewalld.service
└─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
이것은 active
과 enabled
입니다. 이것은 서버가 다시 시작되면 기본적으로 시작된다는 것을 의미합니다.현재 서비스가 시작되고 실행되었습니다.
firewall-cmd
유틸리티를 사용하여 방화벽의 정책 정보를 얻고 설정할 수 있습니다.먼저 허용된 서비스를 나열합니다.
- firewall-cmd --permanent --list-all
Outputpublic (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
사용 가능한 다른 서비스를 이름별로 보려면 다음을 입력합니다.- firewall-cmd --get-services
허용되는 서비스를 추가하려면 --add-service
플래그를 사용합니다.- firewall-cmd --permanent --add-service=http
이것은 http
서비스를 추가하고 TCP 데이터를 포트 80
에 전송할 수 있도록 합니다.방화벽을 다시 로드하면 구성이 업데이트됩니다.- firewall-cmd --reload
나중에 설정할 수 있는 다른 서비스에 대해서는 방화벽을 현저하게 열어야 한다는 것을 기억하십시오. (서비스나 포트가 있습니다.)단계 5 - 일반 사용자에 대한 외부 액세스 활성화
현재 우리는 일상적으로 사용하는 일반적인 비root 사용자가 있습니다. 서버에 SSH를 사용할 수 있는지 확인해야 합니다.
주의: 로그인하고 새 사용자에게
sudo
을 사용할 수 있는지 확인하기 전에 루트 사용자로 로그인하는 것을 권장합니다.이렇게 하면 문제가 있으면 루트 사용자로서 문제를 해결하고 필요한 변경을 할 수 있습니다.Digital Ocean Droplet을 사용하고 루트 SSH 연결에 문제가 있으면 log into the Droplet using the DigitalOcean Console을 사용할 수 있습니다.새 사용자에게 SSH 액세스를 구성하는 과정은 서버의 루트 계정에서 암호를 사용하는지 SSH 키를 사용하는지 여부에 따라 달라집니다.
루트 계정에서 암호 인증을 사용하는 경우
루트 계정에 암호를 사용하여 로그인하면 SSH에 암호 인증이 활성화됩니다.새 터미널 세션을 열고 새 사용자 이름과 함께 SSH를 사용하여 새 사용자 계정에 SSH를 연결할 수 있습니다.
- ssh sammy@your_server_ip
일반 사용자 암호를 입력하면 로그인합니다.관리 권한으로 명령을 실행해야 할 경우 명령 전에 다음과 같이 sudo
을 입력하십시오.- sudo command_to_run
세션이 sudo
을 처음 사용할 때마다 일반 사용자 암호를 입력하라는 메시지가 표시됩니다.서버의 보안을 강화하기 위해 암호 인증이 아닌 SSH 키를 설정하는 것이 좋습니다.키 기반 인증을 설정하는 방법은 설명서 setting up SSH keys on CentOS 8에 따라 확인하십시오.
루트 계정에서 SSH 키 인증을 사용하는 경우
루트 계정에 SSH 키를 사용하여 로그인하면 SSH의 암호 확인이 해제됩니다.새 사용자의
~/.ssh/authorized_keys
파일에 공개 키 사본을 추가해야 로그인할 수 있습니다.공개 키는 서버의 루트 계정에 있는
~/.ssh/authorized_keys
파일에 있기 때문에 이 파일과 디렉터리 구조를 새 사용자 계정으로 복사할 수 있습니다.올바른 소유권과 권한이 있는 파일을 복사하려면
rsync
명령을 사용하는 것이 가장 간단한 방법입니다.이것은 하나의 명령에서 루트 사용자의 .ssh
디렉터리, 보존 권한 및 수정 파일 소유자를 복사합니다.일반 사용자 이름과 일치하도록 다음 명령의 강조 표시 부분을 변경해야 합니다.참고:
rsync
명령은 꼬리 슬래시로 끝나는 소스와 대상을 처리하는 것과 꼬리 슬래시가 없는 소스와 대상을 처리합니다.아래에서 rsync
을 사용할 때 소스 디렉토리(~/.ssh
)에 끝 슬래시가 포함되어 있지 않은지 확인합니다(~/.ssh/
).실수로 명령에 꼬리 슬래시가 추가되면
rsync
은 루트 계정의 ~/.ssh
디렉터리의 내용을 전체 sudo
디렉터리 구조를 복사하지 않고 ~/.ssh
사용자의 홈 디렉터리로 복사합니다.이러한 파일은 잘못된 위치에 있고 SSH는 해당 파일을 찾아 사용할 수 없습니다.- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
이제 로컬 컴퓨터의 새 터미널로 돌아가서 비 루트 사용자와 새 SSH 세션을 엽니다.- ssh sammy@your_server_ip
암호를 사용하지 않고 새 사용자 계정에 로그인해야 합니다.관리 권한으로 명령을 실행해야 할 경우 명령 전에 다음과 같이 sudo
을 입력하십시오.- sudo command_to_run
세션이 sudo
을 처음 사용할 때마다 일반 사용자 암호를 입력하라는 메시지가 표시됩니다.결론
이 때, 당신은 이미 서버를 위해 튼튼한 기초를 닦았습니다.이제 서버에 필요한 소프트웨어를 설치할 수 있습니다.