iptables - 테이블 (table) (Filter table, NAT table, Mangle table)

2011. 4. 2. 22:52카테고리 없음


@ 테이블(table)

- 방화벽에서 특정한 기능을 제공
- filter, nat, mangle 이렇게 3개가 있으며, 각각은 별도의 기능을 가지고 있음

@ Filter table

- 방화벽의 가장 핵심적인 테이블로서 특정 룰에 따라 패킷을 필터링하거나 허용하는 역할을 함
- filter 테이블에는 기본적으로 3개의 chain이 있음

1. INPUT chain
- 외부에서 방화벽 자체로 향하는 패킷에 대한 필터링을 담당

2. FORWARD chain
- 방화벽을 통과하여 방화벽이 보호하는 다른 서버등으로 향하는 경우
- 내부의 다른 서버에서 방화벽을 통해 외부로 나가는 패킷에 대한 필터링을 하는 경우 

3. OUTPUT chain
- 방화벽 자체에서 외부로 나가는 패킷에 대한 필터링을 담당함

ex) 한대의 리눅스서버 자체내에서 웹서비스 등 일반 서비스와 함께 패킷 필터링을 제공하고자 할 경우 FORWARD는 사용하지 않고, INPUT과 OUTPUT chain만 사용, 리눅스를 전용 방화벽 장비로 설정하여 보호 하고자 하는 서버의 앞단에 설치할 경우에는
FORWARD chain을 사용하여 내부의 서버들에 대한 패킷 필터링 정책을 설정


@ NAT table

- 패킷을 필터링하는 기능은 없음
- 방화벽으로 향하는 패킷을 방화벽이 보호하는 내부 네트워크의 다른 주소로 포워딩
- 방화벽 내부 네트워크에서 방화벽을 통해 외부 네트워크로 나갈 때 다른 ip주소로 변환하는 역할을 함

1. POSTROUTING chain
- Source NAT (SNAT) 타겟과 매칭되어 내부 네트워크에서 방화벽을 통해 외부로 나갈 떄 사용
- POSTROUTING은 사무실 등에서 사설 ip를 사용하면서 하나의 공인 ip로 인터넷을 공유하고자 할때 즉, 공유기의 용도로 사용할 수 있음

2. PREROUTING chain
- Destination NAT (DNAT) 타겟과 매칭되어 주로 외부에서 방화벽 내부 서버로 향하는 패킷을 방화벽이 보호하는 내부 서버로 포워딩할 때 사용
- PREROUTING은 사설 ip로 서버를 운영하면서 외부로 서비스를 하고자 할때 사용


@ Mangle 테이블

- 그리 자주 사용되지는 않음
- 패킷의 TTL이나 TOS(type of service : 패킷전송의 우선순위)값을 변경하거나 매칭할 때 사용

1. PREROUTING chain
- 라우팅 경로가 결정되기 전에 방화벽으로 들어오는 패킷에 대해 변경하거나 매칭을 함

2. OUTPUT chain
- 내부에서 생성된 패킷이 방화벽을 통해 나갈 때 변경하거나 매칭함