리눅스를 막 설치하고 나면 일단 접속부터 되는 것 같아서 바로 서비스를 올리고 싶어질 때가 많다. 

하지만 이 시점에 몇 가지 기본 설정만 먼저 잡아두면, 나중에 생길 보안 문제나 운영 실수를 꽤 많이 줄일 수 있다.

이번 글은 우분투, 데비안, Rocky Linux 같은 일반적인 리눅스 서버를 처음 설치한 직후 기준으로, 

실제로 먼저 확인해두면 좋은 초기 설정 8가지를 정리한 글이다. VPS이든 홈서버든 공통으로 적용하기 좋다.

왜 설치 직후 설정이 중요한가

리눅스는 설치만 끝났다고 운영 준비까지 끝난 것은 아니다. 

초기 상태 그대로 두면 아래 같은 문제가 자주 생긴다.

  • 패키지가 오래되어 알려진 취약점이 남아 있음
  • 시간대와 시간 동기화가 꼬여 로그 추적이 어려움
  • 관리자 계정과 SSH 설정이 정리되지 않아 보안 위험이 커짐
  • 방화벽 없이 서비스가 외부에 바로 노출됨
  • 장애가 나도 로그와 디스크 상태를 늦게 파악하게 됨

즉, 설치 직후 10~20분만 투자해도 이후 운영 난이도가 꽤 달라진다.

1. 먼저 패키지 업데이트부터 적용하자

가장 먼저 할 일은 기본 패키지 업데이트다.

# Debian / Ubuntu
sudo apt update && sudo apt upgrade -y

# Rocky / RHEL 계열

sudo dnf upgrade -y

설치 이미지가 최신이 아닐 수 있어서, 초기 상태에서 이미 보안 패치가 밀려 있는 경우도 많다.

가능하면 아래도 함께 확인해두는 편이 좋다.

uname -a cat /etc/os-release

이렇게 하면 현재 커널과 배포판 버전을 빠르게 파악할 수 있다.

2. 시간대와 시간 동기화를 바로 맞추자

서버 시간이 맞지 않으면 로그 분석, 스케줄 작업, 인증서 갱신, 장애 추적이 전부 꼬인다.

timedatectl status

sudo timedatectl set-timezone Asia/Seoul

NTP 동기화가 켜져 있는지도 확인한다.

timedatectl

출력에서 System clock synchronized: yes 나 NTP service: active 같은 항목을 보면 된다.

국내에서 쓰는 서버라면 시간대를 Asia/Seoul 로 맞춰두는 것만으로도 로그 읽기가 훨씬 편해진다.

3. 관리자 계정은 root 직접 사용보다 일반 계정 + sudo가 낫다

처음 설치 후 root 계정만 쓰는 경우가 있는데, 장기적으로는 일반 사용자 계정을 만들고

sudo 로 운영하는 편이 안전하다.

sudo adduser deploy

sudo usermod -aG sudo deploy

RHEL 계열이라면 wheel 그룹을 쓰는 경우가 많다.

sudo usermod -aG wheel deploy

이렇게 해두면 아래 장점이 있다.

  • 사용자별 작업 이력 구분이 쉬움
  • root 계정 직접 로그인 의존도를 줄일 수 있음
  • SSH 공개키를 사용자별로 관리하기 좋음

4. SSH 기본 보안 설정을 초기에 정리하자

원격 서버라면 SSH는 거의 필수다. 그래서 설치 직후 가장 먼저 손봐야 하는 설정 중 하나다.

대표적으로 많이 점검하는 항목은 아래와 같다.

PermitRootLogin no

PasswordAuthentication no

PubkeyAuthentication yes

설정을 바꾸기 전에 현재 공개키 로그인 계정이 정상인지 먼저 확인하는 게 중요하다. 바로 반영하기 전에는 문법 검사도 해두는 편이 안전하다.

sudo sshd -t

서비스 재시작 또는 reload 전에 새 세션으로 접속 테스트까지 해두면 더 안전하다.

5. 방화벽은 최소 허용 정책으로 시작하자

서비스를 올리기 전에 어떤 포트를 외부에 열지 먼저 정하는 편이 좋다.

