본문으로 바로가기

CENTOS 6.0 IPTABLES에 IPSET 기능 추가하기

category Linux 2019. 2. 8. 21:39

OS 및 어플리케이션 버전 정보

OS : CentOS 6.0

Kernel Version : 2.6.32-71

Iptables Version : 1.4.7

ipset version : 4.5


iptables의 확장 기능인 ipset은 IP들의 집합을 별도로 만들어 관리 할 수 있다. iptables 유틸을 통해 관리 할 때보다 ipset은 좀 더 다양한 방법으로 많은 IP 셋을 관리 할 수 있는 이점과 인덱싱 데이터 저장 방식으로 인해 iptables로 5000건 이상의 룰셋이 등록 되었을때 시스템의 성능이 급격하게 떨어지는 반면 ipset은 많은 IP 세트를 설정 하더라도 성능이 심각하게 떨어지지 않다는 것이다. iptables는 차단하고자하는 룰셋 목록이 많아지면 유지보수가 힘들다.


다운로드 주소 : http://ipset.netfilter.org/install.html


Kernel 버전 2.6.32 이하 버전은 ipset-4.x을 사용하며, 2.6.32 이상 버전에서는 ipset-6.xx 버전을 이용할 수 있다.


#cd /usr/local/src

#wget http://ipset.netfilter.org/ipset-4.5.tar.bz2

#tar xvfj ipset-4.5.tar.bz2

#cd ipset-4.5

#make IP_NF_SET_MAX=2046 IP_NF_SET_HASHSIZE=2048

#make IP_NF_SET_MAX=2046 IP_NF_SET_HASHSIZE=2048 INSTALL

#modprobe ip_set

사용 예제


iptables에서 호출하고자 하는 명칭 blockip를 지정하고 IP set type을 IP 주소를 정하나는 해시인 iphash로 지정한다.

#ipset -N blockip iphash


blockip set에 IP 등록하기

#ipset -A blockip 2.2.2.2

#ipset -A blockip 3.3.3.3


등록된 IP SET을 iptables에서 호출하여 차단하기

#iptables -I INPUT -m set --match-set blockip src -j DROP


blockip에 IP 추가 등록하기

#ipset -A blockip 4.4.4.4

ip set에 등록된 set들은 반드시 ipset -S를 통해 저장하여야 한다. iptables와 마찬가지로 휘발성 저장 정보 이기 때문에 시스템 재부팅이 되면 기록된 내용들이 소멸된다.


출처 :

http://blog.naver.com/PostView.nhn?blogId=kamagod&logNo=220558869504&parentCategoryNo=&categoryNo=7&viewDate=&isShowPopularPosts=true&from=search