Rusty Russell, mailing list netfilter@lists.samba.org
v1.0 Tue Mar 21 23:29:42 EST 2000
-----------------------------------------------------------------------------------
이 문서는 2.4 Linux Kernel 에서 잘못된 Packet을 Filtering하기 위하여 어떻게 iptables 을 이용하는가를 기술한다.
-----------------------------------------------------------------------------------
6. Packet이 Filter를 어떻게 지나는가?
Kernel은 'Filter' Table에 세 개의 규칙을 가지고 시작한다. 이것을 Firewall Chain 또는 그냥 Chain이라고 한다. 그 세 개의 Chain은 INPUT, OUTPUT, FORWARD 이다.
이것은 2.0 이나 2.2 Kernel과는 아주 다르게 움직인다.
이 Chain은 아래 그림처럼 생겼다.
위 그림에서 세 개의 원은 위에서 언급한 세 개의 Chain을 나타낸다. Packet이 그림에서 동그라미로 나타낸 곳에 이르면 그 Chain은 그 Packet의 운명을 결정하기 위하여 시험한다. Chain이 그 Packet을 DROP 하라고 하면 Packet은 그곳에서 삭제된다. 그러나 그 Chain이 ACCEPT 하고 하면 이 그림의 다음 부분으로 계속 전달된다.
Chain은 규칙의 점검표이다. 각 규칙은 'Packet의 Header가 이렇게 되어있으면 이 곳에서 무엇을 하라'는 형태로 되어 있다. 규칙이 그 Packet에 맞지 않으면 다음 규칙을 참고한다. 마지막으로 더 이상 고려할 규칙이 없으면 Kernel은 무엇을 할 것인가를 결정하기 위하여 그 Chain의 정책을 확인한다. 보안을 생각하는 System에서 이러한 정책은 보통 Kernel에게 그 Packet을 DROP 하도록 한다.
Packet이 Kernel에 도착하면 그 Packet의 목적지를 확인한다. 이것은 'Routing' 이라고 한다.
이것의 목적지가 이곳이면, Packet은 위 그림에서 아래쪽 방향으로 전달 되어 입력 Chain에 도달한다. 이것이 이 Chain을 통과하면 Packet을 기다리고 있던 어떤 Processor도 그것을 받게 된다.
그렇지 않으면, Kernel이 Forwarding 불능으로 되어있던가, Packet을 어떻게 Forwarding해야 하는가를 알지 못하면, 그 Packet은 DROP 된다. Forwarding이 가능하게 되어있고 다른 곳이 목적지이면 Packet은 그림의 오른쪽 방향으로 전달 되어 Forwarding Chain으로 간다. 이 Chain이 ACCEPT 하게 되면 이것은 Forwarding 할 Network로 보내진다.
마지막으로, 이곳에서 돌아가던 Program은 Network Packet을 전송할 수 있게 된다. 이 Packet은 즉시 출력 Chain에 보내진다. 이 Chain이 ACCEPT 하게 되면 이 Packet은 그 목적지가 어디든지 보내진다.
'Operating System > Linux' 카테고리의 다른 글
| Linux Directory 구조 (0) | 2007/11/11 |
|---|---|
| SULinux로 손쉽게 서버를 구축하자 (0) | 2007/11/02 |
| Apache Tuning 정리 (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (iptables와 ipchains의 차이점) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (iptables 사용하기) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (Packet이 Filter 지나는 경로) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (Packet Filtering Guide) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (Kernel 보안) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (Packet Filter란 무엇인가?) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (Web Site와 List가 어디에 있나?) (0) | 2007/06/22 |
| Linux 2.4 Packet Filtering How-To (소개) (0) | 2007/06/22 |