欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 软件技术 > Linux下基于iptables 防火墙的设计实现

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

日期:2023-01-24 阅读量:0 所属栏目:软件技术


  1 引言

  随着网络技术的发展, 人们的生活已经和网络密不可分, 网络的安全问题也就自然成为人们关注的焦点, 防火墙作为一种最为有效地网络安全产品得到了广泛的应用。Linux 操作系统性能优异、功能强大, 现在已经拥有大量的用户。

  2 防火墙的结构与功能分析

  防火墙系统网络结构,防火墙就是内部网络与外部网络之间的一道安全防护系统。 通过对经过的网络数据包的扫描与分析, 过滤掉一些网络攻击并阻止非授权用户访问内部网络。 从而大大提高内部网络的安全(见图1)。

  (图1) 中的防火墙就是采用了Netfilter iptables机制的Linux服务器, 服务器配置有两块网卡, 其中一块连接到外网, 另一块与交换机(集线器)相连。这样内部的多台主机就可以通过交换机(集线器)访问外网。

  3 防火墙系统实现

  3.1 Netfilter架构原理

  Netfilter通过5个钩子函数,就可以实现内核防火墙的基本框架了,NF_ IP_PRE_ROUTI NG表示从网卡进入系统的数据包首先到达的挂载点。此时数据包需要进行完版本号,校验和等检测。之后他们会进入一个路由模块,路由模块决定此数据包是要被转发给另一块网卡接口还是要被发给本机用户进程。NF_ IP_LOCAL_ I N表示如果数据包的目的地是本机,那么它将被注册了的钩子函数处理以后再传给上层协议,对于所有进入本机的数据包 (包括使用网络套接字的IPC),都是在此挂载点完成的过滤工作之后再被交给上层用户进程。挂载点 NF_ IP_FORWARD表示所有经过本机转发的数据包的途经地,针对转发数据包的过滤工作可以在此进行。挂载点NF_ IP_POST_ROUTI NG表示数据包通过本机网卡接口发送到网络上之前的最后一个挂载点。挂载点表示NF_ IP_LOCAL_OUT是所有本机进程发出的数据包的必经之路。在图中可看到数据包通过此挂载点之后会进入一个路由模块以决定它是被发往外部网络还是发给本机其他进程。

  IP层在数据包处理过程中,会检查相应的钩子函数在链表中是否有钩子函数注册,如果注册了该钩子函数则监听 IP数据包,调用该钩子函数,并根据钩子函数返回的结果决定下一步的动作。

  3.2 Netfilter的实现模拟仿真

  下面是构建模拟内核防火墙仿真环境平台 ,目前在操作系统 Fedora Core release 4

  #ifndef _KERNEL_

  #define _KERNEL_

  #endif

  #ifndefMODULE

  #defineMODULE

  #endif

  #include < linux/module . h >

  #include < linux/ sched . h >

  #include < linux/kernel . h >

  #include < linux/netdevice . h >

  #include < linux/ i p. h >

  #include < linux/ tcp. h >

  #include < linux/ skbuff . h >

  #include < linux/p r oc_fs . h >

  #include < linux/ if . h >

  #include < linux/ in . h >

  #include < linux/netfilter_ipv4. h >

  /*定义钩子函数*/

  static unsigned int kill_port (unsigned int hooknum, struct sk_buff * skb, const struct net_device * in, const struct net_device 3 out, int (* okfn) ( struct sk_buff * ) )

  {

  struct tcphdr * tcph;

  struct iphdr * iph;

  iph=(*skb) -> ;

  /*解析 ip和 tcp协议栈*/

  if ( iph->protocol == IPPROTO_TCP)

  {

  tcph=(* skb) -> ;

  if (ntohs( tcph->source)==23)

  {

  printk ("" nftp service refused"" ) ;

  return NF_DROP;

  }

  }

  return NF_ACCEPT;

  }

  /*该结构完整定义在 include / linux/netfilter . h里面* /

  Struct nf_hook_op skill = {

  . hook = kill_port,

  . owner = TH IS_MODULE,

  . pf = PF_ I NET,

  . hooknum = NF_ IP_LOCAL_OUT,

  . priority = NF_ IP_PR I_FI LTER,

  };

  /*模块的初始化*/

  int init_module () {

  /*Hook钩子函数的注册函数*/

  nf_register_hook (&kill) ;

  return 0;

  }

  /*模块的清除*/

  void cleanup_module () {

  /*销毁钩子函数* /

  nf_unregister_hook (&kill) ;

  }

  编写 Makefile文件:

  obj - m + = netf . o

  编译模块:

  make2 C /usr / src /kernels/2.6.112 1.1369 _ FC42i686 / S UBD I RS =MY MPWD modules

  编译的时候一定是以 root身份进行编译。

  测试模块:

  首先以 root用执行命令: ins mod . /动态加载该模块 ,假设 Linux系统的 IP地址是 192.168.0.191。telnet 192.168.0.191则会出现“正在连接到 192.168.0.191 . . . 不能打开到主机的连接 , 在端口23: 连接失败”的提示 ,如果利用rmmod 命令就删除该内核 ,则就可以从本地 telnet到Linux系统上。另外 ,可以利用命令 lsmod查看该模块是否加载到内核里面去,同时可以执行命令dmesg tail查看该模块加载的信息。

  4结束语

  利用Linux操作系统下的iptables编写功能强大的防火墙,iptables全新的Netfilter架构采用可加载的模块化结构,可以动态扩展系统功能。同时iptables提供动态NAT、基于MAC以及用户的过滤和状态过滤等全新的包过滤方法。iptables是Linux系统下面功能非常全面和强大的防火墙。

  参考文献:

  [1] 阎慧,防火墙原理与技术[M ]。北京:机械工业出版社, 2004。

  [2] 王则林, 王彬, 陆建德。 基于Linux内核的防火墙技术分析与进一步开发[J]。科技信息, 2006 (10) : 17219 。

本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229986.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学