安全-IPtables基础

iptables 是一个配置Linux 内核防火墙 的命令行工具,是netfilter 项目的一部分。术语iptables 也经常代指该内核级防火墙


enter description here
enter description here

iptables 表(Tables)与链(Chains)

iptables具有Filter,NAT,Mangle,Raw四种内建表。

1. filter表

Filter表示iptables的默认表,它具有三种内建链:

  • INPUT链 - 处理来自外部的数据。
  • OUTPUT链 - 处理向外发送的数据。
  • FORWARD链 - 将数据转发到本机的其他网卡设备上。

2. nat表

nat表有三种内建链:

  • PREROUTING链 - 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址,通常用于DNAT
  • POSTROUTING链 - 处理即将离开本机的数据包。它会转换数据包中的源IP地址,通常用于SNAT
  • OUTPUT链 - 处理本机产生的数据包。

3. mangle表

mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。mangle表具有5个内建链。

  • PREROUTING
  • OUTPUT
  • FORWARD
  • INPUT
  • POSTROUTING

下面是iptables的三个内建表:

链的操作

1. mangle表

强烈建议你不要在这个表里做任何过滤,不管是DNAT,SNAT或者Masquerade。
以下是mangle表中仅有的几种操作:

  • TOS
  • TTL
  • MARK

TOS操作用来设置或改变数据包的服务类型域。这常用来设置网络上的数据包如何被路由等策略。它在Internet上还不能使用,而且很多路由器不会注意到这个域值。
TTL操作用来改变数据包的生存时间域,我们可以让所有数据吧只有一个特殊的TTL。可以欺骗一些ISP。
MARK用来给包设置特殊的标记。它并不改变包的内容,只是在内核中对相应的包加入标记。

2. nat表

此表仅用于NAT,也就是转换包的源或者目标地址。注意,只有流的第一个包会被这个链匹配,其后的包会被自动做相同的处理。实际操作分类:

  • DNAT
  • SNAT
  • MASQUERADE

DNAT操作主要用在这样一种情况,你有一个合法的IP地址,要把对防火墙的访问重定向到其他的机子上。也就是说,我们改变的是数据包的目标地址,以使包能重路由到某台主机。
SNAT改变包的源地址,这极大程度上可以隐藏你的本地网络。一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址。如果使用类似192.168.0.0/24这样的地址,是不会从Internet得到任何回应的。
MASQUERADE的作用如其名字一样,只是计算机的符合稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不是像SNAT用的IP地址是配置好的。当然,这也有好好处,就是我们可以通过PPP、PPPOE\SLIP等拨号得到的地址,这些地址可能是由ISP的DHCO随机分配的。

3. filter表

filter表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。我们就是在这里根据包的内容对包做DROP或者ACCEPT的。当然,我们也可以预先在其他地方做些过滤,但是这个表才是设计用来过滤的。几乎所有的target都可以在这儿使用。

数据包流程

iptables 规则(Rules)

  • Rules包括一个条件和一个目标(Target)。
  • 如果满足条件,就执行目标中的规则或者待定值。
  • 如果不满足条件,就判断下一条规则。

目标值(Target Values)

下面是你可以在target里指定的特殊值:

  • ACCEPT - 允许防火墙接收数据包
  • DROP - 防火墙丢弃包
  • QUEUE - 防火墙将数据包移交到用户空间
  • RETURN - 防火墙停止执行当前链中的后续Rules,并返回到调用链中

如果你执行iptables -t filter --list你将看到防火墙上的可用规则。

下面的例子说明当前系统没有定义防火墙。你可以看到,它显示了默认的filter表,以及表内默认的input链,forward链,output链。

<pre class="prettyprint linenums prettyprinted">

  1. # iptables -t filter –list

  2. Chain INPUT (policy ACCEPT)

  3. target prot opt source destination

  4. Chain FORWARD (policy ACCEPT)

  5. target prot opt source destination

  6. Chain OUTPUT (policy ACCEPT)

  7. target prot opt source destination

</pre>

注意,如果不指定-t选项,默认就是filter表。

规则语法

书写规则的语法格式是:
iptables [-t table] command [match] [target/jump]

查看ip connenction信息
cat /proc/net/ip_conntrack

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,459评论 0 2
  • iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含iptables的功...
    随风化作雨阅读 4,738评论 1 16
  • iptables俗称防火墙,或许我们已经不在陌生,但是作为openstack基础,这里还是对其做一些补充,了解更多...
    ximitc阅读 1,790评论 0 8
  • 今天在项目中遇到了一个问题: 我自己写了一个类继承UIVIew,该类就取名叫TextView吧,在TextV...
    atiman阅读 3,651评论 0 1
  • 小酒,微醺。 在望京一栋居民楼里,三五好友一块吃肉喝酒。大家认识时间不长,却毫无芥蒂地聊着各种天南海北人情过往,好...
    茉莉大大阅读 100评论 0 0