T도구모음

방화벽 규칙 생성기

iptables 및 UFW 방화벽 규칙을 UI로 간편하게 생성합니다.

필수 규칙 알림

  • 기존 연결 허용: ESTABLISHED, RELATED 상태의 패킷을 허용해야 기존 세션이 유지됩니다.
  • 루프백(lo) 허용: 로컬 프로세스 간 통신을 위해 루프백 인터페이스를 반드시 허용하세요.
  • SSH 우선: 원격 서버라면 SSH 포트를 먼저 허용하세요. 그렇지 않으면 서버에 접속할 수 없게 됩니다.

위 필수 규칙은 생성된 스크립트에 자동으로 포함됩니다.

#!/bin/bash
# 방화벽 규칙 스크립트
# 생성일: 2026. 4. 18.

# UFW 초기화
ufw --force reset

# 기본 정책 설정
ufw default deny incoming
ufw default allow outgoing

# 필수 규칙: 루프백 허용 (UFW 자동 처리)
# 필수 규칙: 기존 연결 허용 (UFW 자동 처리)

# 사용자 규칙

# UFW 활성화
ufw --force enable

# 상태 확인
ufw status verbose

방화벽 규칙 생성기 — 서버 보안의 첫 번째 방어선

방화벽은 네트워크 트래픽을 사전 정의된 규칙에 따라 필터링하는 보안 시스템입니다. 리눅스에서는 커널의 netfilter 프레임워크를 기반으로 iptables(레거시)와nftables(차세대)가 패킷 필터링을 담당하며,UFW(Uncomplicated Firewall)는 Ubuntu/Debian 계열에서 iptables를 쉽게 제어하기 위한 프론트엔드입니다. firewalld는 RHEL/CentOS 계열에서 zone 기반 방화벽 관리를 제공합니다. 이 도구는 UFW와 iptables 두 형식 모두 GUI로 간편하게 생성합니다.

iptables vs nftables vs UFW vs firewalld 비교

도구대상 배포판특성
iptables전 배포판레거시, 광범위 호환성
nftables커널 3.13+차세대, 통합 문법, 성능 향상
UFWUbuntu/Debianiptables 프론트엔드, 간단한 문법
firewalldRHEL/CentOS/Fedorazone 기반, 런타임/영구 규칙 분리

기본 보안 구성 — iptables

# 기본 정책: 모든 인바운드 차단, 아웃바운드 허용
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 루프백 허용
iptables -A INPUT -i lo -j ACCEPT

# 기존 연결 허용
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH (소스 IP 제한)
iptables -A INPUT -p tcp -s 203.0.113.0/24 --dport 22 -j ACCEPT

# HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

동일 구성 — UFW

ufw default deny incoming
ufw default allow outgoing

# SSH 접속 속도 제한 (30초 내 6회 초과 시 차단)
ufw limit ssh

# 특정 IP에서만 SSH 허용
ufw allow from 203.0.113.0/24 to any port 22

# 웹 서버
ufw allow 80/tcp
ufw allow 443/tcp

ufw --force enable

데이터베이스 접근 제한

# MySQL — 앱 서버 서브넷에서만 허용
iptables -A INPUT -p tcp -s 10.0.10.0/24 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

# PostgreSQL — 동일 패턴
iptables -A INPUT -p tcp -s 10.0.10.0/24 --dport 5432 -j ACCEPT
iptables -A INPUT -p tcp --dport 5432 -j DROP

인프라 규모별 방화벽 전략

소규모(1~3대): UFW로 호스트 방화벽을 구성합니다. 기본 DENY + SSH/HTTP/HTTPS 허용이면 충분합니다. ufw limit ssh로 브루트포스 공격을 완화합니다.

중규모(10~30대): 호스트 방화벽 + 클라우드 Security Group을 이중으로 적용합니다. Ansible/Terraform으로 방화벽 규칙을 코드로 관리(IaC)하여 일관성을 확보합니다.

대규모(100대 이상): 네트워크 방화벽(AWS Network Firewall, GCP Cloud Firewall)을 VPC 경계에 배치하고, Suricata/Snort 기반 IDS/IPS를 연동합니다. 모든 규칙 변경은 변경 관리 프로세스를 거치고 감사 로그를 SIEM에 전송합니다.

자주 사용하는 포트 레퍼런스

  • 22 — SSH (IANA 할당, 인바운드 소스 IP 제한 필수)
  • 80/443 — HTTP/HTTPS
  • 3306 — MySQL, 5432 — PostgreSQL
  • 6379 — Redis (인증 없이 공개 금지), 27017 — MongoDB
  • 2375/2376 — Docker API (TLS 없는 2375는 반드시 차단)
  • 9090/9100 — Prometheus/Node Exporter (모니터링 서브넷만 허용)

보안 베스트 프랙티스

  • 기본 정책은 반드시 DENY(DROP)로 설정하세요 — 화이트리스트 방식이 블랙리스트보다 안전합니다.
  • SSH 포트를 변경하거나 fail2ban을 설치하여 자동 스캔 공격을 줄이세요.
  • 규칙 순서가 중요합니다 — iptables는 위에서 아래로 순차 평가하므로 구체적인 규칙을 먼저 배치하세요.
  • Docker는 iptables 규칙을 자동으로 수정합니다 — DOCKER-USER 체인에 규칙을 추가하세요.
  • 방화벽 변경 전 현재 규칙을 iptables-save로 백업하세요.

관련 도구

서브넷 설계에는 서브넷 계산기를, SSH 접속 관리에는 SSH Config 생성기를, 웹 서버 보안에는 Nginx 설정 생성기를 활용하세요.

참고 자료

  • netfilter/iptables 프로젝트 — netfilter.org
  • UFW 공식 문서 — Ubuntu Community Wiki
  • NIST SP 800-41 Rev.1 — Guidelines on Firewalls and Firewall Policy
  • CIS Benchmarks — Linux Firewall Configuration

자주 묻는 질문

관련 도구