iptables 체인·테이블 구조와 규칙 평가 순서, INPUT·FORWARD·OUTPUT 패킷 흐름과 기본 정책 DROP 설정

리눅스 서버를 열어 두는 순간 가장 먼저 만나는 보안 장치가 방화벽이다. 리눅스마스터 1급 대비 과정에서 iptables의 테이블·체인 구조와 규칙 평가 순서가 단골로 나오고, 서버 보안을 다루는 서술형 답안에서도 자주 쓰인다. 명령어 옵션을 외우기 전에 패킷이 어떤 길을 지나가는지부터 잡아 두면 나머지가 훨씬 쉬워진다.

iptables는 커널 netfilter에 규칙을 넣는 도구이다

netfilter는 리눅스 커널 안에서 패킷을 가로채 검사·변경하는 프레임워크이고, iptables는 그 규칙을 사용자가 입력하는 명령행 도구이다. 규칙은 테이블 → 체인 → 규칙 세 단계로 묶인다. 핵심 키워드는 다음과 같다.

  • 테이블: 처리 목적별 묶음. filter(허용·차단), nat(주소 변환), mangle(패킷 헤더 변경), raw(연결 추적 제외 설정) 등이 있다. 옵션을 생략하면 filter 테이블이 대상이다.
  • 체인: 패킷이 지나는 지점. PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING 다섯 가지가 기본이다.
  • 타깃: 규칙에 맞았을 때의 처리. ACCEPT, DROP, REJECT, LOG 등이 있다.

패킷은 목적지에 따라 서로 다른 체인을 통과한다

들어온 패킷은 먼저 PREROUTING을 거치고, 그다음 라우팅 결정에서 갈림길을 만난다. 목적지가 이 서버이면 INPUT을 지나 프로세스로 전달된다. 다른 호스트로 가야 하는 패킷은 FORWARD를 지나 POSTROUTING으로 나간다. 서버 자신이 만든 패킷은 OUTPUT을 거쳐 POSTROUTING으로 나간다.

그림. netfilter 패킷 처리 순서(개념도). 이해를 돕기 위해 단순화했으며 실측 데이터가 아니다.

그래서 “서버로 들어오는 SSH 접속을 막아라”는 INPUT 체인의 일이고, “내부망 PC를 공인 IP 하나로 내보내라”는 POSTROUTING의 nat 테이블 일이다. 공유기 역할을 하는 리눅스는 이 FORWARD 경로를 쓰므로 커널의 IP 포워딩 설정이 켜져 있어야 한다.

테이블과 체인의 조합이 각 기능의 위치를 정한다

테이블 주 용도 사용하는 체인
filter 패킷 허용·차단 INPUT, FORWARD, OUTPUT
nat 주소·포트 변환(DNAT, SNAT, MASQUERADE) PREROUTING, POSTROUTING, OUTPUT
mangle TOS·TTL 등 헤더 변경, 마킹 다섯 체인 모두
raw 연결 추적 예외 지정 PREROUTING, OUTPUT

규칙은 위에서 아래로 첫 번째로 맞는 것이 이긴다

체인 안의 규칙은 위에서부터 차례로 비교한다. ACCEPT·DROP·REJECT처럼 판정을 내리는 타깃을 만나면 거기서 끝나고 아래 규칙은 보지 않는다. LOG는 기록만 남기고 다음 규칙으로 넘어간다. 어떤 규칙에도 맞지 않으면 체인의 기본 정책(-P)이 적용되는데, 처음 설치 상태의 기본값은 ACCEPT이다. 그래서 실무에서는 기본 정책을 DROP으로 바꾸고 필요한 것만 허용하는 방식을 쓴다.

옵션 의미 주의점
-A 체인 맨 끝에 규칙 추가(append) 앞에 광범위한 DROP이 있으면 영영 닿지 않는다
-I 체인 [번호] 지정 위치에 삽입, 번호 생략 시 맨 위 예외 허용 규칙을 앞쪽에 넣을 때 쓴다
-D 체인 번호 규칙 삭제 번호가 바뀌므로 -L –line-numbers로 확인한다
-L, -n, -v 목록 조회, 숫자 표시, 상세 -n을 안 쓰면 이름 조회로 느려질 수 있다
-F, -P 규칙 비우기, 기본 정책 지정 원격 접속 중 -P DROP 후 -F는 접속이 끊긴다

DROP과 REJECT의 차이도 자주 묻는다. DROP은 응답 없이 버려 상대가 타임아웃까지 기다리게 하고, REJECT는 오류 응답(기본 ICMP port-unreachable)을 돌려준다. 외부에는 DROP, 내부 관리용에는 REJECT를 쓰는 식으로 구분한다.

상태 추적을 쓰면 응답 패킷 허용을 한 줄로 끝낸다

