在Linux下如何批量屏蔽恶意IP地址防攻击的案例教程-学派吧

如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624
商祺云-阿里代理、景安代理、西部代理

很多情况下,你可能需要在Linux下屏蔽IP地址。比如,作为一个终端用户,你可能想要免受间谍软件或者IP追踪的困扰。如果你是一名系统管理员,你可能想要禁止垃圾IP地址访问你们的公司邮件服务器。或者你因一些原因想要禁止某些国家访问你的web服务。在许多情况下,然而,你的IP地址屏蔽列表可能会很快地增长到几万的IP。该如何处理这个?

解决方案: ipset + iblocklist2ipset

安装:

最简单的方法就是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 xjf ipset-6.26.tar.bz2 && cd ipset-6.26
./autogen.sh
./configure
make
make modules
make install 
make modules_install

注意:不同linux内核使用不同版本的源码包

附注: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=http://img.xue163.com/lib/modules/$(shell uname -r)/build     #$(shell uname -r)使用shell命令获取
make KERNEL_DIR=http://img.xue163.com/lib/modules/$(shell uname -r)/build install

常用使用命令:

ipset list 查看ip集列表信息
ipset create pythontab hash:ip maxelem 1000000  创建一个IP集pythontab,指定类型为hash:ip,设置ip集最多存储IP数为1000000
ipset add pythontab X.X.X.X  增加一个ip地址到IP集pythontab中去
ipset add pythontab X.X.X.X/24  增加一个网段到IP集pythontab中去
ipset dell pythontab X.X.X.X   删除IP集中指定的IP地址
ipset list 查看当前所有list
ipset save pythontab -f pythontab.txt  将IP集pythontab中的信息保存到当前文件目录下面的文件pythontab.txt中
ipset destroy pythontab   删除指定的IP集pythontab  
ipset restore -f pythontab.txt  将保存的pythontab.txt文件中的IP集信息重新导入到ipset中
其他命令参考 ipset --help
iptable命令参考:
iptables -I INPUT -m set --match-set pythontab src -p tcp --destination-port 80 -j DROP #拒绝ipset IP集pythontab中的地址访问服务器的80端口
service iptables save
service iptables restart

自动IP地址禁用

现在你应该看到了IP集合的强大了。维护IP黑名单是一件繁琐和费时的工作。实际上,有很多免费或者收费的服务可以来帮你完成这个。一个额外的好处是,让我们看看如何自动将IP黑名单加到IP集中。

首先让我们从iblocklist.com得到免费的黑名单

接下来我要使用一个名为iblocklist2ipset的开源Python工具来将黑名单转化成IP集。

首先,你需要安装了pip

使用的下面命令安装iblocklist2ipset。

$ pip install iblocklist2ipset

在一些发行版如Fedora,你可能需要运行:

$ python-pip install iblocklist2ipset

现在到iblocklist.com,抓取任何一个P2P列表的URL(比如”level1″列表)。

下载解压,然后保存为txt文件,比如叫做pythontab.txt, 因为iblocklist2ipset仅支持url获取list,所以把pythontab.txt放到你网站的任意目录。比如:ipset目录

$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txt

上面的命令运行之后,你会得到一个名为pythontab.txt的文件。如果查看它的内容,你会看到像这些:

create pythontab hash:net family inet hashsize 131072 maxelem 237302
add pythontab 1.2.4.0/24
add pythontab 1.2.8.0/24
add pythontab 1.9.75.8/32
add pythontab 1.9.96.105/32
add pythontab 1.9.102.251/32
add pythontab 1.9.189.65/32

你可以用下面的ipset命令来加载这个文件:

$ ipset restore -f pythontab.txt

现在可以查看自动创建的IP集:

$ ipset list pythontab

这样就省去了手动管理的麻烦。

注意,在centos下使用yum安装的不是最新版,可能会不支持-f参数,导入黑名单文件,所以建议用源码包安装最新版本

以上就是在Linux下如何批量屏蔽恶意IP地址防攻击的案例分析的详细内容,更多请关注学派吧其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/2997.html

赞 (0)
打赏 微信扫一扫 微信扫一扫
总结关于命令历史注意点-linux教程
上一篇 2019年1月14日 上午10:44
下一篇 2019年1月14日 上午10:45

相关推荐

  • linux/centos中如何使用SCP命令搬迁网站数据

    SCP(安全副本)是一个命令行实用程序,允许用户在两个位置之间安全地复制文件和目录。下面本篇文章就来带大家了解一下SCP命令,介绍使用SCP命令是如何安全地传输文件,希望对大家有所帮助。 linux SCP命令 SCP命令是一个linux下进行远程拷贝文件的命令,允许用户在两个位置之间安全地复制文件和目录。 使用SCP命令,用户可以复制文件(或目录): ● …

    2019年3月23日
    3.2K00
  • 最新如何在macOS上安装Homebrew的图文教程

    Homebrew是最受欢迎的macOS系统包管理工具,使用brew命令行实用程序,可以轻松地在Mac上添加新软件包,但首先必须安装它。本篇文章将介绍如何使用简单命令在系统上安装Homebrew。 如何安装Homebrew? 在系统上启动终端(/applications/utilities/terminal)应用程序,然后在其上运行以下命令。 $ ruby -…

    服务器运维 2019年5月7日
    3.7K00
  • Nginx、FPM配置及优化教程说明-学派吧 linux运维

    Nginx配置 main模块 events 模块 http模块 sendfile keepalive 超时 map proxy openfile client buffer Gzip fastcgi cache server模块 正则 Rewrite 文件缓存 FPM HTTPS upstream模块 默认轮询(加权) 最小连接数 IP Hash FPM配置…

    服务器运维 2018年10月11日
    3.7K00
  • win2008 R2 WEB服务器安全设置指南之组策略与用户设置详解教程-windows教程-学派吧

    这篇文章主要介绍了win2008 R2 WEB 服务器安全设置指南之组策略与用户设置,需要的朋友可以参考下 通过优化设置组策略、对系统默认的管理员、用户进行重命名、创建陷阱帐户等措施来提高系统安全性。 接上篇,我们已经改好了远程连接端口,已经能拒绝一部份攻击了,但是这些设置还远远不够。在做以下安全时,必须确保你的服务器软件已经全部配置完毕,并且能正常使用,不…

    服务器运维 2018年12月2日
    3.4K00
  • 学派吧-关于Linux CentOS OpenVPN配置概述的具体教程-linux教程

    本文概要说明 CentOS 系统下的 OpenVPN 配置。 说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。 OpenVPN 配置 准备工作 安装 OpenVPN 服务 配置 OpenVPN 服务(服务端) 启动 OpenVPN 准备工作 1. 使用 工具:update_source.sh 更新 yum 源为阿里云…

    服务器运维 2018年12月12日
    3.5K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部