웹사이트 검색

새로운 CentOS 7 서버에 대한 추가 권장 단계


소개

새 서버에 대한 최소 구성을 설정한 후 대부분의 경우 권장되는 몇 가지 추가 단계가 있습니다. 이 가이드에서는 몇 가지 권장되지만 선택적 절차를 다루어 서버 구성을 계속합니다.

전제 조건 및 목표

이 가이드를 시작하기 전에 CentOS 7 초기 서버 설정 가이드를 실행해야 합니다. 이는 사용자 계정을 설정하고 sudo로 권한 상승을 구성하고 보안을 위해 SSH를 잠그기 위해 필요합니다.

위의 가이드를 완료하면 이 문서를 계속 진행할 수 있습니다. 이 가이드에서는 일부 선택 사항이지만 권장되는 구성 요소를 구성하는 데 중점을 둘 것입니다. 여기에는 방화벽 및 스왑 파일로 시스템을 설정하고 네트워크 시간 프로토콜 동기화를 구성하는 작업이 포함됩니다.

기본 방화벽 구성

방화벽은 서버에 기본 수준의 보안을 제공합니다. 이러한 응용 프로그램은 승인한 포트/서비스를 제외하고 서버의 모든 포트에 대한 트래픽을 거부합니다. CentOS는 firewalld라는 방화벽과 함께 제공됩니다. firewall-cmd라는 도구를 사용하여 방화벽 정책을 구성할 수 있습니다. 우리의 기본 전략은 개방할 타당한 이유가 없는 모든 것을 잠그는 것입니다. 먼저 firewalld를 설치합니다.

  1. sudo yum install firewalld

firewalld 서비스에는 현재 연결을 끊지 않고 수정할 수 있는 기능이 있으므로 예외를 생성하기 전에 켤 수 있습니다.

  1. sudo systemctl start firewalld

이제 서비스가 실행 중이므로 firewall-cmd 유틸리티를 사용하여 방화벽에 대한 정책 정보를 가져오고 설정할 수 있습니다. firewalld 애플리케이션은 "zones\ 개념을 사용하여 네트워크에 있는 다른 호스트의 신뢰성에 레이블을 지정합니다. 이 레이블 지정을 통해 네트워크를 신뢰하는 정도에 따라 다른 규칙을 할당할 수 있습니다.

이 가이드에서는 기본 영역에 대한 정책만 조정합니다. 방화벽을 다시 로드하면 인터페이스에 적용되는 영역이 됩니다. 승인된 서비스에 대해 방화벽에 예외를 추가하는 것부터 시작해야 합니다. 서버에 대한 원격 관리 액세스를 유지해야 하기 때문에 이들 중 가장 필수적인 것은 SSH입니다.

SSH 데몬이 실행 중인 포트를 수정하지 않은 경우 다음을 입력하여 이름으로 서비스를 활성화할 수 있습니다.

  1. sudo firewall-cmd --permanent --add-service=ssh

서버의 SSH 포트를 변경한 경우 새 포트를 명시적으로 지정해야 합니다. 서비스에서 사용하는 프로토콜도 포함해야 합니다. 새 포트를 사용하기 위해 SSH 서버가 이미 다시 시작된 경우에만 다음을 입력하십시오.

  1. sudo firewall-cmd --permanent --remove-service=ssh
  2. sudo firewall-cmd --permanent --add-port=4444/tcp

이것은 서버에 대한 관리 액세스를 유지하는 데 필요한 최소한의 것입니다. 추가 서비스를 실행하려는 경우 해당 서비스에 대한 방화벽도 열어야 합니다.

기존 HTTP 웹 서버를 실행할 계획이라면 http 서비스를 활성화해야 합니다.

  1. sudo firewall-cmd --permanent --add-service=http

SSL/TLS가 활성화된 웹 서버를 실행하려는 경우 https에 대한 트래픽도 허용해야 합니다.

  1. sudo firewall-cmd --permanent --add-service=https

SMTP 이메일을 활성화해야 하는 경우 다음을 입력할 수 있습니다.

  1. sudo firewall-cmd --permanent --add-service=smtp

이름으로 활성화할 수 있는 추가 서비스를 보려면 다음을 입력하십시오.

  1. sudo firewall-cmd --get-services

완료되면 다음을 입력하여 구현될 예외 목록을 볼 수 있습니다.

  1. sudo firewall-cmd --permanent --list-all

변경 사항을 구현할 준비가 되면 방화벽을 다시 로드합니다.

  1. sudo firewall-cmd --reload

테스트 후 모든 것이 예상대로 작동하면 부팅 시 방화벽이 시작되는지 확인해야 합니다.

  1. sudo systemctl enable firewalld

나중에 구성할 수 있는 추가 서비스에 대해 방화벽(서비스 또는 포트 포함)을 명시적으로 열어야 합니다.

시간대 및 네트워크 시간 프로토콜 동기화 구성

다음 단계는 서버의 현지화 설정을 조정하고 NTP(Network Time Protocol) 동기화를 구성하는 것입니다.

첫 번째 단계는 서버가 올바른 시간대에서 작동하는지 확인하는 것입니다. 두 번째 단계에서는 시스템 시계를 NTP 서버의 글로벌 네트워크에서 유지 관리하는 표준 시간과 동기화하도록 시스템을 구성합니다. 이렇게 하면 동기화되지 않은 시계에서 발생할 수 있는 일관되지 않은 동작을 방지하는 데 도움이 됩니다.

시간대 구성

첫 번째 단계는 서버의 시간대를 설정하는 것입니다. 이는 timedatectl 명령을 사용하여 수행할 수 있는 매우 간단한 절차입니다.

