iptables

iptables

iptables是linux平台下的包过滤防火墙,用于封包过滤,封包重定向和网络地址转换等功能

iptables和netfiflter的关系:

iptables是linux防火墙管理工具,实现规则定义,删除和修改。而真正实现防火墙功能的是netfilter,iptables是用户态的工具,用户通过iptables配置的规则,netfilter通过这些规则进行防火墙操作过滤操作

iptables的四表五链:

四表:

raw表:用于配置数据包,其中的数据包不会被系统跟踪,该表的配置的规则优先级最高,设置该表一般是为了不再让iptables做数据包的跟踪处理,提高性能,对应内核??閕ptables_raw。

filter表:iptables的默认表(没有指定表的时候默认为该表),根据预定义的规则来过滤符合条件的数据包,在该表中只允许对数据包接收和丢弃等操作,对应内核模块iptables_filter

nat表:nat(network address Translation)表用于网络地址转换(例如:端口转发)可以实现一对一,一对多和多对多等nat的工作,网络地址转换功能,主要用于修改数据包的IP地址、端口号等信息,对应内核??閕ptables_nat;

mangle表:拆解报文,做出修改,并重新封装,对应内核??閕ptables_mangle;

五链(默认):

PREROUTING:在对数据包作路由选择之前,应用此链中的规则

INPUT:目的地为本机的包的,应用此链中的规则

FORWARD:目的地不是本机且不是本机产生的包,应用此链中的规则

OUTPUT:本地协议栈发出去的包,应用此链中的规则

POSTROUTING:经过选路后需要转发出去的包,应用此链中的规则

链的执行流程

iptables开启后,数据报文从进入服务器到出来会经过5道关卡,分别为Prerouting(路由前)、Input(输入)、Outpu(输出)、Forward(转发)、Postrouting(路由后):

image.png

每道关卡中有多个规则,数据包文必须按照顺序一个一个匹配规则,这些规则串起来像条链,所以我们把这些关卡叫做“链”

image.png

为什么有链之后还有还需要表?

虽然每一条链上有多条规则,但是有些规则的作用很相似,多条具有相同功能的规则在一起就成了一个表, 我们最终定义的防火墙规则,都会添加到这四张表中的其中一张表中

链和表的对应关系:

并不是每条链都能应用所有类型的表,除了OUTPUT能同时拥有4种表其他链都只有2-3种表

image.png

每条链上对应着多个表,但是数据包必须按照顺序匹配每条链上的一个一个规则,按照表的规则来进行匹配顺序是:raw ——>mangle——>nat——>filter

表名 能应用的链
raw prerouting output
mangle prerouting input forward output postrouting
nat prerouting input(仅centos7) output postrouting
filter input forward output

链和表的体现

image.png

规则说明

匹配条件(五元组)

S_IP:source ip,源ip

S_PORT:source port,源端口

D_IP: destination ip,目标ip

D_PORT: destination port,目标端口

TCP/UDP:第四层(传输层)协议

处理动作

ACCEPT:允许数据包通过

DROP:直接丢弃数据包,不回应任何信息,客户端只有当连接超时后才会有反应

REJECT:拒绝数据包,会发送给客户端一个数据包丢弃的响应信息

SNAT:source NAT源地址转换,进入路由后,出本网络栈之前改写源地址,目的地址不变,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机。解决私网用户用同一个公网IP上网的问题;

MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的IP上;

DNAT:Destination NAT目的NAT,解决私网服务端,接收公网请求的问题。和SNAT相反,IP包经过route之前,重新修改目标地址,源地址不变,在本机建立NAT表项,当数据返回时,根据NAT表将源地址修改为数据发送过来时的目标地址,并发给远程主机??梢砸睾蠖朔衿鞯恼媸档刂?;

REDIRECT:在本机做端口映射;

LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。 除去最后一个LOG,前3条规则匹配数据包后,该数据包不会再往下继续匹配了,所以编写的规则顺序极其关键。

