Android中网络流量控制(防火墙)——Iptables

简介:

Iptables简单介绍

iptables是与最新的 2.6.x 版本号 Linux 内核集成的 IP 信息包过滤系统。

假设 Linux 系统连接到因特网或 LAN、server或连接 LAN 和因特网的代理server, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。


Iptables工作原理

netfilter/iptablesIP 信息包过滤系统是一种功能强大的工具。 可用于加入、编辑和除去规则。这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中, 而这些表集成在 Linux 内核中。

在信息包过滤表中,规则被分组放在我们所谓的 链(chain)中。

我立即会具体讨论这些规则以及怎样建立这些规则并将它们分组在链中。


尽管 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件 netfilter和 iptables 组成。

netfilter 组件也称为 内核空间(kernelspace),是内核的一部分。由一些信息包过滤表组成。 这些表包括内核用来控制信息包过滤处理的规则集。
iptables组件是一种工具,也称为 用户空间(userspace),它使插入、改动和除去信息包过滤表中的规则变得easy。 除非您正在使用 Red Hat Linux 7.1 或更高版本号,否则须要从 netfilter.org 下载该工具并安装使用它。

通过使用用户空间。能够构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。

这些规则具有 目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。

假设某个信息包与规则匹配,那么使用目标 ACCEPT 同意该信息包通过。还能够使用目标 DROP 或 REJECT 来堵塞并杀死信息包。

对于可对信息包运行的其他操作,还有很多其他目标。


依据规则所处理的信息包的类型,能够将规则分组在链中。处理入站信息包的规则被加入到 INPUT 链中。

处理出站信息包的规则被加入到 OUTPUT 链中。处理正在转发的信息包的规则被加入到 FORWARD 链中。

这三个链是基本信息包过滤表中内置的缺省主链。 另外,还有其他很多可用的链的类型(如 PREROUTING 和 POSTROUTING ), 以及提供用户定义的链。每一个链都能够有一个 策略, 它定义“缺省目标”,也就是要运行的缺省操作。当信息包与链中的不论什么规则都不匹配时。运行此操作。


建立规则并将链放在适当的位置之后。就能够開始进行真正的信息包过滤工作了。 这时内核空间从用户空间接管工作。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。 我们将这个过程称为 路由。

假设信息包源自外界并前往系统,并且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的 INPUT 链。假设信息包源自系统内部或系统所连接的内部网上的其他源,并且此信息包要前往还有一个外部系统, 那么信息包被传递到 OUTPUT 链。相似的,源自外部系统并前往外部系统的信息包被传递到 FORWARD 链。


接下来,将信息包的头信息与它所传递到的链中的每条规则进行比較,看它是否与某条规则全然匹配。

假设信息包与某条规则匹配,那么内核就对该信息包运行由该规则的目标指定的操作。

可是。假设信息包与这条规则不匹配。那么它将与链中的下一条规则进行比較。 最后,假设信息包与链中的不论什么规则都不匹配,那么内核将參考该链的策略来决定怎样处理该信息包。 理想的策略应该告诉内核 DROP 该信息包。下图用图形说明了这个信息包过滤过程。




使用Iptables进行防火墙软件设计的解决方式

因为Iptables已经有了完好的防火墙规则。我们仅仅须要设计一个基于Iptables的Android前台。通过运行脚本,调用iptables设置防火墙规则就可以。
相关演示样例代码:
http://code.google.com/p/droidwall/






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5129743.html,如需转载请自行联系原作者
相关文章
|
1月前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
3月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
39 0
|
3月前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
22 0
|
3天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
11天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
10 0
|
11天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
1月前
|
数据采集 监控 安全
网络安全产品之认识入侵检测系统
随着计算机网络技术的快速发展和网络攻击的不断增多,单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。因此,入侵检测系统作为新一代安全保障技术,成为了传统安全防护措施的必要、有效的补充。[《安全防御之入侵检测与防范技术》](http://xiejava.ishareread.com/posts/48309864/)介绍了入侵检测技术,今天让我们从入侵检测系统的工作原理、主要功能、主要类型及与入侵防御系统的关系与区别等方面认识入侵检测系统。
43 2
|
1月前
|
SQL 监控 安全
网络安全产品之认识WEB应用防火墙
随着B/S架构的广泛应用,Web应用的功能越来越丰富,蕴含着越来越有价值的信息,应用程序漏洞被恶意利用的可能性越来越大,因此成为了黑客主要的攻击目标。传统防火墙无法解析HTTP应用层的细节,对规则的过滤过于死板,无法为Web应用提供足够的防护。为了解决上述问题,WAF应运而生。它通过执行一系列针对HTTP、HTTPS的安全策略,专门对Web应用提供保护。
45 1
|
1月前
|
人工智能 监控 安全
网络安全知识入门:Web应用防火墙是什么?
网络安全知识入门:Web应用防火墙是什么?
22 1
|
2月前
|
云安全 安全 网络协议
网络安全产品之认识防火墙
防火墙是一种网络安全产品,它设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间,通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。
69 0