리눅스 서버 실습 개요
리눅스 서버 실습 개요입니다. DNS, DHCP, Proxy, 방화벽, Apache 실습을 위한 VM 역할, IP 계획, 진행 순서와 기본 점검 명령을 정리했습니다.
리눅스 서버 실습 개요: 네트워크 서비스 실습망 설계
리눅스 서버 실습은 명령어를 하나씩 외우는 것보다, 실습망을 어떻게 나누고 어떤 서버가 어떤 역할을 맡는지 먼저 정리해야 오래 간다. 실습은 전체 실습 구성을 이미지로 보여주는 짧은 글이었기 때문에, 여기서는 이후 DNS, DHCP, Proxy, 방화벽, Apache 실습으로 이어지는 기본 실습망 설계와 점검 순서를 문서화한다.
실습 목표
이 시리즈의 목표는 Linux 서버 한 대를 설치하는 것에서 끝나지 않고, 실제 네트워크 서비스가 서로 의존하는 흐름을 이해하는 것이다. DNS가 이름을 풀고, DHCP가 주소를 배포하고, 방화벽 서버가 구간을 나누고, Apache 같은 애플리케이션 서버가 실제 서비스를 제공하는 구조를 만든다.
권장 VM 구성
| VM | 예시 IP | 역할 |
|---|---|---|
fw01 | WAN: DHCP, LAN: 192.168.10.1 | 방화벽, router, NAT |
infra01 | 192.168.10.192 | DNS, DHCP, Proxy |
web01 | 192.168.10.193 | Apache, virtual host |
client01 | DHCP 또는 192.168.10.195 | 접속 테스트 |
네트워크 구간
VMware, VirtualBox, KVM 어떤 환경이든 실습망은 최소 2개로 나누는 것이 좋다.
| 구간 | 용도 | 주의점 |
|---|---|---|
| 외부망 | 패키지 설치, 인터넷 접근 | host 또는 NAT 네트워크 사용 |
| 내부 실습망 | DNS/DHCP/웹/방화벽 테스트 | 실제 LAN과 섞이지 않게 격리 |
실습 진행 순서
- 서버용 Linux를 최소 설치한다.
- 방화벽 역할 Linux 서버를 2-NIC 구조로 만든다.
- 내부망에 DNS 서버를 구성하고 이름 해석을 확인한다.
- DHCP로 client IP, gateway, DNS를 배포한다.
- Proxy를 붙여 내부 client의 웹 접근 경로를 통제한다.
- Apache 서버를 올리고 IP 기반, 이름 기반 virtual host를 실습한다.
- 로그와 방화벽 규칙으로 트래픽 흐름을 확인한다.
기본 점검 명령
모든 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 |
| DHCP | client가 내부 대역 주소와 gateway를 받음 | ip -br addr, ip route |
| Proxy | client가 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, 방화벽 명령 모음처럼 보일 수 있다. 하지만 실제로는 내부망을 설계하고, 주소를 배포하고, 이름을 해석하고, 방화벽으로 통제하고, 웹 서버로 결과를 확인하는 하나의 흐름이다. 이 개요를 기준으로 각 실습을 진행하면 문제가 생겼을 때 어느 계층에서 끊겼는지 빠르게 분리할 수 있다.