防火墙——iptables

防火墙

iptables是按照规则来办事的,规则其实就是网络管理员预定义的条件,规则一般的定义为"如果数据包头符合这样的条件,就这样处理这个数据包"。

四表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ssVF43yn-1618452073631)(C:\Users\ad\Desktop\笔记\图片\image-20210413193909034.png)]

五链

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRWYSw3N-1618452073650)(C:\Users\ad\Desktop\笔记\图片\image-20210413193937475.png)]

常用控制类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8cuiCcpG-1618452073651)(C:\Users\ad\Desktop\笔记\图片\image-20210413194112694.png)]

常用的管理选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q0Vg39E7-1618452073654)(C:\Users\ad\Desktop\笔记\图片\image-20210413194146489.png)]

什么是防火墙

1)官方定义:防火墙,用于保护一个网络免受另一个网络的攻击和入侵行为,其本质是控制

2)网络安全市场,存在一种设备名为ISR,全称叫集成多业务路由器Router

3)现在市面上的防火墙,主要以以下几种形态存在 :
①硬件防火墙(独立)
②防火墙模块(能够集成到支持的设备中)
③虚拟化防火墙,(基于软件层面实现的一种应用)

4)为何虚拟防火墙只是一个趋势,没有成为主流?
①虚拟防火墙性能和稳定性上的限制,目前硬件防火墙在这两点是优于虚拟防火墙的

基础命令

cat /proce/net/ip_tables_names查看IP tables的四张表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OZ5hK3G3-1618452073655)(C:\Users\ad\Desktop\笔记\图片\image-20210413154223660.png)]

iptables -t raw -L插卡iptables raw表中的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeY2WC89-1618452073657)(C:\Users\ad\Desktop\笔记\图片\image-20210413154321968.png)]

iptables -t mangle -L查看iptables mangle表中的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvVOn70j-1618452073658)(C:\Users\ad\Desktop\笔记\图片\image-20210413154357762.png)]

iptables -t nat -L 查看iptables nat 表中的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztru85md-1618452073659)(C:\Users\ad\Desktop\笔记\图片\image-20210413154422389.png)]

iptables -t filter -L查看iptables filter 表中的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahMGlISN-1618452073660)(C:\Users\ad\Desktop\笔记\图片\image-20210413154507777.png)]

iptables -t nat -L PREROUTING查看某条链的rule,例如查看nat表PREROUTING链中的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjLzpJR8-1618452073660)(C:\Users\ad\Desktop\笔记\图片\image-20210413154531966.png)]

cat /proc/net/ip_tables_targets,使用命令查看iptables中具体的target

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nv2rAf0q-1618452073661)(C:\Users\ad\Desktop\笔记\图片\image-20210413154714354.png)]

使用iptables -t raw|mangle|nat|filter -F清空所选表(即删除所有规则)

执行iptables -t filter -F删除filter表中的所有策略规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nr6yYXWB-1618452073662)(C:\Users\ad\Desktop\笔记\图片\image-20210413155016016.png)]

使用iptables -t raw|mangle|nat|filter -X这条命令将尝试删除每个非内建造的链

执行iptables -t filter -N mychain 在filter 表中创建一个链mychain

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueiRjI7Q-1618452073663)(C:\Users\ad\Desktop\笔记\图片\image-20210413155002376.png)]

执行iptbles -t filter -X 删除表filter中所有非内建的链

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJTjaxNm-1618452073664)(C:\Users\ad\Desktop\笔记\图片\image-20210413155103682.png)]

使用iptables --help查看iptables的帮助文件[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PpCm3Ut7-1618452073665)(C:\Users\ad\Desktop\笔记\图片\image-20210413155140648.png)]

表与链

iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件 netfilter 和 iptables 组成。

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

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

iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度。

4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处 理优先级:raw>mangle>nat>filter。

filter:一般的过滤功能

nat:用于nat功能(端口映射,地址映射等)

mangle:用于对特定数据包的修改

raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

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

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

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

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

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

POSTROUTIONG:发送到网卡接口之前。

Fileter表

是用来设置包过滤规则

filter表中有INPUT,FORWARD,OUTPUT三个链

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJJacmNf-1618452073665)(C:\Users\ad\Desktop\笔记\图片\image-20210413155751225.png)]

如果使用-t nat参数来指表面,前面也可以使用-t filter 来指表名是filter表

nat表:用来做端口映射,地址映射

当内网要公布web服务器时,可以使用PEREOUTING链做dnat映射

当内网用户想要上网的时候,可以使用POSTROUTING链做snat映射

NAT表中有链PREROUTING POSTROUTING OUTPUT

使用命令iptables –t mangle –L 来查看mangle表中的链及规则

mangle表的主要作用是可以修改封包内容。可以修改IP包头的TTL值,这样可以保护主机,比如将Linux主机送出的封包内的TTL值改为128,让Cracker误以为是Windows系统。另外,TTL(生存周期,每经过一个路由器将减少1.mangle可以修改此值设定TTL要被增加的值,比如–ttl-inc4。假设一个进来的包的TTL是53,那么当它离开这台机子时,TTL应该是56,原因同–ttl-dec。使用这个选项可以使防火墙更加隐蔽,而不被trace-routes发现,方法就是设置–ttl-inc1。因为包每经过一个设备,TTL就要自动减1,但在防火墙里这个1又被补上了,也就是说,TTL的值没变,那么trace- routes就会认为防火墙是不存在的);可以修改IP包头的DSCP值,在网络应用中,有时候需要对某些特定通信协议会有特殊的需求,例如在网络电话的应用环境里,我们会希望VOIP的封包都要能在不延迟的情况下传输

