티스토리 뷰

왜 설치 하는가?


geoip 는 해당 국가별로 IP정보를 가지고 있는 일종의 DB이다

iptables과 연동하여 나라별로 설정이 가능하다 

예를 들면 한국만 허용, 미국은 허용, 북한은 차단?, 일본은 차단, 이런식의 설정이 가능하다다


ipset 은 아이피들의 집합적인 개념이다

WHITE_IP = (자기집 아이피, 사무실아이피, 친척아이피)

BLACK_IP = (해커아이피, 192.168.0.1, 192.168.10.10)


위와 같이 네임셋 (WHITE_IP, BLACK_IP) 라는 이름으로 지정하여 네임셋에  아이피들을 넣거나 삭제하거나 리스트를 보거나 어떠한 액션을 취할수 있다.


ex) 아래와 같이 방화벽 설정이 가능하다

iptables -A INPUT -m set --set WHITE_IP -j ACCEPT

iptables -A INPUT -m set --set BLACK_IP -j DROP


보안적인면으로 봤을때 특별히 보안이 세다 라는 느낌은 아니며 가용성이 뛰어나다 라고 설명될수 있을거 같다.


설치 환경


OS : Centos 6.0 (2.6.32-71.29.1.el6.i686) 혹은 CentOS 5.6 Core 32bit / 커널 2.6.38.7 kernel Upgrade / iptables 1.4.3 compile
kernel : 2.6.38.8 up compile (cent os 6.0 기본 커널 및 2.6.38 에서도 연동됨)
iptables 1.4.7 rpm 버젼 
xtables-addons 1.3.8

ipset 4.5 


개요


patch-o-matric-ng 프로젝트는 더 이상 개발되지 않음 
참조 : (http://www.netfilter.org/projects/patch-o-matic/index.html)

프로젝트가 xtables-addons 이란 이름으로 다시 시작한듯 함 
참조 : (http://xtables-addons.sourceforge.net)
다운 : (http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/)

설치 참조 : http://www.howtoforge.com/xtables-addons-on-centos-6-and-iptables-geoip-filtering

설치 참조 : http://blog.pages.kr/210 


시스템 기본적으로 설치할 패키지 (최소설치를 음음하였다. 아마 기본패키지가 설치 안되어 있을수도 있음)


yum install openssh-clients gcc iptables-devel make kernel-devel unzip wget perl-CPAN irqbalance ntsysv vim pci*  ncurses* ipvsadm bridge-utils gcc-c++


iptables 1.4.3 설치 (1.4.4 이상 설치해봤는데 에러뜸)

: iptables 는 기본 rpm으로 써보고 컴파일이 잘 안되면 소스설치 해보자 


wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.3.tar.bz2

./configure && make && make install 


xtables 설치

: 현재 Centos6 커널 (2.6.32-431.23.3.el6.x86_64) 에서는 xtables-addons-1.42 까지 설치가 되고 이상 버젼에서는 에러 발생)


wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/1.38/xtables-addons-1.38.tar.xz

설치전 vim mconfig 열어서 아래와 같이 필요한 모듈만 설치하도록 수정해줌

configure: error: Package requirements (xtables >= 1.4.3) were not met: 에러 발생시는 우선 
yum install iptables-devel* 요걸 먼저 해보고 그래도 안되면 ㅋㅋ
./configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ← 요걸로 해보자
              ./configure libxtables_CFLAGS="-I/usr/src/iptables/include" \libxtables_LIBS="-L/usr/src/iptables/libs \-Wl,-rpath/usr/src/iptables/libs -lxtables" ← 아님 요거
make && make install 


Text-CSV-XS 라는거 같은데 geoip 설치할때 필요함 geoip DB는 화일화 할때 필요한듯


wget http://search.cpan.org/CPAN/authors/id/H/HM/HMBRAND/Text-CSV_XS-0.83a.tgz

wget http://pkgs.fedoraproject.org/lookaside/pkgs/perl-Text-CSV_XS/Text-CSV_XS-0.83a.tgz/f9e6db6e4221d67658a26484d9214ecc/Text-CSV_XS-0.83a.tgz
tar xvf Text-CSV_XS-0.83a.tgz

perl Makefile.PL && make && make install 



libmnl (ipset 컴파일 설치 할때 필요한듯?)


http://www.netfilter.org/projects/libmnl/index.html
wget ftp://ftp.netfilter.org/pub/libmnl/libmnl-1.0.1.tar.bz2
tar xvfj libmnl-1.0.1.tar.bz2

./configure && make && make install 



다운로드

http://ipset.netfilter.org/install.html 


소스 설치시 옵션 설정

vim Makefile 아래구문 최대치로 잡아주기

ifndef IP_NF_SET_MAX
IP_NF_SET_MAX=2048

ifndef IP_NF_SET_HASHSIZE

IP_NF_SET_HASHSIZE=1024 


그냥 yum install ipset 하면 된다 Centos 6 이상 지원하는듯...


geoip 국가 DB 설치


cd xtables-addons-1.38/geoip

Maxmind 에서 GEOIP DB 다운 및 설치 스크립트 실행
./xt_geoip_dl
./xt_geoip_build GeoIPCountryWhois.csv

국가정보 DB를 디폴트 경로에 저장
mkdir -p /usr/share/xt_geoip/
cp -r {BE,LE} /usr/share/xt_geoip/

아래와 같이 명령 날려보고 에러없으면 GEOIP 무사 패치는 완료하듯?

iptables -I INPUT -m geoip --src-cc CN -j DROP 


다 설치하고 난뒤는 CentOs 6.X부터는 아래 값이 다 0인데 1로 바꿔주면 됨 0으로 되어있으면 패킷필터링이나 네트워크 불안정...


/etc/sysctl.conf

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-arptables = 1 



관련페이지 & 참고페이지

http://xtables-addons.sourceforge.net/

http://ipset.netfilter.org/install.html

댓글
댓글쓰기 폼