우분투 계열에서는 ufw, RHEL 계열에서는 firewalld 를 많이 쓴다.

예를 들어 SSH만 우선 허용하려면:

# Ubuntu / Debian

sudo ufw allow OpenSSH

sudo ufw enable

sudo ufw status verbose

# Rocky / RHEL

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

sudo firewall-cmd --reload

sudo firewall-cmd --list-all

핵심은 필요한 포트만 열고, 나머지는 기본 차단 상태로 두는 것이다.

6. 자동 업데이트 또는 정기 점검 체계를 정하자

운영 서버를 매번 수동으로만 패치하면 결국 놓치는 시점이 생긴다. 그래서 설치 초기에 자동 업데이트 또는 최소한의 점검 루틴을 정해두는 편이 낫다.

우분투 계열에서는 unattended-upgrades 를 검토할 수 있다.

sudo apt install unattended-upgrades -y

sudo dpkg-reconfigure --priority=low unattended-upgrades

자동 업데이트를 바로 쓰기 부담스럽다면, 대신 아래 정도는 정해두면 좋다.

  • 주 1회 패키지 업데이트 확인
  • 커널 업데이트 후 재부팅 필요 여부 확인
  • 보안 공지 또는 배포판 릴리스 노트 확인

중요한 건 방식보다 패치를 잊지 않는 구조를 만드는 것이다.

7. 디스크, 메모리, 로그 상태를 기본 점검하자

서비스를 올리기 전에 현재 자원 상태를 한 번 확인해두면 이후 비교가 쉬워진다.

df -h

free -h

lsblk

로그 시스템도 간단히 확인해둘 만하다.

journalctl -p err -n 50 --no-pager

여기서 초기에 봐둘 포인트는 아래 정도다.

  • 루트 파티션 여유 공간이 충분한가
  • 스왑이 있는가, 또는 없어도 되는 환경인가
  • 부팅 직후 에러 로그가 쌓여 있지 않은가
  • 마운트 구조가 예상과 같은가

처음부터 현재 상태를 알아두면, 나중에 “원래 이랬나?” 하는 혼란을 줄일 수 있다.

8. 호스트명, 네트워크, 필수 도구를 정리하자

설치 직후 의외로 미루기 쉬운 게 호스트명과 기본 도구 세팅이다. 

하지만 여러 서버를 다루기 시작하면 이 차이가 꽤 커진다.

호스트명은 알아보기 쉽게 정리해두는 편이 좋다.

hostnamectl status sudo hostnamectl set-hostname web-prod-01

네트워크 확인도 기본이다.

ip a ip route ss -lntp

그리고 아래 같은 도구는 초기에 설치해두면 실무에서 편하다.

  • curl
  • vim 또는 nano
  • git
  • htop
  • rsync
  • jq

예를 들면 우분투에서는 아래처럼 정리할 수 있다.

sudo apt install -y curl vim git htop rsync jq

설치 직후 체크리스트로 정리하면

처음 설치한 서버라면 아래 순서로 확인하면 흐름이 깔끔하다.

  1. 패키지 전체 업데이트
  2. 시간대와 NTP 동기화 확인
  3. 일반 관리자 계정 생성 및 sudo 설정
  4. SSH 공개키 로그인과 보안 옵션 점검
  5. 방화벽 최소 허용 정책 적용
  6. 자동 업데이트 또는 정기 패치 루틴 설정
  7. 디스크·메모리·로그 상태 점검
  8. 호스트명, 네트워크, 필수 도구 정리

이 정도만 해도 “설치만 끝난 서버”에서 “운영 가능한 서버”로 한 단계 올라간다.

마무리

리눅스 설치 직후에는 눈에 보이는 서비스부터 올리고 싶지만, 실제로는 기본 설정을 먼저 정리하는 것이 더 큰 시간을 절약해준다. 

특히 업데이트, 시간 동기화, 관리자 계정, SSH, 방화벽만 초기에 바로 잡아도 운영 안정성이 크게 달라진다.

새 서버를 하나 열었다면, 애플리케이션 설치 전에 오늘 정리한 8가지부터 먼저 점검해보자. 

처음 20분이 나중의 장애 대응 시간을 몇 시간씩 아껴줄 수 있다.