ipset-linux防火墙的扩展实现对指定ip的限制访问

参考:http://blog.csdn.net/dog250/article/details/41123469    于Linux-2.6.32内核上编译ipset-6.23的坎坷经历

      http://netsecurity.51cto.com/art/201501/463157.htm      如何在Linux上高效阻止恶意IP地址?

      http://blog.csdn.net/opensure/article/details/46047931    ipset - linux防火墙的扩展 

          http://www.xitongzhijia.net/xtjc/20150106/34147_2.html   Linux拒绝国外IP访问

      http://blog.chinaunix.net/uid-24683784-id-5020892.html   用ipset配置linux防火墙

      

                               


安装:

 官方网站:http://ipset.netfilter.org/install.html 

最简单的方法就是yum安装,但是该方法版本比较低,缺少一些使用的模块参数等,所以不大推荐;

 yum install ipset -y


编译安装:

  

   1. 依赖环境: yum install libmnl libmnl-devel kernel-devel libtool-devel -y 

(新版本的安装方法:git pull git://git.netfilter.org/libmnl.git  运行./autogen.sh)

=======================================================================================

(备注:如果只安装libmnl时,会出现下面的报错:

checking for libmnl... configure: error: Package requirements (libmnl >= 1) were not met:


No package 'libmnl' found


Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.


Alternatively, you may set the environment variables libmnl_CFLAGS

and libmnl_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

)

========================================================================================

在编译的时候可能提示找不到/lib/modules/2.6.32-431.el6.x86_64/source

经过排查发现这个软连接/lib/modules/2.6.32-431.el6.x86_64/build -->/usr/src/kernels/2.6.32-431.el6.x86_64 不存在

解决办法:重新建立软连接

 ln -sb /usr/src/kernels/2.6.32-573.3.1.el6.x86_64 /lib/modules/2.6.32-431.el6.x86_64/build

========================================================================================

在运行 ./autogen.sh时报错:

  找不到 /usr/share/libtool/

解决办法:安装libtool-devel工具包即可 yum install libtool-devel

========================================================================================

   2.编译安装ipset  (linux kernel source code (version >= 2.6.32))

  wget -P /usr/local/src http://ipset.netfilter.org/ipset-6.26.tar.bz2

  cd /usr/local/src && tar xf ipset-6.26.tar.bz2 && cd ipset-6.26

  ./autogen.sh

  ./configure --prefix=/usr/local/ipset 

  make

  make modules  不要执行make modules 和make module_install命令,否则在设置iptables规则的时候会卡死内核

  make install 

  make modules_install


   附注:linux kernel source code (version >= 2.6.16 or >= 2.4.36)

   编译安装:

  wget -P /usr/local/src http://ipset.netfilter.org/ipset-4.5.tar.bz2

  cd /usr/local/src && tar xf ipset-4.5.tar.bz2 && cd ipset-4.5

  make KERNEL_DIR=/lib/modules/$(shell uname -r)/build     #$(shell uname -r)使用shell命令获取

  make KERNEL_DIR=/lib/modules/$(shell uname -r)/build install 

常用使用命令:

  ipset list 查看ip集列表信息

  ipset create Dos hash:ip maxelem 1000000  创建一个IP集Dos,指定类型为hash:ip,设置ip集最多存储IP数为1000000

  ipset add Dos X.X.X.X  增加一个ip地址到IP集Dos中去

  ipset add Dos X.X.X.X/24  增加一个网段到IP集Dos中去

  ipset dell Dos X.X.X.X   删除IP集中指定的IP地址

 

  ipset save Dos -f Dos.txt  将IP集Dos中的信息保存到当前文件目录下面的文件Dos.txt中

  ipset destroy Dos   删除指定的IP集Dos  

  ipset restore Dos -f Dos.txt  将保存的Dos.txt文件中的IP集信息重新导入到ipset中


  其他命令参考 ipset --help


iptable命令参考:

  iptables -A INPUT -m set --match-set Dos src -p tcp --destination-port 80 -j DROP  

                                #拒绝ipset IP集Dos中的地址访问服务器的80端口


  


你可能感兴趣的:(iptables,拒绝ip地址连接,ipset)