// CHAPTER 04
Nginx 웹 서버 설치부터 방화벽 설정, DNS 연결 확인,
메일 서버 개념까지 서버 구축 실습 흐름을 정리합니다.
(실습 진행은 03.ecs.li 도메인을 이용하여 진행하였습니다.)
// KEY CONCEPTS
서버 구축에서 반드시 이해해야 할 핵심 요소들입니다.
WEB SERVER
고성능 웹 서버 소프트웨어. 정적 파일 제공, 리버스 프록시, 로드 밸런싱 등 다양한 역할을 수행합니다.
FIREWALL
Ubuntu의 방화벽 관리 도구(Uncomplicated Firewall). iptables를 쉽게 제어할 수 있는 인터페이스입니다.
FIREWALL
리눅스 커널 수준의 패킷 필터링 도구. 포트 단위로 세밀한 인바운드·아웃바운드 트래픽을 제어합니다.
WEB STACK
Apache + PHP + MySQL 조합의 웹 서비스 스택. Linux 환경에서는 LAMP라고도 부릅니다.
SMTP로 메일을 전송하고, IMAP/POP3로 수신함을 조회합니다. Postfix, Stalwart 등이 대표적입니다.
DNS
dig 명령어로 도메인의 A, MX, TXT 레코드를 조회해 서버와 도메인이 정상 연결됐는지 확인합니다.
// WEB ARCHITECTURE
사용자의 요청이 웹 서버를 거쳐 애플리케이션과 DB까지 처리되는 흐름입니다. Nginx는 Apache 대신 웹 서버 역할로 자주 사용됩니다.
방화벽 설정 · 로그 관리 · 정기 백업 · HTTPS 인증서(Let's Encrypt) · DB 계정 분리
// NGINX SETUP
OCI Ubuntu 인스턴스에서 Nginx를 설치하고 정적 웹사이트를 배포하는 전체 과정입니다.
/etc/nginx/sites-available/default 파일을 열어 root 경로와 서버 이름을 수정합니다.
⚠️ ufw enable 전에 반드시 SSH(22번) 포트를 먼저 열어야 합니다. 그렇지 않으면 서버 접속이 차단됩니다.
UFW 외에 iptables 레벨에서도 포트를 허용해야 할 때 사용합니다. OCI 인스턴스 환경에서 필요한 경우가 있습니다.
// FIREWALL
두 도구는 역할이 겹치지만, 사용 목적이 다릅니다.
"Uncomplicated Firewall"의 약자로, Ubuntu에서 iptables를 쉽게 다루기 위한 도구입니다. 서비스 포트 단위의 허용·차단을 간단한 명령어로 관리할 수 있습니다. sudo ufw status numbered로 현재 규칙을 번호와 함께 확인할 수 있습니다.
리눅스 커널이 직접 제공하는 네트워크 패킷 필터링 도구입니다. UFW보다 세밀한 제어가 가능하지만 문법이 복잡합니다. OCI 환경에서는 인스턴스의 보안 규칙(Security List)과 함께 iptables까지 설정해야 정상적으로 포트가 열리는 경우가 있습니다.
iptables 규칙은 재부팅 시 초기화되므로, iptables-persistent로 저장해 영구 적용합니다.
// DNS CHECK
도메인을 서버 IP에 연결한 후, dig 명령어로 DNS 레코드가 정상 전파됐는지 확인합니다.
도메인 레코드 변경 후 즉시 반영되지 않을 수 있습니다. TTL 설정에 따라 수 분에서 최대 48시간까지 전파에 시간이 걸립니다. dig 명령어 결과에 서버의 공인 IP가 표시되면 정상적으로 연결된 것입니다.
| 레코드 타입 | 역할 | 예시 |
|---|---|---|
| A | 도메인 → IPv4 주소 | 03.ecs.li → 193.122.118.54 |
| MX | 메일 서버 주소 지정 | 03.ecs.li → mail.03.ecs.li |
| TXT | SPF / DMARC 등 텍스트 정보 | 스팸 방지 인증 정보 |
| CNAME | 도메인 별칭 (다른 도메인으로 연결) | www → 03.ecs.li |
// MAIL SERVER
메일 서버는 이메일을 전송하고 수신함을 관리하는 서버입니다. 보내기(SMTP)와 읽기(IMAP/POP3) 역할이 분리됩니다.
메일 전송에 사용하는 프로토콜입니다.
클라이언트 → 서버, 서버 → 서버 간 메일 전달에 모두 사용합니다.
포트: 25 (서버 간) · 465 (SSL) · 587 (TLS)
서버에 메일을 보관하며 여러 기기에서 동기화하는 프로토콜입니다.
메일을 서버에 유지하므로 스마트폰·PC 모두에서 동일하게 조회됩니다.
포트: 143 · 993 (SSL/TLS)
서버에서 메일을 다운로드하는 프로토콜입니다.
기본적으로 다운로드 후 서버에서 삭제되므로 단일 기기 사용에 적합합니다.
포트: 110 · 995 (SSL/TLS)
MUA(메일 클라이언트) → MTA(SMTP 서버, 메일 전달) → MDA(수신자 메일함에 저장) → 수신자가 IMAP/POP3로 조회
운영 포인트: TLS 암호화 · 스팸 차단(SPF/DKIM/DMARC) · 로그인 인증
// MAIL SOFTWARE
실습에서 사용한 메일 서버 소프트웨어입니다.
리눅스에서 가장 널리 사용되는 MTA(Mail Transfer Agent)입니다. 메일을 전송하고 라우팅하는 역할만 담당하며, 수신함 조회(IMAP/POP3)는 별도 소프트웨어가 필요합니다.
SMTP · IMAP · 관리 웹 UI를 하나로 제공하는 현대적인 메일 서버입니다. 설치가 간단하고 웹 콘솔(:8080)에서 계정 관리와 설정이 가능합니다.
| 포트 | 프로토콜 | 용도 |
|---|---|---|
| 22 | SSH | 서버 원격 접속 (필수) |
| 25 | SMTP | 서버 간 메일 수신 |
| 80 | HTTP | 웹 서버 |
| 443 | HTTPS | 보안 웹 서버 |
| 465 | SMTPS | SSL/TLS 메일 전송 (클라이언트) |
| 993 | IMAPS | SSL/TLS 메일 수신함 조회 |
| 8080 | HTTP | Stalwart 관리 웹 콘솔 |