centos5 geoip patch하기

Security 2008. 7. 30. 03:06

centos 5 용 geoip 패치 방법 및 커널 커스텀 rpm
간략버젼입니다.
참조에 있는 URL 들을 보시면 됩니다. 단지 기억하기 위한 한글버젼입니다.

참조:http://irdeal.tistory.com/5 CentOS 커널 rpm 빌드하기
위의 글의 원본이자 업데이트 본은
http://wiki.centos.org/HowTos/Custom_Kernel 입니다.

참조:http://www.debian-administration.org/articles/518 Country-based packet filtering with iptables

1. yum groupinstall "Development Tools"
2. yum install kernel-devel
3. yum install rpm-build rpm-libs

이정도로 개발툴은 대충 끝납니다.
커널소스rpm 이 깔렸는지 확인합니다.

/usr/src/redhat/SPECS 디렉에 가서 다음과 같이 실행합니다.
rpmbuild -bp --target=`uname -m` kernel.spec
그러면 /usr/src/redhat/BUILD 디렉토리에 커널소스가 풀리고 패치가 적용됩니다.

커널을 rpm 으로 만들기 위해서 일단 기존의 디렉토리들을 백업해둡니다. ( 패치 파일로 만들기 위해 )

그럼 이제 geoip 를 위해서 소스를 받아봅니다.
커널을 위한 p-o-m 패치와 iptables 를 새로 컴파일 해야합니다.
http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/ 여기서 p-o-m 을 받습니다.
http://ftp.netfilter.org/pub/iptables/ 여기서 iptables를 받습니다.

적절한 디렉토리에 둘다 소스를 풉니다.
p-o-m 을 먼저 깝니다. 디렉토리에 진입후에
KERNEL_DIR=< \
IPTABLES_DIR=< \
./runme --download
를 해줍니다. ( 이부분이 현재 바뀐 부분입니다. )
그러면 geoip등의 패치를 웹에서 받아서 패치 해줍니다.
( download 하지 않을 경우엔 geoip는 패치 안됩니다. )
위와같이 하고 --download 대신에 geoip 를 넣어서 geoip 를 패치해줍니다.

rpm용 커널의 설정파일을 복사합니다.
cd /usr/src/redhat/BUILD/kernel-버젼/linux-버젼
cp /usr/src/redhat/SOURCES/kernel-버젼-아키텍쳐.config .config

커널을 설정합니다.
make menuconfig
위의 부분에서 geoip 만 모듈로 해주었습니다.

패치파일을 만듭니다. diff 사용법은 검색하면 많이 나옵니다.

그리고 .config 파일의 제일 윗 부분에 다음과 같이 적습니다.
# i386 <-- 64비트가 아닌경우
# x86_64 <-- 64비트인 경우만

그리고 아까의 rpm 설정을 반대로 소스에 복사해줍니다.
cp /usr/src/redhat/BUILD/kernel-버젼/linux-버젼/.config /usr/src/redhat/SOURCES/kernel-버젼-아키텍쳐.config

spec 파일을 수정해줍니다.
/usr/src/redhat/SPECS/kernel.spec 파일을 수정해줍니다.
커널 버젼등의 수정은 알아서 하실것이고.
패치파일을 잘 등록합니다. -__-;;; ( 너무 무책임한가.. )
단 이때 spec에서 #define buildxen 0 로 해줍니다.
xen에는 p-o-m 이든 뭔가 안맞는거 같은데.. 필요가 없어서 고려 않해봤습니다.

rpmbuild -ba --target=`uname -m` kernel.spec

으로 빌드하면 됩니다.

출처 : http://kldp.org/node/82983

참고 : http://www.maxmind.com/download/geoip/database/

'Security' 카테고리의 다른 글

웹 해킹 서버 분석과 웹쉘 대응방법 1편  (0) 2009.04.05
Tomcat 보안 개요  (0) 2009.03.12
MySQL DB 보안(1)  (0) 2007.06.11
FreeBSD 보안 하드닝 Tip  (0) 2007.06.11
SSH 보안설정  (0) 2007.06.11
, .