카테고리 없음

리눅스 우분투 서버 기초 초기 설정 및 필수 보안 세팅 가이드

14722 2026. 8. 7. 11:44

새로운 리눅스 우분투(Ubuntu) 서버를 할당받거나 설치한 직후, 가장 먼저 진행해야 하는 작업이 바로 기초 초기 설정과 보안 세팅입니다. Initial Server Setup 과정 없이 기본 상태(root 계정 및 기본 포트)로 서버를 외부에 노출할 경우, 불과 몇 시간 이내에 무차별 대입 공격(Brute Force Attack)이나 악성 스크립트의 표적이 될 수 있습니다.

이번 글에서는 우분투 서버를 개설한 후 안정적이고 안전한 시스템 운영을 위해 반드시 적용해야 하는 필수 초기 설정 6단계를 아주 쉽게 정리해 드리겠습니다.

1. 시스템 패키지 최신 업데이

서버에 처음 접속하면 가장 먼저 서버 내의 모든 패키지를 최신 버전으로 업그레이드해야 합니다. 알려진 보안 취약점을 해결하는 가장 기본적인 단계입니다.

Bash
 
# 최신 패키지 목록 업데이트 및 설치된 패키지 업그레이드
sudo apt update && sudo apt upgrade -y
  • apt update: 패키지 목록을 최신 상태로 갱신합니다.
  • apt upgrade: 실제로 설치된 프로그램들을 최신 버전으로 설치합니다.

2. 일반 사용자 계정 생성 및 sudo 권한 부여

최고 관리자 계정인 root로 계속 작업하는 것은 매우 위험합니다. 명령어 하나를 잘못 입력하면 시스템 전체가 날아갈 수 있기 때문에, 일반 작업용 사용자 계정을 따로 만들고 필요할 때만 관리자 권한(sudo)을 사용하는 것이 표준입니다.

Bash
 
# 1. 새로운 사용자 생성 (예: myuser)
sudo adduser myuser

# 2. 새로 생성한 사용자에게 sudo (관리자) 그룹 권한 부여
sudo usermod -aG sudo myuser

계정 생성이 완료되면 su - myuser 명령어로 새로 만든 계정에 로그인하여 작업이 정상적으로 진행되는지 확인합니다.

3. SSH 기본 포트 변경 및 root 로그인 차단

해커들이 가장 흔하게 공격하는 통로는 SSH 서비스의 기본 포트인 22번 포트root 계정입니다. 이 두 가지를 변경/차단하는 것만으로도 대부분의 자동화된 공격을 막을 수 있습니다.

Bash
 
# SSH 설정 파일 편집기 열기
sudo nano /etc/ssh/sshd_config

설정 파일 안에서 다음 내용들을 찾아 변경해 줍니다.

Nginx
 
# 1. 기본 포트 변경 (22번 대신 10000~65535 사이의 안 쓰는 포트로 지정 예: 2222)
Port 2222

# 2. root 계정 직접 로그인 금지 설정
PermitRootLogin no

수정이 완료되면 저장(Ctrl + O 후 Enter)하고 나간 뒤(Ctrl + X), SSH 서비스를 재시작합니다.

Bash
 
sudo systemctl restart ssh

⚠️ 주의: SSH 재시작 후 기존 접속 창을 닫지 않은 상태에서, 새 창을 열어 새로 변경한 포트 및 일반 계정으로 접속이 잘 되는지 반드시 먼저 테스트해야 합니다!

4. UFW 방화벽(Firewall) 활성화 및 포트 개방

우분투에는 UFW(Uncomplicated Firewall)라는 직관적인 방화벽 도구가 기본 탑재되어 있습니다. 필요한 포트만 열고 나머지 외부 접근을 차단하도록 설정합니다.

Bash
 
# 1. 새로 변경한 SSH 포트 허용 (예: 2222번)
sudo ufw allow 2222/tcp

# 2. 웹서버 기본 포트 허용 (HTTP 80, HTTPS 443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 3. 방화벽 활성화
sudo ufw enable

# 4. 방화벽 상태 및 규칙 확인
sudo ufw status verbose
  • 방화벽을 켤 때 접속 중인 SSH 포트(예: 2222)를 미리 허용하지 않으면 서버 접속이 차단되므로 주의해야 합니다.

5. Fail2ban 설치를 통한 무차별 대입 공격 차단

Fail2ban은 SSH 접속 시도 중 일정 횟수 이상 비밀번호를 틀리면, 해당 공격자의 IP를 자동으로 일정 시간 동안 방화벽에서 차단(Ban)해 주는 유용한 보안 도구입니다.

Bash
 
# Fail2ban 패키지 설치
sudo apt install fail2ban -y

# 기본 설정 파일 복사하여 커스텀 설정 준비
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Fail2ban 서비스 상태 및 활성화 확인
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

기본 설정만으로도 5회 이상 로그인 실패 시 해당 IP를 10분간 차단해 주므로, 무차별 로그인 공격을 효과적으로 방어할 수 있습니다.

6. 서버 시간대(Timezone) 설정

서버의 로그 관리나 예약 작업(Cron), 데이터베이스 시간 저장을 정확히 처리하기 위해 한국 시간(KST)으로 시간대를 변경해 두는 것이 좋습니다.

Bash
 
# 1. 현재 시간대 확인
timedatectl

# 2. 서울(KST) 시간대로 변경
sudo timedatectl set-timezone Asia/Seoul

💡 우분투 서버 초기 보안 세팅 요약 표

단계 설정 항목 추천 설정/명령어 세팅 목적
1단계 패키지 업데이트 sudo apt update && sudo apt upgrade 보안 패치 및 최신 상태 유지
2단계 계정 관리 adduser 및 usermod -aG sudo root 직접 사용 자제, 안전성 확보
3단계 SSH 보안 강화 Port 2222, PermitRootLogin no 무차별 자동화 접속 공격 회피
4단계 방화벽(UFW) ufw allow [포트], ufw enable 불필요한 포트 접근 통제
5단계 Fail2ban apt install fail2ban 비밀번호 반복 오류 IP 자동 차단
6단계 타임존 timedatectl set-timezone Asia/Seoul 정확한 로그 분석 및 시간 맞춤

💡 요약 및 결론

새로운 리눅스 우분투 서버를 개설했다면 아무런 서비스나 웹서버를 올리기 전에 패키지 업데이트 ➔ sudo 계정 생성 ➔ SSH 보안 변경 ➔ UFW 방화벽 세팅 ➔ Fail2ban 설치 ➔ 타임존 설정의 6가지 표준 보안 절차를 반드시 거치시기 바랍니다.

이 기초 세팅만 완벽히 마쳐도 서버 운영 중 발생할 수 있는 보안 문제의 90% 이상을 예방할 수 있으며, 더욱 안전하고 안정적인 웹 서비스 환경을 유지할 수 있습니다.