Post

Ubuntu 리눅스 설치

천리길도 한 걸음부터 입니다. 컴퓨터 프로그램을 개발하기 위해서는 프로그램이 구동될 환경에 대한 이해과 설치 능력이 바탕이 되어야 합니다. 특히 웹 사이트 구축을 한 후에 서비스를 오픈하려면 웹 서버 역할을 수행할 머신이 필요합니다. 그리고 그 머신에는 대부분의 경우 리눅스가 탑제되어 있습니다. 그러므로 개발자에게 리눅스 설치 능력은 중요한 부분을 차지합니다.

Ubuntu 리눅스 설치

#01. 설치 이미지 내려받기

구분URL
Intel Mac 혹은 Windowshttps://ubuntu.com/download/server
MAC M1/M2/M3/M4https://ubuntu.com/download/server/arm

2025년 업데이트: 이 자료를 작성할 당시 22.04 버전으로 테스트 했으나 2025년 8월 기준 최신 LTS 버전은 24.04 LTS (Noble Numbat) 입니다. 프로덕션 환경에서는 LTS 버전 사용을 강력히 권장합니다.

Ubuntu 버전별 특징

버전코드명릴리즈지원 종료특징
24.04 LTSNoble Numbat2024.042034.04최신 LTS, 10년 지원
22.04 LTSJammy Jellyfish2022.042032.04안정화된 LTS
20.04 LTSFocal Fossa2020.042030.04레거시 지원

권장 다운로드 링크 (2025년 기준)

Windows/Intel Mac용 24.04 LTS

Apple Silicon Mac(M1/M2/M3/M4)용 24.04 LTS

테스트 검증된 22.04 LTS (안정성 우선시)

#02. 실습환경 구성하기

1. 실습을 위해 구성되어야 하는 환경

리눅스는 하나의 서버 컴퓨터(=리눅스)에 여러명의 사용자가 자신만의 클라이언트 운영체제(윈도우,맥)를 사용하여 원격으로 접속하는 것이 일반적인 사용 환경이므로 실습을 위해서는 최소 두 대 이상의 컴퓨터가 필요하다.

img

2. 가상머신을 활용한 실습환경 구성

1) 가상머신이란?

컴퓨터에 설치된 운영체제 안에 가상의 컴퓨터를 만들고, 가상의 컴퓨터 안에 또 다른 운영체제를 설치할 수 있는 소프트웨어

2) 가상머신 환경 구성하기

물리적인 컴퓨터가 여러대 구성될 수 없는 경우 현재 사용중인 운영체제(=호스트 컴퓨터)에 가상머신 소프트웨어를 설치하고 이를 통해 가상의 컴퓨터 하드웨어(=게스트 컴퓨터)를 생성할 수 있다.

img

3) 용어 정리

용어
호스트 운영체제(Host OS)현재 사용중인 실제 컴퓨터에 설치된 운영체제
게스트 운영체제(Guest OS)가상 컴퓨터 내에 설치된 운영체제

4) 가상머신 소프트웨어의 종류 (2025년 업데이트)

환경소프트웨어라이선스설명
WindowsVMWare Workstation Pro무료2024년 5월부터 개인용 무료 제공. 가장 안정적이고 높은 성능
WindowsVirtualBox무료오픈소스. 안드로이드 개발에 많이 사용. 상대적으로 느림
WindowsHyper-V무료Windows 10/11 Pro 내장. 간단한 테스트용
macOSVMWare Fusion무료2024년 5월부터 개인용 무료. Intel Mac 권장
macOSUTM무료Apple Silicon(M1/M2/M3/M4) 최적화. 오픈소스
macOSParallels Desktop유료유료지만 최고 성능. Apple Silicon 완벽 지원. 30일 체험 가능
리눅스QEMU/KVM무료고성능 오픈소스. 명령어 기반

권장 선택 가이드 (2025년 기준)

Windows 사용자

  • 1순위: VMware Workstation Pro (무료화되어 가장 권장)
  • 2순위: VirtualBox (완전 무료, 성능은 다소 낮음)

