리눅스 서버 실습 개요

리눅스 서버 실습 개요입니다. DNS, DHCP, Proxy, 방화벽, Apache 실습을 위한 VM 역할, IP 계획, 진행 순서와 기본 점검 명령을 정리했습니다.

리눅스 서버 실습 개요: 네트워크 서비스 실습망 설계

리눅스 서버 실습은 명령어를 하나씩 외우는 것보다, 실습망을 어떻게 나누고 어떤 서버가 어떤 역할을 맡는지 먼저 정리해야 오래 간다. 실습은 전체 실습 구성을 이미지로 보여주는 짧은 글이었기 때문에, 여기서는 이후 DNS, DHCP, Proxy, 방화벽, Apache 실습으로 이어지는 기본 실습망 설계와 점검 순서를 문서화한다.

실습 목표

이 시리즈의 목표는 Linux 서버 한 대를 설치하는 것에서 끝나지 않고, 실제 네트워크 서비스가 서로 의존하는 흐름을 이해하는 것이다. DNS가 이름을 풀고, DHCP가 주소를 배포하고, 방화벽 서버가 구간을 나누고, Apache 같은 애플리케이션 서버가 실제 서비스를 제공하는 구조를 만든다.

권장 VM 구성

VM예시 IP역할
fw01WAN: DHCP, LAN: 192.168.10.1방화벽, router, NAT
infra01192.168.10.192DNS, DHCP, Proxy
web01192.168.10.193Apache, virtual host
client01DHCP 또는 192.168.10.195접속 테스트

네트워크 구간

VMware, VirtualBox, KVM 어떤 환경이든 실습망은 최소 2개로 나누는 것이 좋다.

구간용도주의점
외부망패키지 설치, 인터넷 접근host 또는 NAT 네트워크 사용
내부 실습망DNS/DHCP/웹/방화벽 테스트실제 LAN과 섞이지 않게 격리

실습 진행 순서

  1. 서버용 Linux를 최소 설치한다.
  2. 방화벽 역할 Linux 서버를 2-NIC 구조로 만든다.
  3. 내부망에 DNS 서버를 구성하고 이름 해석을 확인한다.
  4. DHCP로 client IP, gateway, DNS를 배포한다.
  5. Proxy를 붙여 내부 client의 웹 접근 경로를 통제한다.
  6. Apache 서버를 올리고 IP 기반, 이름 기반 virtual host를 실습한다.
  7. 로그와 방화벽 규칙으로 트래픽 흐름을 확인한다.

기본 점검 명령

모든 Linux VM에서 먼저 아래 명령을 실행해 현재 상태를 기록한다.

cat /etc/os-release
hostnamectl
ip -br addr
ip route
nmcli con show
ss -lntup
df -hT
free -h
timedatectl

패키지와 시간 동기화

서비스 실습 전에 업데이트, 기본 도구, 시간 동기화부터 맞춘다. 시간이 틀리면 로그 분석과 인증 실습에서 원인 파악이 어려워진다.

sudo dnf makecache
sudo dnf update -y
sudo dnf install -y vim-enhanced bash-completion curl wget bind-utils tcpdump lsof chrony

sudo systemctl enable --now chronyd
chronyc tracking
chronyc sources -v

이름 규칙

실습 중 hostname과 DNS 이름이 섞이면 혼란이 커진다. 처음부터 규칙을 고정한다.

fw01.lab.local 192.168.10.1
infra01.lab.local 192.168.10.192
web01.lab.local 192.168.10.193
client01.lab.local DHCP

서비스별 검증 기준

서비스성공 기준검증 명령
DNS내부 이름이 내부 IP로 해석됨dig @192.168.10.192 web01.lab.local +short
DHCPclient가 내부 대역 주소와 gateway를 받음ip -br addr, ip route
Proxyclient가 proxy를 통해 웹에 접근함curl -I -x http://192.168.10.192:3128 http://example.com
Apache도메인별 다른 페이지가 열림curl --resolve www.st12.abc:80:192.168.10.193 http://www.st12.abc/
Firewall허용한 source/port만 통신됨firewall-cmd --list-all, nc -vz

실습 기록 남기기

문제가 생겼을 때 이전 상태로 돌아가기 위해 각 단계가 끝날 때 snapshot과 텍스트 기록을 남긴다.

mkdir -p ~/lab-records

{
 date
 hostnamectl
 ip -br addr
 ip route
 firewall-cmd --list-all 2>/dev/null || true
 systemctl --failed
} | tee ~/lab-records/$(hostname)-baseline-$(date +%Y%m%d%H%M%S).txt

마무리

리눅스 서버 실습은 한 글씩 따로 보면 DNS, DHCP, Apache, 방화벽 명령 모음처럼 보일 수 있다. 하지만 실제로는 내부망을 설계하고, 주소를 배포하고, 이름을 해석하고, 방화벽으로 통제하고, 웹 서버로 결과를 확인하는 하나의 흐름이다. 이 개요를 기준으로 각 실습을 진행하면 문제가 생겼을 때 어느 계층에서 끊겼는지 빠르게 분리할 수 있다.

BGM EVER