Linux安全网关接口SGI的设计与实现曲波1胡湜2(1南京晓庄学院信息技术学院)(2北京航空航天大学电子信息工程学院)摘要:文章阐述了Linux安全网关接口SGI的基本结构和实现方法,以及实现SGI涉及的Linux防火墙内核接口模块、/proc文件系统内核接口等关键技术
关键字:安全网关接口、Linux防火墙、内核接口模块、防火墙钩子函数、/proc文件系统内核接口随着计算机网络技术的不断提高,计算机网络的应用也越来越普及,对计算机网络系统的安全管理也越来越重要
当前流行的各种操作系统都在计算机安全管理方面提供了丰富的功能
Linux操作系统不仅在其内核中提供了丰富的防火墙功能,还以钩子函数的方式为用户提供了防火墙内核接口
用户根据Linux防火墙内核接口规范设计内核接口模块装入内存,就可实现用户自行设计的防火墙功能或其它网络访问控制功能
笔者利用Linux内核防火墙内核接口模块,实现了一个通用的安全网关接口(以下简称SGI)
SGI类似一个专用的防火墙,控制流经的网络IP数据包的转发
笔者在多个网络应用系统中利用该接口实现网络的安全访问控制,收到了很好的效果
安全网关接口SGI的基本结构安全网关接口SGI的目标是实现一个通用的安全网关内核接口模块,实现对流经的IP数据包的转发控制
实现的方法是采用Linux的防火墙内核模块接口,通过防火墙钩子函数将自己挂接在系统的IP转发控制链中
SGI在内部维护一个Hash表,每一个表项包含一个代表着放行的IP地址
1SGI防火墙内核接口模块Linux防火墙Netfilter提供了一个抽象、通用化的框架,以IPv4为例,一共有5个防火墙钩子函数,分别为:NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD、NF_IP_POST_ROUTING和NF_IP_LOCAL_OUT
数据报进入系