BuildingKernelModules
의 문서를 참고하면 됩니다. 굳이 커널을 모두 빌드할 필요는 없지요. 이 과정도 귀찮거나.. 또는 영어가 어려우신 분들은 첨부된 파일을 받아서 다음의 과정을 거치면 간단하게 해결이 될 수 있을 겁니다.
1. build script download
RHEL/CentOS 4/5 용이 구분이 되어 있으니 구분하여 받으시기 바랍니다.
2. 압축 해제
임의의 디렉토리에서 압축을 해제합니다. 압축을 해제하면 geoip 라는 디렉토리가 생성됩니다.
shell> tar xvfpz geoip-patch-o-matic-cent5.tar.gz
3. 커널 빌드
shell> cd geoip
shell> ./geoip-check
와 같이 하면 빌드가 되고 등록까지 됩니다. 커널 업데이트에 대비하여 geoip-check 를 다음과 같이 이용할 수도 있습니다. rc.local 에 다음과 같이 등록을 해 놓으면 커널이 변경이 되어 geoip 모듈이 없을 경우 빌드를 하고 올리도록 할 수 있습니다.
/YOUR_PATH/geoip-check >& /dev/null
[ $? -eq 0 ] && iptables -A INPUT -m geoip --src-cc CN -j REJECT
파일 받기
RHEL 6 또는 CentOS 6의 경우에는 RPM으로 아예 묶어 놓았으니 이를 이용하시면 되겠습니다.
1. http://mirror.oops.org/pub/AnNyung/2/AnNyung.repo 를 /etc/yum.repos.d 에 다운로드
2. yum clean all
3. yum install kmod-geoip
4. yum update iptables
5. yum install GeoIP
6. geoip-csv2bin
이렇게까지 하시면 사용을 하실 수 있습니다. 6번의 경우 매달 한번씩 실행해 주시면 geoip data가 갱신이 됩니다.
Comments List
안녕 리눅스 2에서는 kmod-geoip 로 커널 모듈을 지원합니다. yum install kmod-geoip 하시면 되겠습니다.
저도 so파일이 안생기네요...흠...
CentOS 4, CentOS 5 둘다 테스트 해보는데
똑같은 증상입니다.
왜그런걸까요...?
iptables v1.3.5: Couldn't load match `geoip':/lib/iptables/libipt_geoip.so: cannot open shared object file: No such file or directory
이 에러는 iptables의 geoip extension이 없어서 발생하는 문제 입니다. 이 글을 iptables의 geoip extension을 알아서 준비하셨거나 하실 거라고 가정을 하고, geoip kernel netfilter module을 빌드하기 위한 방법을 적은 것입니다.
즉, iptables 를 geoip extension을 넣어서 새로 빌드 하셔야 한다는 얘기 입니다. geoip extension은 patch-o-matics 에서 찾으실 수 있는데, 요즘 geoip extension이 있는 사이트가 죽은 모양인지 연결이 안되서, 인터넷을 뒤져야 할 수도 있을 것 같습니다. ^^;
즉, iptables에서 geoip를 사용하기 위해서는 ipbltales geoip extension과 kernel netfilter iptables module 이 필요하고, 이 글은 후자(kernel module)을 빌드하기 위한 글 입니다. (즉, iptblaes에서 geoip를 사용하기 위한 전반적인 내용을 담고 있는 것이 아닙니다.)
안녕하세요. 오랫만에 찾아 뵙습니다. ^^;;
그동안 잘 지내셨죠.
예전에 얼핏 말씀드린 VPN 서비스는 잘 런칭이 되었습니다.
qos부분 역시 브릿지 방식의 cbq로 약간의 python과 radius server db 연동으로
잘 해결 되었어요. ^^ (oops님의 글이 많은 도움이 되었습니다. [_ _] )
오늘은 최근에 또다른 이슈가 생겨서 방문하게 되었습니다.
DDOS 존을 구축하는 임무를 수행하고 있는데요.
syn_proxy서버 구축 + iptables connlimit를 이용한 세션 제어까지는 마무리 하였습니다.(모두 브리지방식 입니다. ^^)
추가로 해외망 차단 부분을 목적지 아이피 별로 제어를 하고 싶은데요.
바로 적용 되지는 않는듯합니다.
일단 램이 사양이 높아 PAE로 DKMS방식으로 yum 업그레이드 한 상태입니다.
이상태에서 스크립트 내용을 분석해서 필요한 부분만 적용을 해도 .so 파일이 생성되지 않습니다.;;
어떤 부분이 문제가 될까요?
iptables -L로 리스트를 확인해봐도 안나오던데.... 어떻게 확인해봐야 할까요?
GeoIP CentOS 5 용을 업데이트 했습니다. CentOS 5.2 에서 모듈 체크 제대로 못하는 문제와 GeoIP kernel module 의 버그를 fix해서 다시 올립니다.
geoip 제대로 동작을 하나요?
저 같은 경우는 geoip 데이터베이스에 해당 ip 가 있음에도 불구하고
제대로 동작 하지 않더군요.
예를 들어서 중국 IP 대역을 차단 했는데 국내 몇 IP 도 차단되어서
이 기능을 꺼 놓고 사용 하는대요
(geoip 데이터베이스는 업데이트 해줬습니다.)
GeoIP Lite 의 경우 국가 database 의 정확성은 90% 라고 나옵니다. 실제 상용을 사용해 본적이 없어서 근거는 없고요 ^^;
그래서 저는 libkrisp 를 만들어서 국내 IP는 이걸 이용하고, libkrisp 가 GeoIP 연동을 하도록 하여, 국외의 IP는 GeoIP database를 사용하도록 해서 사용합니다.
GeoIP 의 정확성에 대해서는 저도 장담을 할 수는 없지요. 국내 IP가 geoiplookup 에서 중국 IP로 나온다면.. GeoIP의 문제가 아니라 GeoIP database 의 문제인 것이겠죠. ^^;