[Linux] Iptables

ondacloud·2025년 3월 24일
0

Linux

목록 보기
8/10
post-thumbnail

기능

  • Packet Filtering
  • State Insepction
  • Application Gateway - OSI 7 Layer

Chain 기능

Filter Rule

  • INPUT: 패킷이 서버로 들어오는 경우

    Linux 서버가 목적지인 패킷 (패킷이 서버로 들어옴)


  • OUTPUT: 서버에서 패킷이 외부로 나가는 경우

    Linux 서버에서 외부 목적지로 나가는 패킷 (서버의 패킷이 외부로 나감)


  • FORWARD: 패킷이 서버를 지나가는 경우 (INPUT & OUTPUT)

    Source or Destination도 아닌 거쳐가는 경우
    (NAT 네트워크 공유 기능을 위해 사용됨)


NAT Rule

  • PREROUTING
    - DNAT(Destination NAT) 룰 적용
    - 패킷의 도착지 주소를 변경
  • POSTROUTING
    - SNAT(Source NAT) 또는 masquerad 룰 적용
    - 패킷의 출발지 주소를 변경

iptables Table & Chain

TableDescriptionUse Example
filter기본 방화벽 역할 수행INPUT, OUTPUT, FORWARD
nat패킷 주소 변환 (NAT)PREROUING, POSTROUING, OUTPUT
mangle패킷 수정PREROUING, INPUT, FORWARD, OUTPUT, POSTROUTING
raw키넥션 추적을 우회할 수 있도록 설정PREROUING, OUTPUT
securitySELinux 정책 사용INPUT, OUTPUT, FORWARD

Iptables Chain & Hook

ChainDescription
PREROUING패킷이 목적지에 도달하기 전에 변경
INPUT로컬 시스템으로 들어오는 패킷 필터링
FORWARD다른 인터페이스로 전달되는 패킷 필터링
OUTPUT로컬에서 생성한 패킷 필터링
POSTROUTING패킷이 인터페이스를 통해 나가기 직전 변경

Chain Strcture

iptables 구조도


Command

Install Package

apt install -y iptables iptables-persistent
systemctl enable --now iptables

Basic Structure

iptables [Access_Option] INPUT -s [Soure] --sport [Source_Port] -d [Destination] --dport [Destination_Port] -j [Policy]

Iptables Default Policy Access Option

OptionDescription
-L (--list)적용 되어 있는 정책 목록 출력
-A (--append)새로운 정책 추가(가장 낮은 순위로 추가됨)
-I (--insert)새로운 정책 삽입(가장 높은 순위로 삽입됨)
-R (--replace)새로운 정책 교체(기존의 정책을 교체)
-D (--delete)해당 정책을 삭제
-N (--new-chain)새로운 체인 생성(INPUT,OUTPUT,FORWARD 제외)
-P (--policy)기본 정책 변경
-F (--flush)체인에 설정된 규칙 초기화
-Z체인의 모든 규칙들의 패킷과 바이트 카운터를 0 으로 만든다.
-X (--delete-chain)비어있는 체인을 삭제
-E체인 이름 변경

Iptables Access Option

OptionDescription
-s (--source)출발지 주소
-d (--destination)목적지 주소
--sport출발지 포트
--dport목적지 포트
-p (--protocol)프로토콜 (tcp, udp...)
-i (--in-interface)패킷이 들어오는 네트워크 인터페이스 (inbound interface)
-o (--out-interface)패킷이 나가는 네트워크 인터페이스 (outbound interface)
-f (--fragment)나뉜 패킷
-j (--jump)패킷 상태 제어

Target

OptionDescription
ACCEPT패킷 허용
DROP패킷 버림
REJECT패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송
LOG패킷을 syslog에 기록
RETURN호출 체인 내에서 패킷 처리를 지속함
profile
클라우드 엔지니어가 목표인 학생

0개의 댓글