iptables : 쉽게 말해 리눅스 상에서 방화벽을 설정하는 도구
iptables에는 중요한 Chain이라는 것이 존재함. Chain은 패킷이 어떻게 조작될지 상태를 지정함
PREROUTING : 인터페이스를 통해 들어온 패킷을 가장 먼저 처리, 목적지 주소 변경(DNAT)
INPUT : 인터페이스를 통해 로컬 프로세스로 들어오는 패킷의 처리
OUTPUT : 해당 프로세스에서 처리한 패킷을 밖으로 내보내는 패킷에 대한 처리
FORWARD : 다른 호스트로 통과시켜 보낼 패킷에 대한 처리. 내가 수신하는 것이 아닌 지나가는 패킷을 처리.
POSTROUTING : 인터페이스를 통해 나갈 패킷에 대한 처리. 출발지 주소 변경(SNAT)
MASQUERADE : 내부의 사설 IP들이 외부 인터넷 등 다른 네트워크에 연결되도록 해주는 기능
SNAT(Source NAT) : 내부 사설 IP들이 외부로 나갈 때 공인 IP로 변환되는 것
DNAT(Destination NAT) : 외부에서 요청이 들어오는 IP주소를 내부 사설 IP주소로 변환되는 것