연결 추적(conntrack) 모듈을 쓰면 패킷을 NEW, ESTABLISHED, RELATED, INVALID로 구분할 수 있다. 서버가 먼저 연 연결의 응답을 일일이 열어 주지 않고, ESTABLISHED,RELATED는 허용하는 규칙 한 줄을 맨 위에 둔다. 과거에는 -m state --state를 많이 썼고 지금은 -m conntrack --ctstate가 권장된다.

예시: 규칙 세 개와 기본 정책 DROP으로 패킷 여섯 개를 판정해 보자

iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT   # 규칙 1
iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT          # 규칙 2
iptables -A INPUT -p tcp --dport 80 -j ACCEPT                            # 규칙 3

192.168.0.0/24는 192.168.0.0부터 192.168.0.255까지 256개 주소이다. 이를 파이썬으로 판정한 결과는 다음과 같다.

패킷(상태, 목적지 포트, 출발지) 결과 근거
NEW, 22, 192.168.0.15 ACCEPT 규칙 2
NEW, 22, 192.168.1.10 DROP /24 범위 밖, 기본 정책
NEW, 22, 10.0.0.5 DROP 범위 밖, 기본 정책
NEW, 80, 203.0.113.7 ACCEPT 규칙 3
NEW, 443, 203.0.113.7 DROP 허용 규칙 없음, 기본 정책
ESTABLISHED, 51234, 198.51.100.9 ACCEPT 규칙 1

두 번째 줄이 함정이다. 192.168.1.10은 앞 두 옥텟이 같아 보이지만 /24에서는 세 번째 옥텟까지 같아야 범위 안이다.

답안에는 흐름, 순서, 영속성, 도구 변화를 함께 쓴다

서술형이라면 먼저 테이블·체인 구조와 패킷 흐름을 그림 또는 문장으로 제시한 뒤, 규칙은 위에서 아래로 첫 일치가 적용된다는 점과 기본 정책 DROP 방식을 설명한다. 실무 연결로는 두 가지를 덧붙이면 좋다. 첫째, 명령으로 넣은 규칙은 메모리에만 있어 재부팅하면 사라지므로 저장이 필요하다(iptables-save, 배포판별 저장 파일 사용). 둘째, RHEL 계열 7 이상은 firewalld가 기본 방화벽 관리 도구이고 zone 단위로 firewall-cmd를 쓰며, 최근 배포판은 내부적으로 nftables를 쓰기도 한다. 원격 서버에서 정책을 바꿀 때는 SSH 허용 규칙을 먼저 넣고 정책을 바꾸는 순서를 지켜야 한다.

시험 직전 한 줄 요약

iptables는 테이블·체인별로 위에서 아래로 첫 일치 규칙을 적용하고, 어디에도 안 맞으면 기본 정책이 결정하며, INPUT은 서버행·FORWARD는 통과·OUTPUT은 서버발 패킷이다.

이 글은 학습용 정리이며 실제 시험 문항과 다를 수 있다. 출제 기준은 큐넷·KISA·한국데이터산업진흥원 등 공식 공지를 확인하라. 그림은 개념도이며 실측 데이터가 아니다.

zerg96

Recent Posts

2026년 11월 금융 DT 테스트 시험 일정 (접수·시험·발표)

11월에 일정이 있는 금융 DT 테스트 시험을 정리했습니다. 접수, 시험, 합격 발표 날짜를 한 번에…

1시간 ago

2026년 11월 은행FP 시험 일정 (접수·시험·발표)

11월에 일정이 있는 은행FP 시험을 정리했습니다. 접수, 시험, 합격 발표 날짜를 한 번에 볼 수…

4시간 ago

트랜잭션 격리 수준 4단계 정리, Dirty·Non-Repeatable·Phantom Read가 생기는 이유와 락·MVCC 차이 (SQLD)

같은 계좌를 두 사용자가 동시에 건드릴 때 데이터베이스가 어디까지 서로의 작업을 보여 줄지 정하는 설정이…

7시간 ago

배당수익률·배당성향·배당락 계산, 배당 3%가 세후 실제로 얼마인지 따져 보기 (주식 기초)

배당은 회사가 번 이익을 주주에게 현금으로 나눠 주는 일이다. "배당수익률 3%"라는 숫자는 매력적으로 보이지만 세금,…

8시간 ago

PER·PBR·ROE 관계 정리, PBR = PER × ROE로 읽는 저평가의 함정과 계산 예시 (주식 기초)

주식 기사나 증권사 리포트에서 가장 자주 만나는 지표가 PER, PBR, ROE이다. 따로 외우면 숫자의 나열에…

8시간 ago

엑셀 조건 집계 함수 정리, SUMIF·SUMIFS·COUNTIFS 인수 순서와 SUMPRODUCT 비교 (컴퓨터활용능력)

컴퓨터활용능력 스프레드시트 파트에서는 조건에 맞는 값만 합치고 세는 문제가 거의 매 회차 나온다. SUMIF 계열…

8시간 ago