본문 바로가기
LINUX/CENTOS

[CENTOS] iptables와 NAT

by tankwoong 2023. 9. 1.
반응형

iptables

iptable에서 -t nat 옵션을 사용하면 nat 테이블을 선택하고 -A 체인명으로 만들고자 하는 체인을 추가한다.

ex) iptables -t nat -A PostRouting  -o eth1 --to 192.168.2.2 -j SNAT=> eth1을 통해 외부로 나가는 패킷에 192.168.2.2를 부여한다.

 

하나씩 보면 다음과 같다.

 

iptables  -t :nat를 설정해줄거야(nat 설정)

-A PostRouting : 출발지를 바꾸는 정책을 추가해 줄 거야(체인 내부 옵션)

-o eth1: 출력 인터페이스는 eth1을 설정할거야.(match 규칙)

--to 192.168.2.2 192.168.2.2로 설정해줄거야

-j SNAT : SNAT 정책을 시행해 줄 거야(출발지를 바꾸는 NAT정책)

 

iptable의 match 규칙


iptables -s or iptables --source

출발지, IP, 도메인을 설정

iptables -d or iptables --destination

도착지, IP, 도메인을 설정 

iptables !

뒤에 따라오는 규칙은 제외 

iptables -p or iptables --protocol

tcp, udp, icmp 등 프로토콜을 설정 

iptables -i or iptables --in-interface

입력 네트워크 인터페이스를 선택

iptables -o or iptables --out-interface

출력 네트워크 인터페이스를 선택 

iptables --sport

소스 포트를 설정하고 :을 사용하여 범위 지정 가능

iptables --dport

타깃 포트를 설정하고 :을 사용하여 포트의 범위 설정

iptables --tcp-flags

SYN, ACK, FIN, RST, URG, PSH, ALL, NONE 같은 TCP flag를 지정 

iptables --syn

TCP flag로 SYN만 가진 것을 지정 

iptables --icmp-type

ICMP 타입을 지정

iptables -m or --match

특정모듈, 규칙과 매치

iptable --state

연결 상태와 매치

iptables --string

응용 계층의 데이터 바이트 순서와 매치 

NAT테이블의 chain

PREROUTING

패킷의 도착지 주소 변경

POSTROUTING

패킷의 출발지 주소 변경 

OUTPUT

호스트에서 밖으로 흐르는 패킷의 도착지 주소를 변경

INPUT

호스트 밖에서 안으로 흐르는 패킷의 주소를 변경 

 

체인 내부 옵션

iptables -A

 

새로운 정책을 가장 마지막에 추가/등록 

iptables -I [체인] [라인번호]

지정한 라인번호에 추가 

iptable -D [체인] [라인번호]

정책 제거 

iptable -R [체인] [라인번호]

정책 수정 

 

 

반응형