linux下基于iptables 防火墙的设计与实现

linux下基于iptables 防火墙的设计与实现

ID:23454928

大小:57.50 KB

页数:5页

时间:2018-11-08

linux下基于iptables 防火墙的设计与实现_第1页
linux下基于iptables 防火墙的设计与实现_第2页
linux下基于iptables 防火墙的设计与实现_第3页
linux下基于iptables 防火墙的设计与实现_第4页
linux下基于iptables 防火墙的设计与实现_第5页
资源描述:

《linux下基于iptables 防火墙的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Linux下基于iptables防火墙的设计与实现防火墙是X络安全技术的重要手段,利用Linux作为代理服务器建立防火墙很方便进行管理和配置。本文详细介绍了iptables的用法,如何利用iptables建立功能强大的防火墙。关键词:Linux;Netfilter/iptables;防火墙  1引言  随着X络技术的发展,人们的生活已经和X络密不可分,X络的安全问题也就自然成为人们关注的焦点,防火墙作为一种最为有效地X络安全产品得到了广泛的应用。Linux操作系统性能优异、功能强大,现在已经拥有大量的用户。  2 防火墙的结构与功能分析  防火墙系统X络结构,防火墙就是内部X

2、络与外部X络之间的一道安全防护系统。通过对经过的X络数据包的扫描与分析,过滤掉一些X络攻击并阻止非授权用户访问内部X络。从而大大提高内部X络的安全(见图1)。  (图1)中的防火墙就是采用了Netfilteriptables机制的Linux服务器,服务器配置有两块X卡,其中一块连接到外X,另一块与交换机(集线器)相连。这样内部的多台主机就可以通过交换机(集线器)访问外X。    3防火墙系统实现  3.1Netfilter架构原理  Netfilter通过5个钩子函数,就可以实现内核防火墙的基本框架了,NF_IP_PRE_ROUTING表示从X卡进入系统的数据包首先到达的挂载

3、点。此时数据包需要进行完版本号,校验和等检测。之后他们会进入一个路由模块,路由模块决定此数据包是要被转发给另一块X卡接口还是要被发给本机用户进程。NF_IP_LOCAL_IN表示如果数据包的目的地是本机,那么它将被注册了的钩子函数处理以后再传给上层协议,对于所有进入本机的数据包(包括使用X络套接字的IPC),都是在此挂载点完成的过滤工作之后再被交给上层用户进程。挂载点NF_IP_FORODULE  #defineMODULE  #endif  #include<linux/module.h>  #include<linux/sched.h>  #inc

4、lude<linux/kernel.h>  #include<linux/device.h>  #include<linux/ip.h>  #include<linux/tcp.h>  #include<linux/skbuff.h>  #include<linux/proc_fs.h>  #include<linux/if.h>  #include<linux/in.h>  #include<linux/filter_ipv4.h>  /*定义钩子函数*/  stat

5、icunsignedintkill_port(unsignedinthooknum,structsk_buff*skb,conststruct_device*in,conststruct_device3out,int(*okfn)(structsk_buff*))  {  structtcphdr*tcph;  structiphdr*iph;  iph=(*skb)->nh.iph;  /*解析ip和tcp协议栈*/  if(iph->protocol==IPPROTO_TCP)  {  tcph=(*skb)->h.th;  if(ntohs(tcph-

6、>source)==23)  {  printk(""nftpservicerefused"");  returnNF_DROP;  }  }  returnNF_ACCEPT;  }  /*该结构完整定义在include/linux/filter.h里面*/  Structnf_hook_opskill={  .hook=kill_port,  .o=NF_IP_LOCAL_OUT,  .priority=NF_IP_PRI_FILTER,  };  /*模块的初始化*/  intinit_module(){  /*Hook钩子函数的注册函数*/  nf_regist

7、er_hook(kill);  return0;  }  /*模块的清除*/  voidcleanup_module(){  /*销毁钩子函数*/  nf_unregister_hook(kill);  }  编写Makefile文件:  obj-m+=f.o  编译模块:  make2C/usr/src/kernels/2.6.1121.1369_FC42i686/SUBDIRS=MYMPAC以及用户的过滤和状态过滤等全新的包过滤方法。iptables是Linux系统下面功能非常全面和强大的防火墙。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。