iptables

1. 介绍

防火墙就是实现Linux下访问控制功能的,分为软件防火墙和硬件防火墙两种。
我们需要得定义防火墙的规则和策略去实现网络的IP,数据的检测。
目前市场上常见的有3,4层的防火墙,叫做网络层的防火墙,还有7层的防火墙,其实是代理层的网关。
对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测。但是对于七层的防火墙,不管你源端口或者目标端口,源地址或者目标地址是什么,都将对你所有的东西进行检查。所以,对于设计原理来讲,七层防火墙更加安全,但是这却带来了效率更低。所以市面上通常的防火墙方案,都是两者结合的。而又由于我们都需要从防火墙所控制的这个口来访问,所以防火墙的工作效率就成了用户能够访问数据多少的一个最重要的控制,配置的不好甚至有可能成为流量的瓶颈。

2. iptables的工作机制

netfilter的五个规则链

  • PREROUTING(路由前)
  • INPUT(数据包流入口)
  • FORWARD(数据包转发)
  • OUTPUT(数据包流出口)
  • POSTROUTING(路由后)

任何一个数据包只要经过本机,必须经过这五个链中的其中一个链

3. 防火墙策略

防火墙策略一般分为两种:

  • 通策略:必须定义谁可以进
  • 堵策略:必须有身份认证,否则不能进

当我们定义的策略的时候,要分别定义多条功能,其中:定义数据包中允许或者不允许的策略,filter过滤的功能,而定义地址转换的功能的则是nat选项。为了让这些功能交替工作,我们制定出了“表”这个定义,来定义、区分各种不同的工作功能和处理方式。
我们比较常用的功能主要有三个:

  • filter:定义允许或者不允许
  • nat:定义地址转换
  • mangle:修改报文原数据

filter:INPUT,FORWARD,OUTPUT
nat:PREROUTING,OUTPUT,POSTROUTING
mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

iptables/netfilter(这款软件)是工作在用户空间的,它可以让规则进行生效的,本身不是一种服务,而且规则是立即生效的。而我们iptables现在被做成了一个服务,可以进行启动,停止的。启动,则将规则直接生效,停止,则将规则撤销。
注意:规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。

iptables定义规则的方式比较复杂:

格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t table :filter nat mangle
COMMAND:定义如何对规则进行管理
chain:指定你接下来的规则到底是在哪个链上操作的
CRETIRIA:指定匹配标准
-j ACTION :指定如何进行处理

iptables命令详解

当然可以通过man iptables来查看详细的解释。常用的命令选项有:
-P:设置默认策略的(设定默认门是关着的还是开着的)如:iptables -P INPUT (DROP|ACCEPT)
-F: FLASH,清空规则链的(注意每个链的管理权限)
-N:NEW 支持用户新建一个链,比如:iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
-X:用于删除用户自定义的空链
-Z:清空链
-A:追加
-I num : 插入,把当前规则插入为第几条
-R num:Replays替换/修改第几条规则
-D num:删除,明确指定删除第几条规则
-L:查看规则详细信息,比如"iptables -L -n -v"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含iptables的功...
    随风化作雨阅读 4,823评论 1 16
  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,500评论 0 2
  • iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防...
    yshenhn阅读 112,899评论 2 78
  • iptables详解 iptables简介 netfilter/iptables(简称为iptables)组成Li...
    jony456123阅读 550评论 0 0
  • 官方原文地址CocoaPods不仅仅是一个能为你项目添加开源代码的非常棒的工具,而且也能实现多项目共享组件。你可以...
    Jabir_Zhang阅读 467评论 1 3