写点什么

古有诸葛亮八卦阵阻敌,今有 iptables 护网安

发布于: 2021 年 01 月 15 日

摘要:保障网络环境的安全,我们得“武装”起来,守住各个入口。怎么“武装”呢?


网络世界就和现实世界一样,总是会有些不怀好意的“人”出现,扫扫你的端口啊,探测探测你的应用情况啊,看看有没有什么漏洞啊,然后趁虚而入......


像不像个小偷,这瞅瞅那瞅瞅,门有没有上锁,窗户有没有关严,看准时机就悄悄潜入了。


所以为了保障网络环境的安全,我们得“武装”起来,守住各个入口。


怎么“武装”呢?


使用 iptables 就可以做到,您可以根据业务需要设计一套自己的“八卦阵”,每一个报文要进来或者出去都得经过“八卦阵”里的障碍,能经过严格筛选的报文才是“好”报文。


iptables 是什么?


iptables 是 Linux 防火墙工作在用户空间的管理工具,是 netfilter/iptablesIP 信息包过滤系统的一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。它是免费的,可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。


特点:iptables 是基于内核的防火墙,功能非常强大;iptables 内置了 filter,nat,mangle 和 raw 四张表。所有规则配置后,立即生效,不需要重启服务。


iptables 组成


iptables 的结构是由表(tables)组成,而 tables 是由链(chains)组成,链又是由具体的规则组成。因此我们在编写 iptables 规则时,要先指定表,再指定链。tables 的作用是区分不同功能的规则,并且存储这些规则。



iptables 的四表五链


四个表包括:raw 表、mangle 表、nat 表、filter 表。


这四个优先级依次降低,raw 不常用,主要功能都在其他三种表里实现。每个表可以设置多个链。


  • mangle:主要用于修改数据包,表内包括五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

  • nat:不经内核,用于网络地址转换(IP、端口),表内包括三个链:PREROUTING、POSTROUTING、OUTPUT

  • filter:经过本机内核的数据,负责过滤数据包,表内包括三个链:INPUT、FORWARD、OUTPUT


五个链如下:


  • INPUT输入,过滤所有目标地址是本机的数据包。

  • FORWARD转发,过滤所有路过本机的数据包。

  • OUTPUT输出,过滤所有由本机产生的数据包。

  • PREROUTING路由前,可以在数据包到达防火墙时改变目标地址。

  • POSTROUTING路由后,在数据包离开防火墙时改变数据包的源地址。


iptables 处理数据包的流程



数据包有两种:目的地址是本机内核的数据包和经过本机内核的数据包。


  1. 数据包进入的时候,首先进入 PREROUTING 链,本机内核根据数据包目的地址判断是否需要转送出去。

  2. 如果数据包是进入本机内核的,就进入 INPUT 链。数据包到了 INPUT 链后,按条件过滤限制进入。

  3. 之后进入本机内核,再进入 OUTPUT 链,按条件过滤限制出去,然后到达 POSTROUTING 链输出。

  4. 如果数据包只是经过本机内核,需要转发出去的,且本机内核允许转发,数据包就会进入 FORWARD 链,按条件过滤限制转发,然后到达 POSTROUTING 链输出。


iptables 命令


iptables [ -t 表名 ] 管理选项 [ 链名 ] [ 条件匹配 ] [ -j 目标动作或跳转 ]


注意:


1.不指定表名时,默认表示 filter 表。


2.不指定链名时,默认表示该表内所有链,除非设置规则链的缺省策略,否则需要指定匹配条件。


举个例子,比如:需要拒绝 IP 地址为 10.10.10.8 的主机访问本机。


iptables -A INPUT -s 10.10.10.8 -j DROP


更多命令详情请参见:iptables 命令。


iptables 规则都可以在云服务器里自己配置。但是如果云服务器数目非常多,每个都要配置,那就太麻烦了,如何实现同样需求的云服务器配置相同的 iptables 规则?


安全组?网络 ACL?


没错!!!


它们都通过控制 Linux iptables 来控制进出云服务器或者用户网络的数据包,在不同的位置使用不同的方法来实现不同的目的,可以同时部署网络 ACL 和安全组实现双重防护。


安全组将具有相同安全保护需求并相互信任的云服务器加入同一个安全组。不同安全组的虚拟机之间的访问以及外网访问虚拟机,都需要通过安全组进行过滤。


网络 ACL 则作用于子网上,可以在安全组之前隔离外部过来的恶意流量,对进出用户网络的流量进行过滤。


那么,实践一下,为您的弹性云服务器设置一套“八卦阵”吧~


为云服务器配置安全组,请戳安全组简介了解。


控制出入子网的数据流,请戳网络ACL简介了解。


本文分享自华为云社区《【云小课】基础服务第 70 课 网络知识一箩筐——担心网络基本安全?iptables 八卦阵为您守护》,原文作者:云小萌。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2021 年 01 月 15 日阅读数: 86
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
古有诸葛亮八卦阵阻敌,今有iptables护网安