먼저 다음을 입력하여 사용 가능한 시간대를 살펴보십시오.

  1. sudo timedatectl list-timezones

이렇게 하면 서버에서 사용할 수 있는 시간대 목록이 표시됩니다. 서버에 맞는 지역/시간대 설정을 찾으면 다음을 입력하여 설정합니다.

  1. sudo timedatectl set-timezone region/timezone

예를 들어 미국 동부 시간으로 설정하려면 다음과 같이 입력하면 됩니다.

  1. sudo timedatectl set-timezone America/New_York

선택한 시간대를 사용하도록 시스템이 업데이트됩니다. 다음을 입력하여 확인할 수 있습니다.

  1. sudo timedatectl

NTP 동기화 구성

이제 시간대를 설정했으므로 NTP를 구성해야 합니다. 이렇게 하면 컴퓨터가 다른 서버와 동기화 상태를 유지할 수 있으므로 정확한 시간에 의존하는 작업의 예측 가능성이 높아집니다.

NTP 동기화를 위해 CentOS의 기본 리포지토리에서 설치할 수 있는 ntp라는 서비스를 사용합니다.

  1. sudo yum install ntp

다음으로 이 세션에 대한 서비스를 시작해야 합니다. 또한 서버가 부팅될 때마다 자동으로 시작되도록 서비스를 활성화합니다.

  1. sudo systemctl start ntpd
  2. sudo systemctl enable ntpd

이제 서버가 자동으로 시스템 시계를 수정하여 전역 서버에 맞춥니다.

스왑 파일 생성

Linux 서버에 "스왑\을 추가하면 시스템이 실행 중인 프로그램의 자주 액세스하지 않는 정보를 RAM에서 디스크의 위치로 이동할 수 있습니다. 디스크에 저장된 데이터에 액세스하는 것은 RAM에 액세스하는 것보다 훨씬 느리지만 스왑을 사용할 수 있는 경우가 많습니다. 응용 프로그램이 활성 상태로 유지되는 것과 충돌하는 것의 차이 이것은 시스템에서 데이터베이스를 호스트하려는 경우에 특히 유용합니다.

스왑 공간의 최적 크기에 대한 조언은 참조한 소스에 따라 크게 다릅니다. 일반적으로 시스템의 RAM 양과 같거나 두 배의 양이 좋은 출발점입니다.

fallocate 유틸리티를 사용하여 스왑 파일에 사용할 공간을 할당하십시오. 예를 들어 4GB 파일이 필요한 경우 다음을 입력하여 /swapfile에 있는 스왑 파일을 만들 수 있습니다.

  1. sudo fallocate -l 4G /swapfile

파일을 만든 후에는 다른 사용자나 프로세스가 파일에 기록된 내용을 볼 수 없도록 파일에 대한 액세스를 제한해야 합니다.

  1. sudo chmod 600 /swapfile

이제 올바른 권한을 가진 파일이 있습니다. 스왑을 위해 파일을 포맷하도록 시스템에 지시하려면 다음을 입력할 수 있습니다.

  1. sudo mkswap /swapfile

이제 다음을 입력하여 스왑 파일을 사용할 수 있음을 시스템에 알립니다.

  1. sudo swapon /swapfile

우리 시스템은 이 세션에 대해 스왑 파일을 사용하고 있지만 서버가 부팅 시 자동으로 이 작업을 수행하도록 시스템 파일을 수정해야 합니다. 다음을 입력하면 됩니다.

  1. sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

이렇게 추가하면 시스템이 부팅할 때마다 자동으로 스왑 파일을 사용해야 합니다.

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

이제 Linux 서버에 대한 매우 적절한 시작 설정이 있습니다. 여기에서 갈 수 있는 곳이 꽤 있습니다. 먼저 현재 구성에서 서버의 스냅샷을 찍을 수 있습니다.

현재 구성의 스냅샷 찍기

구성에 만족하고 이를 향후 설치의 기반으로 사용하려는 경우 DigitalOcean 제어판을 통해 서버의 스냅샷을 찍을 수 있습니다. 2016년 10월부터 스냅샷 비용은 파일 시스템 내에서 사용된 공간의 양을 기준으로 매월 기가바이트당 $0.05입니다.

이렇게 하려면 명령줄에서 서버를 종료합니다. 실행 중인 시스템의 스냅샷을 찍을 수 있지만 전원을 끄면 디스크의 파일이 모두 일관된 상태로 유지됩니다.

  1. sudo poweroff

이제 DigitalOcean 제어판에서 서버의 "Snapshots\ 탭을 방문하여 스냅샷을 찍을 수 있습니다.

스냅샷을 만든 후 생성 프로세스 중에 이미지에 대한 "내 스냅샷\ 탭에서 스냅샷을 선택하여 향후 설치를 위한 기반으로 해당 이미지를 사용할 수 있습니다.

추가 리소스 및 다음 단계

여기에서 경로는 전적으로 서버에서 수행하려는 작업에 따라 달라집니다. 아래 가이드 목록은 완전하지는 않지만 사용자가 다음에 전환하는 보다 일반적인 구성 중 일부를 나타냅니다.

  • LAMP(Linux, Apache, MySQL/MariaDB, PHP) 스택 설정
  • LEMP(Linux, Nginx, MySQL/MariaDB, PHP) 스택 설정
  • WordPress CMS 설치
  • Node.js 설치
  • 인프라 관리를 위한 Puppet 설치

결론

이 시점에서 새 서버를 위한 견고한 기반을 구성하는 방법을 알아야 합니다. 다음 단계에 대한 좋은 아이디어가 있기를 바랍니다. 서버에서 구현할 수 있는 더 많은 아이디어를 보려면 사이트를 자유롭게 탐색하십시오.