防火墙(firewall),也称为防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网。它是一项信息安全的防护系统,依照特定的规则,允许或者是限制传输的数据通过。

  • 简介

  防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中,而

netfilter/iptables IP信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

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

  netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

  iptables组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。

  • 系统优点

  netfilter/iptables的最大优点是它可以配置有状态的防火墙。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为ESTABLISHED、INVALID、NEW和related.

  状态ESTABLISHED指出该信息包属于已建立的连接,该链接一直用于发送和接收信息包并且完全有效。

  状态INVALID指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。

  状态NEW意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。

  最后,状态RELATED表示该信息包正在启动新的连接,以及它与已建立的连接相关联。

netfilter/iptables的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。你可以定制自己的规则来满足你的特定需求,从而只允许你想要的网络流量进入系统。

  • 命令说明

iptables是用来设置、维护和检查linux内核的ip包过滤规则的。

  可以定义不同个表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对和其相对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作“target”,也可以跳向同一个表内的用户定义的链。

  targets

  防火墙的规则指定所检查包的特征和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则则由目标值去确定。该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过],DROP[删除],QUEUE[排队],或者 RETURN[返回]。

  ACCEPT 表示让这个包通过。

  DROP表示将这个包丢弃。

  QUEUE表示把这个包传递到用户空间。

  RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。

  tables

  当前有三个表。(哪个表是当前表取决于内核配置选项和当前模块)

  iptables命令的-t选项指定要操作的匹配的表。如果内核被配置为自动加载模块,这时若没模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表如下:

  filter,这是默认的表,包含了内建的链INPUT、FORWARD和OUTPUT。

  nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:prerouting、output、postrouting。

  mangle这个表用来对指定的包进行修改。他有两个内建的规则:prerouting和output。

ip数据包流向流程

iptables语法

iptables [- t table] {-A|-D|-R|-E|...|   action   } chain rule-specification

iptables后跟着需要操作的表名称,接着是链名称,但是需要指定对链操作的动作,再然后就是队则的指定,即各种命令选项的集合。

转自:百度百科 iptables

iptables中表,链,netfilter位置关系

5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARDING:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTIONG:发送到网卡接口之前

图片转自:http://www.linuxidc.com/Linux/2012-08/67505.htm

http://lyp0909.blog.51cto.com/508999/509408

linux下的防火墙iptables的更多相关文章

  1. linux下如何修改iptables开启80端口

    linux下如何修改iptables开启80端口   最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了 ...

  2. linux下关闭防火墙命令

    今天使用linux虚拟机搭建jenkins,但是在虚拟机内部使用浏览器可以访问jenkins主页,在物理机上却无法访问jenkins主页,查找原因后是因为linux虚拟机没有关闭防火墙,关闭防火墙后, ...

  3. (转)SELinux是什么意思,如何关闭?Linux下的防火墙用什么命令打开?

    SELinux是什么意思,如何关闭?Linux下的防火墙用什么命令打开? 原文:http://blog.csdn.net/hhcccchh/article/details/12995539 SELin ...

  4. linux下开启防火墙,打开端口

    service iptables start时提示:“iptables: No config file.                                  [WARNING]” 此时打 ...

  5. (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?

    转自:http://blog.chinaunix.net/uid-23069658-id-3160506.html 本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之 ...

  6. Linux基础命令---防火墙iptables

    iptables iptables指令用来设置Linux内核的ip过滤规则以及管理nat功能.iptables用于在Linux内核中设置.维护和检查IPv4数据包过滤规则表.可以定义几个不同的表.每个 ...

  7. 洞悉linux下的Netfilter&iptables:什么是Netfilter?

    本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了.趁有时间,好好把这方面的东西总结一番.一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共 ...

  8. Linux中的防火墙----iptables

    防火墙,它是一种位于内部网络与外部网络之间的网络安全系统.一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过. 防火墙根据主要的功能可分为网络层防火墙.应用层防火墙.数据库防火墙. 网 ...

  9. 嵌入式Linux可用的防火墙——iptables:实现ip白名单、mac地址白名单

    iptables是linux系统下的一个功能强大的模块,不仅可以用作防火墙,还可以实现NAT等众多路由功能.iptables的容器有很清晰的层次关系: 1. iptables是表的容器,iptable ...

随机推荐

  1. 安装windows后重新修复grub2的引导

    前段时间,我的用的双系统windows8.1 + fedora 21 workstation,使用grub2引导fedora和windows8.1的启动.由于一些原因,导致我的windows8.1无法 ...

  2. 给select添加自定义值和选项

    添加选项: document.getElementById("id_select").options.add(new Option("name", " ...

  3. bzoj1179 [Apio2009]Atm

    Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口 ...

  4. android版微信5.2.1更新 支持微信聊天记录备份到电脑上

    昨天微信 5.2.1 for Android 全新发布了,和微信 5.2.1 for iPhone一样,支持拍照分享,可以把照片发送给多个朋友,最重要的一个更新是支持微信聊天记录备份到电脑(可以通过腾 ...

  5. Ubuntu 12 升级 SVN 1.6 到 1.8 版本

    在 Ubuntu 12 中使用 PhpStorm 10.x,CheckOut项目后,Event Log 提示: Subversion command line client version is to ...

  6. VS2013 Community配置OpenCV3.0.0

    配置环境:32位win7系统+VS2013 Community版本 1.首先从OpenCV官网上下载最新版本的OpenCV for Windows. 2.直接双击打开下载得到的opencv-3.0.0 ...

  7. C语言中free函数是如何确定要释放多少内存空间的

    本文链接:http://www.cnblogs.com/xxNote/p/4009359.html 今天看书的时候看到free函数释放动态申请的内存时只需要把内存块的首地址传过去就行了,显然仅仅依靠首 ...

  8. POJ1011

    今天搞了一下传说中的经典搜索题——poj1011,果然里面充斥着各种巧妙的剪枝,做完之后回味一下还是感觉构思太巧妙,所以总结记录一下加深理解. 原题:http://poj.org/problem?id ...

  9. 又一个绝对棒的对话框插件fancybox v1.3.4

    http://www.jsfoot.com/jquery/demo/2011-07-30/fancybox/index.html jquery插件:fancybox   Fancybox的特点如下: ...

  10. HDU 1086You can Solve a Geometry Problem too(判断两条选段是否有交点)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 判断两条线段是否有交点,我用的是跨立实验法: 两条线段分别是A1到B1,A2到B2,很显然,如果 ...