iptables -n -v -L  

-n:以数字的形式展示

-v:详细的输出

-L:指定查看的表(不指定则全部输出)

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target   prot opt in   out   source        destination

13642 1034K ACCEPT   all  --  *    *    0.0.0.0/0       0.0.0.0/0      state RELATED,ESTABLISHED

 0   0 ACCEPT   icmp --  *    *    0.0.0.0/0       0.0.0.0/0

 0   0 ACCEPT   all  --  lo   *    0.0.0.0/0       0.0.0.0/0

 2  128 ACCEPT   tcp  --  *    *    0.0.0.0/0       0.0.0.0/0      state NEW tcp dpt:22

 275 53284 REJECT   all  --  *    *    0.0.0.0/0       0.0.0.0/0      reject-with icmp-host-prohibited



Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target   prot opt in   out   source        destination

 0   0 REJECT   all  --  *    *    0.0.0.0/0       0.0.0.0/0      reject-with icmp-host-prohibited



Chain OUTPUT (policy ACCEPT 12516 packets, 1489K bytes)

 pkts bytes target   prot opt in   out   source        destination

Chain INPUT: INPUT链上的规则,同理,后面的“Chain FORWARD”、“Chain OUTPUT”分别是FORWARD链和OUTPUT链上的规则;

(policy ACCEPT): 表示默认策略是接受,即假如我没设置,那就是允许,只有我设置哪个不允许,才会不允许,示例中是安装iptables后的默认规则,由于默认是ACCEPT,你规则也设置为ACCEPT按道理来说是没什么意义的,因为你不设置也是ACCEPT呀,但事实上,是为了方便修改为REJECT/DROP等规则,说白了就是放在那,要设置的时候我们就可以直接修改;

prot:表示协议,如tcp(传输控制协议)、udp(用户数据报协议)、icmp(互联网控制报文协议)等。

opt:表示规则对应的选项。

in:表示数据包由哪个接口(网卡)流入,可用于设置通过哪块网卡流入的报文需要匹配当前规则。

out:表示数据包由哪个接口(网卡)流出,可用于设置通过哪块网卡流出的报文需要匹配当前规则。

source:表示数据包的源 IP 地址,可以是一个具体的 IP 地址或一个网段。

destination:表示数据包的目标 IP 地址,也可以是一个具体的 IP 地址或一个网段。

pkts: packets,包的数量;

bytes:流过的数据包的字节数;

target: 英文意思是“目标”,但该列的值通常是动作,比如ACCEPT(接受)、REJECT(拒绝)等等,但它确实可以是“目标”,比如我们创建 一条链iptables -N July_filter,然后在INPUT链上添加一条规则,让它跳转到刚刚的新链-A INPUT -p tcp -j July_filter,再用iptables -L查看,可以看到target此时已经是真正的“target(July_filter)”而不再是动作了

Chain INPUT (policy ACCEPT)

target   prot opt source        destination

ACCEPT   all  --  anywhere       anywhere       state RELATED,ESTABLISHED

ACCEPT   icmp --  anywhere       anywhere

ACCEPT   all  --  anywhere       anywhere

ACCEPT   tcp  --  anywhere       anywhere       state NEW tcp dpt:ssh

REJECT   all  --  anywhere       anywhere       reject-with icmp-host-prohibited

July_filter  tcp  --  anywhere       anywhere



Chain FORWARD (policy ACCEPT)

target   prot opt source        destination

REJECT   all  --  anywhere       anywhere       reject-with icmp-host-prohibited



Chain OUTPUT (policy ACCEPT)

target   prot opt source        destination



Chain July_filter (1 references)

target   prot opt source        destination

参考链接:

https://blog.csdn.net/weixin_40579389/article/details/131397405

https://blog.csdn.net/qq_68163788/article/details/134481153

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

推荐阅读更多精彩内容