웹사이트 검색

새 Ubuntu 14.04 서버에 대한 추가 권장 단계


소개

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

전제 조건 및 목표

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

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

기본 방화벽 구성

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

방화벽을 활성화하거나 다시 로드하기 전에 정책에 대한 예외를 정의하는 규칙을 만듭니다. 먼저 원격 관리를 위한 액세스를 유지할 수 있도록 SSH 연결에 대한 예외를 생성해야 합니다.

SSH 데몬은 기본적으로 포트 22에서 실행되며 ufw는 기본값이 변경되지 않은 경우 이름으로 규칙을 구현할 수 있습니다. 따라서 SSH 포트를 수정하지 않은 경우 다음을 입력하여 예외를 활성화할 수 있습니다.

sudo ufw allow ssh

SSH 데몬이 수신하는 포트를 수정한 경우 TCP 프로토콜과 함께 실제 포트 번호를 지정하여 허용해야 합니다.

sudo ufw allow 4444/tcp

이것은 최소한의 방화벽 구성입니다. SSH 포트의 트래픽만 허용하며 다른 모든 서비스는 액세스할 수 없습니다. 추가 서비스를 실행할 계획이라면 필요한 각 포트에서 방화벽을 열어야 합니다.

기존 HTTP 웹 서버를 실행할 계획이라면 포트 80에 대한 액세스를 허용해야 합니다.

sudo ufw allow 80/tcp

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

sudo ufw allow 443/tcp

SMTP 이메일을 활성화해야 하는 경우 포트 25를 열어야 합니다.

sudo ufw allow 25/tcp

예외 추가를 완료한 후 다음을 입력하여 선택 사항을 검토할 수 있습니다.

sudo ufw show added

모든 것이 정상이면 다음을 입력하여 방화벽을 활성화할 수 있습니다.

sudo ufw enable

선택을 확인하라는 메시지가 표시되므로 계속하려면 "y\를 입력하십시오. 이렇게 하면 지정한 예외가 적용되고 다른 모든 트래픽이 차단되며 부팅 시 방화벽이 자동으로 시작되도록 구성됩니다.

나중에 구성할 수 있는 추가 서비스에 대한 포트를 명시적으로 열어야 합니다. 자세한 내용은 ufw 방화벽 구성에 대한 기사를 확인하십시오.

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

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

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

시간대 구성

첫 번째 단계는 서버의 시간대를 설정하는 것입니다. 이것은 tzdata 패키지를 재구성하여 수행할 수 있는 매우 간단한 절차입니다.

sudo dpkg-reconfigure tzdata

서버의 지역을 선택할 수 있는 메뉴 시스템이 표시됩니다.

지역을 선택한 후 서버에 적합한 특정 시간대를 선택할 수 있습니다.

선택한 시간대를 사용하도록 시스템이 업데이트되고 결과가 화면에 인쇄됩니다.

Current default time zone: 'America/New_York'
Local time is now:      Mon Nov  3 17:00:11 EST 2014.
Universal Time is now:  Mon Nov  3 22:00:11 UTC 2014.

다음으로 NTP 구성으로 이동합니다.

NTP 동기화 구성

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

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

sudo apt-get update
sudo apt-get install ntp

이것이 Ubuntu에서 NTP 동기화를 설정하기 위해 해야 할 전부입니다. 데몬은 부팅할 때마다 자동으로 시작되며 하루 종일 글로벌 NTP 서버와 인라인되도록 시스템 시간을 지속적으로 조정합니다.

NTP 서버에 대해 자세히 알아보려면 여기를 클릭하십시오.

스왑 파일 생성

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

스왑은 일반적으로 기존의 회전하는 하드 드라이브를 사용하는 시스템에 권장되지만 SSD와 함께 스왑을 사용하면 시간이 지남에 따라 하드웨어 성능이 저하되는 문제가 발생할 수 있습니다. 이러한 고려 사항으로 인해 DigitalOcean 또는 SSD 스토리지를 활용하는 다른 공급자에서 스왑을 활성화하지 않는 것이 좋습니다. 그렇게 하면 귀하와 귀하의 이웃에 대한 기본 하드웨어의 안정성에 영향을 미칠 수 있습니다.

서버의 성능을 개선해야 하는 경우 Droplet을 업그레이드하는 것이 좋습니다. 이렇게 하면 일반적으로 더 나은 결과를 얻을 수 있으며 서비스에 영향을 줄 수 있는 하드웨어 문제에 기여할 가능성이 줄어듭니다.

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

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

sudo fallocate -l 4G /swapfile

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

sudo chmod 600 /swapfile

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

sudo mkswap /swapfile

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

sudo swapon /swapfile

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

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

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

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

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

현재 구성의 스냅샷 찍기

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

스냅샷을 준비하려면 명령줄에서 서버를 종료합니다. 실행 중인 시스템의 스냅샷을 찍을 수 있지만 전원을 끄면 파일 시스템의 일관성을 더 잘 보장할 수 있습니다.

sudo poweroff

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

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

추가 리소스 및 다음 단계

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

  • LAMP(Linux, Apache, MySQL/MariaDB, PHP) 스택 설정
  • LEMP(Linux, Nginx, MySQL/MariaDB, PHP) 스택 설정
  • Apache 웹 서버에 WordPress CMS 설치
  • Nginx 웹 서버에 WordPress CMS 설치
  • Apache 웹 서버에 Drupal CMS 설치
  • Node.js 설치
  • Ruby on Rails 및 RVM 설치
  • PHP 프레임워크인 Laravel 설치
  • 인프라 관리를 위한 Puppet 설치

결론

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