Mangle表中有链PREROUTING INPUT FORWARD OUTPUT POSTROUTING

使用命令iptables –t raw –L 查看raw表

RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,
将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理。

RAW表可以应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速
度。

raw表中有链PREROUTING OUTPUT

IP tables结构及基本命令

iptables只是防火墙与用户之间的接口,真正起到防火墙作用的是Linux内核中运行的netfilter。Linux平台下的包过滤防火墙由netfilter组件和iptables组件组成,其中netfilter运行在内核态,而iptables运行在用户态,用户通过iptables命令来调用netfilter来实现防火墙的功能。

(1)netfilter组件

netfilter是Linux内核中的一个用于扩展各种网络服务的结构化底层框架。该框架定义了包过滤子系统功能的实现,提供了filter、nat和mangle3个表,默认使用的是filter表。每个表中包含有若干条内建的链(chains),用户可在表中创建自定义的链。在每条链中,可定义一条或多条过滤规则(rules)。每条规则应指定所要检查的包的特征以及如何处理与这对应的包,这被称为目标(target)。目标值可以是用户自定义的一个链名,也可以是ACCEPT、DROP、REJECT、RETURN等值。

netfilter 的过滤模块通常是动态加载到内核的

(2)iptables组件

iptables组件是一个用来指定netfilter规则和管理内核包过滤的工具,用户通过它来创建、删除或插入链,并可以在链中插入、删除和修改过滤规则。iptables仅仅是一个包过滤工具,对过滤规则的执行则是通过netfilter和相关的支持模块来实现的。

iptables 的过滤模块通常是动态加载的

查看IP tables是否安装iptables --version

IP tables支持过滤插件查看

cd /lib/iptables {不同版本的Linux可能不一样}

ls |more

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9PBF8Lz-1618452073667)(C:\Users\ad\Desktop\笔记\图片\image-20210413161433995.png)]

netfilter在应用层的接口目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4U2R1Ooi-1618452073668)(C:\Users\ad\Desktop\笔记\图片\image-20210413161456175.png)]

这些文件可以设置netfilter相关的属性

netfilter的过滤组件是否生效查看

xt_time是netfilter时间过滤组件,首先看它是否生效

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aRT3yCuu-1618452073668)(C:\Users\ad\Desktop\笔记\图片\image-20210413161659069.png)]

发现是不生效的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Wuzu2Hn-1618452073669)(C:\Users\ad\Desktop\笔记\图片\image-20210413161713063.png)]

进行xt_time组建加载

lsmod |grep xt-time

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvYXjJzu-1618452073670)(C:\Users\ad\Desktop\笔记\图片\image-20210413161908619.png)]

发现该过滤插件存在

首次使用IP tables,查看iptables的缺省规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ulfaqbUo-1618452073671)(C:\Users\ad\Desktop\笔记\图片\image-20210413162007748.png)]

TCP dump -i eth0 icmp

进入 /proc/sys/net

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0wjv3ZFU-1618452073673)(C:\Users\ad\Desktop\笔记\图片\image-20210413162418362.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhkZqfMv-1618452073673)(C:\Users\ad\Desktop\笔记\图片\image-20210413162425366.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q9cLck5l-1618452073674)(C:\Users\ad\Desktop\笔记\图片\image-20210413162438760.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Ek7mzpb-1618452073675)(C:\Users\ad\Desktop\笔记\图片\image-20210413162455715.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AAuopkpB-1618452073676)(C:\Users\ad\Desktop\笔记\图片\image-20210413162505839.png)]cat ip_tables_matches

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sVgDPEur-1618452073676)(C:\Users\ad\Desktop\笔记\图片\image-20210413162522282.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZh17cqT-1618452073677)(C:\Users\ad\Desktop\笔记\图片\image-20210413163041484.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-76K20B2z-1618452073678)(C:\Users\ad\Desktop\笔记\图片\image-20210413163758635.png)]

启动防火墙n_fw

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1dJaDwa-1618452073679)(C:\Users\ad\Desktop\笔记\图片\image-20210413163922150.png)]

iptables –I FORWARD 1 –p icmp –j ACCEPT允许ping被转发

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NUbu5L64-1618452073680)(C:\Users\ad\Desktop\笔记\图片\image-20210413163958429.png)]

控制访问

  • -s
    –source address[/mask][,…]:检查报文中的源IP地址是否符合此处指定的地址或范围;

  • -d
    –destination address[/mask][,…]:检查报文中的目标IP地址是否符合此处指定的地址或范围;

  • -p
    –protocol: tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh or “all”{tcp|udp|icmp}

  • -i
    –in-interfacename:数据报文流入的接口;只能应用于数据报文流入的环节,只能应用于PREROUTING,INPUT和FORWARD链;

  • -o
    –out-interfacename:数据报文流出的接口;只能应用于数据报文流出的环节,只能应用于FORWARD、OUTPUT和POSTROUTING链

  • 例如:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WQCsjEMM-1618452073681)(C:\Users\ad\Desktop\笔记\图片\image-20210414140722769.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EHXcP366-1618452073681)(C:\Users\ad\Desktop\笔记\图片\image-20210414140734651.png)]

你可能感兴趣的:(centos,linux)