2. Patch-O-Matic

2.1. Patch-O-Matic이란 무엇인가?

iptables 메이크파일은 `patch-o-matic' (또는 `p-o-m')이라 불리는 기능을 포함한다. p-o-m는 당신이 원하는 패치들을 선택하는 과정으로 안내해 주고, 당신을 위해 커널을 자동으로 패치한다.

처음, 당신은 가장 최근의 CVS 트리를 얻어야 하며, 가장 최근의 확장을 사용하고 있는지를 확인하라. 그렇게 하려면 다음과 같이 해야 한다 :

# cvs -d :pserver:cvs@pserver.samba.org:/cvsroot login
# cvs -z3 -d :pserver:cvs@pserver.samba.org:/cvsroot co netfilter
		

이것은 최상위 디렉토리 `netfilter/'를 만들 것이고, 내부의 파일들을 검사한다.

커널 소스가 `/usr/src/linux/'에 이미 있음을 확인하라. 의존성이 검사되었는지를 확인하고 그렇지 않다면 :

# cd /usr/src/linux/
# make dep
		

그 다음 `userspace/'에 있는 넷필터 디렉토리로 가서, p-o-m을 호출할수 있다.

2.2. Patch-O-Matic 실행하기

`userspace/` 디렉토리에서, p-o-m을 실행하라 :

# make patch-o-matic

Welcome to Rusty's Patch-o-matic!

Each patch is a new feature: many have minimal impact, some do not.
Almost every one has bugs, so I don't recommend applying them all!
-------------------------------------------------------

Already applied: 2.4.1 2.4.4
Testing... name_of_the_patch NOT APPLIED ( 2 missing files)
The name_of_the_patch patch:
	Here usually is the help text describing what
	the patch is for, what you can expect from it,
	and what you should not expect from it.
	Do you want to apply this patch [N/y/t/f/q/?]
		

p-o-m은 관련된 모든 패치를 실행한다. 이미 모두 적용되어 있다면, 첫줄에 `Already applied:'를 볼 수 있다. 그렇지 않다면, 패치 이름과 약간의 설명이 표시될 것이다. p-o-m은 어떻게 진행되는지를 설명한다 : `NOT APPLIED ( n missing files)'는 패치가 아직 적용되지 않았음을 의미하고, 반면에 `NOT APPLIED ( n rejects out of n hunks)'는 일반적으로 다음을 뜻한다:

  1. 패치가 완벽하게 적용되지 않았거나...

  2. ...또는 이미 패치하려는 커널에 포함되어 있는 경우

마지막으로 패치할 것인지 아닌지를 결정하게 하는 프롬프트가 보일 것이다.

경험적으로 실제로 패치를 적용하기 전에 각 패치에 대한 약간의 설명을 조심스럽게 읽는 것이다. 현재 patch-o-matic에 대한 많은 공식 패치가 있기 때문에 (그리고 아마도 더 많은 비공식 패치도 있을 것이다), 모두를 적용하는 것은 추천하지 않는다 ! 비록 더많은 패치가 필요할때 넷필터를 재컴파일하는 것을 의미할 지라고, 원하는 패치만 적용하는 것을 고려해야 한다.

이제 patch-o-matic의 새로운 형태가 만들어졌을 것이다. 이것은 단지 깨끗하게 적용되어진 패치들을 보여줄 뿐만 아니라, 적용되지 않은 다른 모든 패치도 보여준다. 이를 실행하기 위해서, 다음과 같이 하라 :

		
# make most-of-pom
		
		

이것은 관련 패치와 그리고 그와 상호작용을 하는 것에 관해서는 patch-o-matic과 정확하게 같은 방법으로 동작한다. `developer-only' 패치를 사용하는 것은 피하라.

2.3. 그 다음은 무엇을 하는가 ?

적용하기를 원하는 모든 패치를 적용했다면, 다음 단계는 커널을 재컴파일하고 설치하는 것이다. 이 하우투는 그것을 어떻게 하는지에 대한 설명은 하지 않는다. 대신에 리눅스 커널 HOWTO 를 보라.

커널을 재구성하는 동안, ``Networking Options -> Netfilter Configuration''에서 새로운 옵션들을 볼 수 있다. 필요로 하는 옵션을 선택하고, 커널을 재컴파일하고 설치하라.

커널을 설치하면, `userspace/' 디렉토리에 있는 ``iptables'' 패키지를 다음과 같이 컴파일하고 설치하라

# make all install
		

새로운 iptables 패키지가 설치된 것이다 ! 이제 새로운 기능을 사용할 시간이다.