Intel Mac 사용자

  • 1순위: VMware Fusion (무료화되어 가장 권장)
  • 2순위: Parallels Desktop (유료지만 최고 성능)

Apple Silicon Mac (M1/M2/M3/M4) 사용자

  • 1순위: UTM (무료, ARM64 최적화, 성능 우수)
  • 2순위: Parallels Desktop (유료, 상업적 지원)
  • 3순위: VMware Fusion (ARM 지원 제한적)

중요: Windows용 VMware Workstation Pro 17+ 및 Mac용 VMware Fusion 13+가 2024년 5월부터 개인사용자에게 무료로 배포되기 시작했습니다. Broadcom 인수 후 정책 변화로 접근성이 크게 향상되었습니다.

다운로드 링크

#03. 우분투 리눅스 설치

1. 설치 시작하기

Try or Install Ubuntu Server 항목을 선택하고 엔터를 누른다.

선택 과정에서 마우스를 사용할 수 없다. 방향키와 Enter, Esc 키를 사용해야 한다.

img

2. 설치 언어 선택

한국어 옵션은 없으므로 영어를 선택한다.

img

3. 업데이트 여부 선택

업데이트를 받을 경우 설치 시간이 오래 걸리므로 업데이트 없이 다음으로 진행한다.

img

4. 키보드 레이아웃 선택하기

한국어(Korean)을 선택하고 다음으로 넘어간다.

img

5. 설치 옵션 선택 (기본값 유지)

img

6. 네트워크 환경 설정하기

1) 기본값 - 동적IP 환경인 경우 (공유기 등의 일반적인 실습환경)

기본 설정은 동적IP 할당이므로 추가적인 설정 없이 다음으로 넘어간다.

img

2) 고정IP 환경인 경우 (실제 서버 구축)

설치 옵션 변경하기

네트워크 장치를 선택하고 엔터를 누른 후 하위 메뉴에서 Edit IPv4 항목을 선택한다.

img

네트워크 정보 입력하기

표시되는 입력 항목에서 Subnet Mask, IP Address, Gateway, Name Server, Domain을 입력한다. 대체로 네트워크 관리자를 통해 제공받는 정보를 기입하면 된다.

img

7. 프록시 서버 등록 (기본값 유지)

추가적인 프록시 서버 연결 없이 다음으로 진행한다.

img

8. 미러 서버 주소 변경 (기본값 유지))

기본값을 그대로 둔 상태로 다음으로 넘어간다.

img

9. 디스크 파티셔닝 (기본값 유지)

자동으로 구성하기 위해 기본값을 그대로 둔 상태로 다음으로 넘어간다.

img

10. 디스크 파티셔닝 내역 확인

기본값을 그대로 둔 상태로 다음으로 넘어간다.

img

11. 진행 여부 확인

Continue를 선택하고 다음으로 넘어간다.

img

12. 사용자 정보 입력

img

13. SSH 서버 설치 여부 선택

SSH 서버는 터미널을 사용하여 원격으로 서버에 접속 할 수 있게 하는 서비스이다. 대부분의 경우 서버 관리는 원격으로 수행하는 경우가 많기 때문에 SSH 설치를 선택하도록 한다.

img

14. 추가 설치 항목 선택

향후 개별적으로 설치가 가능하므로 선택하는 항목 없이 다음으로 넘어간다.

img

15. 설치 진행

img

16. 설치 완료

재부팅을 선택하고 설치를 마무리 한다.

img

17. 로그인 하기

설치시 입력한 아이디와 비밀번호를 사용하여 시스템에 로그인 한다.

비밀번호 입력시 입력 상태가 표시되지 않으므로 주의해야 한다.

로그인에 성공하고 나면 시스템의 정보가 표시된다.

img

18. 시스템 종료하기

다음의 명령어를 수행하여 시스템을 종료한다.

1
$ shutdown now

#04. 설치 후 초기 설정

1. 시스템 업데이트

설치 완료 후 가장 먼저 해야 할 작업은 시스템 업데이트입니다.

1
2
3
4
5
6
7
8
9
# 패키지 목록 업데이트
$ sudo apt update

