本文编写的目的:

本文是对上传到github上的项目进行说明。github链接:filter_firewall有任何意见或者建议可以Email:18277973721@sina.cn

项目介绍:

包过滤型防火墙,对访问本地网络的数据包进行操作,包括允许访问(Accept)和阻止访问(Drop)两种方式。

开发环境:

  操作系统:Ubuntu 12.04, Linux内核为3.15版本

  开发工具:vim

  开发语言:C

  开发作者:

模块描述

1.数据包拦截

  内核模块,采用netfilter框架进行数据包过滤,在网络层捕获数据包,查看过滤规则表,如果是需要过滤的,则Drop掉数据包,不允许进入用户空间。如果不在过滤规则表的,则允许进入,正常访问。

2.用户配置过滤规则

  用户空间模块,与内核模块进行交互,采用命令行参数的方式进行配置命令行选项如下:

选项 含义 取值 状态
-A append规则链 NA 完成
-D delete规则链 NA 未完成
-p 端口 short 完成
-I 操作Input链 NA 完成
-O 操作Output链 NA 未完成
-F 操作Forward链 NA 未完成
-r 操作结果 drop | accept 完成
-f 来源IP ip值 完成
-t 转发IP ip值 未完成

对于未完成的命令行选项避免使用。

For Example:

filter_client -A -p 80 -I -r drop -f 192.168.1.105

通过配置以上链能够阻塞ip地址为192.168.1.105对本机80号端口的访问。

关于如何使用本项目:

  首先声明本项目主要用于学习交流,作者水平有限,对本项目有任何意见或者建议可以email:18277973721@sina.cn(注:18277973721非作者正在使用的手机号码).

  下面介绍如何使用本项目.

  重新编译源代码=====>>加载内核模块======>>利用用户模块配置重定向信息。下面给出些许步骤命令

  cd kernelspace

  make clean

  make

  make install

  ==================================

  cd userspace

  make clean

  make

  ./filter_client -A -p 80 -I -r drop -f 192.168.1.105

  查看log:tail /var/log/syslog或者tail /var/log/message 或者dmesg

最后:

  最近陆陆续续往github上贴代码,处于学习阶段希望多吸收些开发者的经验。

github项目filter_firewall说明的更多相关文章

  1. 利用Travis CI 让你的github项目持续构建

    Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列 ...

  2. 优秀大数据GitHub项目一览

    http://blog.csdn.net/yaoxtao/article/details/50540485 优秀大数据GitHub项目一览 VMware CEO Pat Gelsinger曾说: 数据 ...

  3. 用tortoiseGit管理GitHub项目代码(完整教程)

    一.为什么要写这篇博客呢,因为在一开始用tortoiseGit来管理项目的时候,在百度上找了很多教程,但是感觉说的都不是很全,有些东西以及操作没写清楚,所以想写一片比较完整用tortoiseGit管理 ...

  4. Github项目推荐-图神经网络(GNN)相关资源大列表

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 转自 | AI研习社 作者|Zonghan Wu 这是一个与图神经网络相关的资源集合.相关资源浏览下方 ...

  5. Eclipse安装git插件以及关联导入GitHub项目

    一.Eclipse配置git 1.查看自己eclipse的版本 打开eclipse 导航: help->AboutEclipse 如图: 2.检查Eclipse中是否已安装Git插件 菜单栏He ...

  6. Keras RetinaNet github项目

    https://github.com/fizyr/keras-retinanet 根据此网站的方法,利用Pascal VOC 2007数据集开始训练,出现error: D:\JupyterWorkSp ...

  7. Keras RetinaNet github项目安装

    在存储库目录/keras-retinanet/中,执行pip install . --user 后,出现错误: D:\>cd D:\JupyterWorkSpace\keras-retinane ...

  8. github项目

    一.github项目地址: https://github.com/fairy1231/gitLearning/tree/master 二.github的重要性: Git 是一个快速.可扩展的分布式版本 ...

  9. 【全网最全的博客美化系列教程】01.添加Github项目链接

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

随机推荐

  1. Python_爬虫1

    Urllib库的基本使用 那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的 ...

  2. php中如何使用phpredis

    安装redis服务:下载地址:http://redis.io/download,下载最新文档版本.本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download. ...

  3. SQL Server2008创建约束图解 转

    转自 http://www.cnblogs.com/longhs/p/3670307.html SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Un ...

  4. thymleaf分支用法

    <div th:switch="${user.role}"> <p th:case="'admin'">User is an admin ...

  5. [改善Java代码]asList方法产生的List对象不可更改

    上一个建议之处了asList方法在转换基本类型数组时候存在的问题,在看下asList方法返回的列表有何特殊的地方.看代码: import java.util.Arrays; import java.u ...

  6. 转:Linux网络IO并行化技术概览

    转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...

  7. IIS 发布网站到外网

    前段时间做了一个项目在局域网中测试后要发布到外网上,一时间不知怎么搞,以为直接在IIS中修改发布时的IP就可以了,但是不可行,经过摸索终于成功发布到外网,下面是具体步骤. 前期准备:公网IP,掩码,网 ...

  8. 初学JSP+Servlet常见的错误

    web编程中常见的错误: 一.404(要访问的资源没有找到) 1.web程序有没有部署(将项目到tomcat中) 2.url有没有写错(包括大小写,包括项目有没有重命名) 3.有没有将jsp/html ...

  9. Delphi IP 控件源码

    interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComCtrls, Co ...

  10. 【Cocos2d入门教程五】Cocos2d-x动作篇

    动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作.动作作用于Node,包括继承于之下的Layer.Sprite.因此每个动作 都需要由Node对象或者其继承者执行.动作类(Acti ...