IP黑名单服务系统的设计实现
◆阮晓龙1 杨 明2
【摘 要】摘要:本文结合互联网现有的黑名单服务与应用,进行分析并整合,设计并实现了一套黑名单服务系统。通过采集开放的黑名单数据,进行聚合,然后面向社会提供免费开放的服务。 【期刊名称】网络安全技术与应用 【年(卷),期】2017(000)002 【总页数】3
【关键词】IP黑名单;软件设计;BGP服务
0 前言
随着互联网的发展,应用也越来越广泛,如何提高互联网的安全也显得尤为重要。本文对现有的黑名单服务进行整合,实现面向互联网服务的黑名单管理系统,并提出通过黑名单数据提升服务器、网络的安全性的一种应用方案。
1 IP黑名单应用的现状
目前IP黑名单应用常见三种方式:内部防火墙或服务器使用;提供开放的TXT文本黑名单;提供BGP服务的黑名单。 1.1 内部防火墙或服务器使用
许多单位都有自己的黑名单库,通常会在其内部的防火墙或服务器上添加白名单或者黑名单来达到访问控制的目的,但却不能够对外提供服务。 1.2 提供开放的TXT文本黑名单
一些高校或公益组织会将收集到的黑名单数据提供开放的API的方式提供出来供公众使用。
例如openbl在互联网中提供了开放的黑名单列表,网址为http://www.openbl.org/listl.html,如图1所示。用户只需要通过HTTP请求就可以获取到黑名单数据。这种方式提供的黑名单服务通常在应用层上进行应用。
1.3 提供BGP服务的黑名单
一些高校或公益组织会将收集到的黑名单数据通过BGP服务器,将黑名单注入到BGP系统中。
例如中国科学技术大学在BGP系统中注入了黑名单,使用者只需要按照要求配置路由器就可以自动学习到黑名单路由,从而在网络层上对黑名单进行封锁,进而有效防止
Dos/DDos
攻击。相关使用说明如
http://blackip.ustc.edu.cn/intro.php上所示。
2 系统架构
根据对黑名单系统的应用现状分析和需求调研,本文设计一套黑名单服务系统,包含多种服务模式,面向社会提供接口服务。 2.1 物理架构
IP黑名单服务系统由7台服务器架构而成,1台数据采集服务器,3台数据库服务器(一主二从模式),1台管理系统服务器,1台BGP服务器,1台接口服务器,如图2所示。 2.2 逻辑架构
IP黑名单服务系统采用B/S架构,分为服务门户和管理系统两个部分,其逻辑体系如图3所示。系统数据库使用MySQL进行数据存储。 2.3 服务体系结构
IP黑名单服务系统对外提供HTTP和BGP两种接口。HTTP接口提供JSON、XML、TXT格式的数据;BGP服务接口则通过配置路由器来获取黑名单路由表信息。其服务体系结构如图4所示。
3 关键功能
3.1 数据采集引擎
数据采集引擎主要用于从互联网采集黑名单数据,然后进行数据清洗,存入数据库中。数据采集采用多进程的方式进行,每个进程对应一个互联网的数据接口,采用文本缓存机制来进行数据存储,其主要过程如下所示:
(1)向指定URL发起HTTP请求,如果失败则继续发起请求,直到请求成功或超过最大次数。
(2)通过正则分析获取黑名单数据,并进行数据清洗。
(3)读取文本中上次请求的黑名单数据与当前获取的数据比较,计算出新增加的黑名单与过期的黑名单。
(4)默认设置黑名单过期时间为1天,然后刷新文本缓存,更新数据库数据。 (5)每隔5分钟执行上述1-4步骤。 3.2 数据发布引擎
数据发布引擎主要通过生成JSON、XML、TXT文件的方式用于对外发布数据,并加上接口验证,只有通过验证的用户才能够从接口获取数据。发布数据的主要过程如下所示:
(1)从数据库中读取黑名单数据,存入内存中。 (2)通过路由聚合算法将黑名单数据进行聚合。
(3)将聚合后的数据格式化成不同格式的数据,生成文件在Web服务器上发布。