# 설치된 패키지들 업그레이드
$ sudo apt upgrade -y

# 불필요한 패키지 정리
$ sudo apt autoremove -y
$ sudo apt autoclean

2. 기본 유틸리티 설치

개발 및 관리에 필요한 기본 도구들을 설치합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 기본 개발 도구
$ sudo apt install -y build-essential

# 네트워크 도구
$ sudo apt install -y curl wget net-tools

# 텍스트 에디터
$ sudo apt install -y vim nano

# 압축 도구
$ sudo apt install -y zip unzip

# Git 버전 관리 시스템
$ sudo apt install -y git

# 시스템 모니터링 도구
$ sudo apt install -y htop tree

3. 방화벽 설정

Ubuntu의 기본 방화벽인 UFW(Uncomplicated Firewall)를 설정합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# UFW 상태 확인
$ sudo ufw status

# UFW 활성화
$ sudo ufw enable

# SSH 접속 허용 (포트 22)
$ sudo ufw allow ssh
$ sudo ufw allow 22

# HTTP 서비스 허용 (포트 80)
$ sudo ufw allow http
$ sudo ufw allow 80

# HTTPS 서비스 허용 (포트 443)
$ sudo ufw allow https
$ sudo ufw allow 443

# 방화벽 규칙 확인
$ sudo ufw status verbose

4. 시간대 설정

시스템의 시간대를 설정합니다.

1
2
3
4
5
6
7
8
9
10
11
# 현재 시간대 확인
$ timedatectl

# 사용 가능한 시간대 목록 확인
$ timedatectl list-timezones | grep Asia

# 한국 시간대로 설정
$ sudo timedatectl set-timezone Asia/Seoul

# 설정 결과 확인
$ timedatectl

5. 언어 및 로케일 설정

1
2
3
4
5
6
7
8
9
10
11
12
# 설치된 언어팩 확인
$ locale -a

# 한국어 언어팩 설치
$ sudo apt install -y language-pack-ko

# 로케일 설정
$ sudo locale-gen ko_KR.UTF-8
$ sudo update-locale LANG=ko_KR.UTF-8

# 설정 확인
$ locale

#05. 보안 설정

1. SSH 보안 강화

SSH 서비스의 보안을 강화하기 위한 설정을 진행합니다.

SSH 설정 파일 수정

1
$ sudo vim /etc/ssh/sshd_config

권장 보안 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 포트 번호 변경 (기본 22번 외의 다른 포트 사용)
Port 2222

# root 계정으로 직접 SSH 접속 차단
PermitRootLogin no

# 패스워드 인증 허용 (키 인증 설정 후 no로 변경 권장)
PasswordAuthentication yes

# 빈 패스워드 로그인 차단
PermitEmptyPasswords no

# 최대 로그인 시도 횟수 제한
MaxAuthTries 3

# 동시 접속 가능한 세션 수 제한
MaxSessions 2

# 로그인 시간 제한 (초)
LoginGraceTime 60

SSH 서비스 재시작

1
2
$ sudo systemctl restart ssh
$ sudo systemctl status ssh

2. SSH 키 인증 설정 (선택사항)

더 강화된 보안을 위해 SSH 키 인증을 설정할 수 있습니다.

클라이언트에서 키 생성 (Windows PowerShell/Linux Terminal)

1
2
3
4
5
# RSA 키 생성
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 또는 ED25519 키 생성 (권장)
$ ssh-keygen -t ed25519 -C "your_email@example.com"

공개 키를 서버에 복사

1
2
3
4
5
# Linux/Mac에서
$ ssh-copy-id -p 2222 username@server_ip

# Windows에서 (수동 복사)
$ type $env:USERPROFILE\.ssh\id_rsa.pub | ssh username@server_ip -p 2222 "cat >> ~/.ssh/authorized_keys"

3. Fail2Ban 설치 (침입 차단 시스템)

1
2
3
4
5
6
7
8
# Fail2Ban 설치
$ sudo apt install -y fail2ban

# 설정 파일 생성
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# SSH 보호 설정 추가
$ sudo vim /etc/fail2ban/jail.local

Fail2Ban SSH 설정 예시

1
2
3
4
5
6
7
8
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
findtime = 300
1
2
3
4
5
6
7
# Fail2Ban 서비스 시작
$ sudo systemctl enable fail2ban
$ sudo systemctl start fail2ban

# 상태 확인
$ sudo fail2ban-client status
$ sudo fail2ban-client status sshd

#06. 시스템 모니터링 및 관리

1. 시스템 정보 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 시스템 정보
$ uname -a
$ hostnamectl

# CPU 정보
$ lscpu
$ cat /proc/cpuinfo

# 메모리 정보
$ free -h
$ cat /proc/meminfo

# 디스크 사용량
$ df -h
$ du -sh /*

# 네트워크 인터페이스
$ ip addr show
$ ifconfig

2. 서비스 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 실행 중인 서비스 확인
$ systemctl list-units --type=service --state=active

# 특정 서비스 상태 확인
$ systemctl status ssh

# 서비스 시작/중지/재시작
$ sudo systemctl start service_name
$ sudo systemctl stop service_name
$ sudo systemctl restart service_name

# 부팅시 자동 시작 설정
$ sudo systemctl enable service_name
$ sudo systemctl disable service_name

3. 로그 확인

1
2
3
4
5
6
7
8
9
10
11
# 시스템 로그 확인
$ sudo journalctl -f

# 특정 서비스 로그 확인
$ sudo journalctl -u ssh -f

# 인증 관련 로그
$ sudo tail -f /var/log/auth.log

# 시스템 로그
$ sudo tail -f /var/log/syslog

#07. 백업 및 복구 준비

1. 중요 설정 파일 백업

1
2
3
4
5
6
7
8
9
10
11
# 설정 파일 백업 디렉토리 생성
$ mkdir ~/backup

# 주요 설정 파일 백업
$ sudo cp /etc/ssh/sshd_config ~/backup/
$ sudo cp /etc/ufw/user.rules ~/backup/
$ sudo cp /etc/fail2ban/jail.local ~/backup/

# 사용자 설정 백업
$ cp ~/.bashrc ~/backup/
$ cp ~/.bash_profile ~/backup/

2. 스냅샷 생성 (가상머신의 경우)

가상머신을 사용하는 경우 설정 완료 후 스냅샷을 생성하여 문제 발생 시 빠른 복구가 가능하도록 합니다.

VMware 스냅샷 생성

  1. VM 메뉴에서 SnapshotTake Snapshot 선택
  2. 스냅샷 이름: “Ubuntu Initial Setup Complete”
  3. 설명 추가 후 Take Snapshot 클릭

VirtualBox 스냅샷 생성

  1. 가상머신 선택 후 MachineTake Snapshot 선택
  2. 스냅샷 이름과 설명 입력 후 OK 클릭

#08. 문제 해결

1. 네트워크 연결 문제

1
2
3
4
5
6
7
8
9
10
11
12
# 네트워크 인터페이스 상태 확인
$ ip link show

# 네트워크 연결 테스트
$ ping -c 4 8.8.8.8
$ ping -c 4 google.com

# DNS 설정 확인
$ cat /etc/resolv.conf

# 네트워크 서비스 재시작
$ sudo systemctl restart systemd-networkd

2. SSH 접속 문제

1
2
3
4
5
6
7
8
9
10
11
# SSH 서비스 상태 확인
$ sudo systemctl status ssh

# SSH 로그 확인
$ sudo journalctl -u ssh

# 방화벽 규칙 확인
$ sudo ufw status

# 포트 리스닝 확인
$ sudo netstat -tlnp | grep :22

3. 권한 문제

1
2
3
4
5
6
7
8
# 사용자 그룹 확인
$ groups

# sudo 권한 확인
$ sudo -l

# 파일 권한 확인
$ ls -la filename

이제 Ubuntu Linux 설치 및 기본 설정이 완료되었습니다. 다음 단계로는 필요한 소프트웨어 설치 및 서비스 구성을 진행할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.