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

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

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

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

怎么“武装”呢?

使用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八卦阵为您守护》,原文作者:云小萌。

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

古有诸葛亮八卦阵阻敌,今有 iptables 护网安的更多相关文章

  1. LINUX命令总结 -------来自 水滴娃娃 的CSDN

    LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报  分类: linux(1)  版权声明:本文为博主原创文章,未经博主允许不得 ...

  2. 全部省市县数据库(MySQL脚本) (转)

    /*MySQL - 5.5.47 *************//*!40101 SET NAMES utf8 */; create table `base_area` (    `codeid` me ...

  3. sql-省市区

    insert into Area (codeid,parentid,cityName) values(11,0,'北京');insert into Area (codeid,parentid,city ...

  4. mongodb的安装与简单操作

    MongoDB中文社区:http://www.mongoing.com     数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer  --->磁盘操作 1.高度事务性的场景 ...

  5. Guava cacha 机制及源码分析

    1.ehcahce 什么时候用比较好:2.问题:当有个消息的key不在guava里面的话,如果大量的消息过来,会同时请求数据库吗?还是只有一个请求数据库,其他的等待第一个把数据从DB加载到Guava中 ...

  6. MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑

    1.简介 我们经常会在Linux上安装MySQL数据库,但是安装的时候总是会这里错,那里错,不顺利,今天整理了一下安装流程,连续安装来了两遍,没有遇到什么大错误,基本上十分钟左右可以搞定,教程如下.写 ...

  7. Python之常用数据类型详解

    tuple 元组 1 # 定义 2 temp = (2, ) # 规范定义,单个元素的元组 3 tem = 2, # 可行,但不规范定义 4 tep = () # 空元组 5 6 tp = (1, ' ...

  8. HDU 1166 敌兵布阵 (树状数组)

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    ...

  9. HDU 1166 敌兵布阵(分块)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  10. HDU 1166 敌兵布阵(线段树单点更新)

    敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...

随机推荐

  1. Atcoder Regular Contest 166

    只打了半场. A. Replace C or Swap AB 首先如果存在某个 \(i\),使得 \(Y_i\) 是 C 且 \(X_i\) 不是,那么显然是不合法的,可以直接判掉. 那么除去上述情况 ...

  2. 拿到开发板需要做的事情 -- 配置Python环境

    1.查看系统时间 date -R 2.修改系统时间 windows上时间项目时间正常,Ubuntu16.04上时间错误 - 贾斯丁哔哔 - 博客园 (cnblogs.com) 3.安装pip3 sud ...

  3. 使用 sed 处理文本文件

    前言 sed 是一款 GNU 流编辑器,可以按照指定的规则去处理文本文件或流,其强大的功能使用户在命令中快捷地修改文本文件成为可能. 它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所 ...

  4. C语言水仙花数

    #include<stdio.h> void main() { int i, j, k, n=100;//分别设置三个数和一个三位数 for(i=1;i<=9;i++) //一个一个 ...

  5. 【python】大作业进度一 | 解析题目

    1.爬取生成txt文件(整本小说) 2.图形化界面的实现

  6. 【vue】【外包杯】jtl和html文件的区别

    ftl(freemaker) jsp(jstl) 举例:html ftl

  7. 【maven】【外包杯】模块化开发

    什么是maven模块化开发? 在多人协同开发,特别是规模较大的项目,为了方便日后的代码维护和管理,我们会将每个开发人员的工作细分到具体的功能和模块上. 该pom.xml文件多对应的项目称之为Root项 ...

  8. 洛谷P2757 [国家集训队]等差子序列 (hash+线段树)

    题目连接 这题只要令 $len=3$看是否符合即可.因为是一个 $1$到 $n$的排列,考虑数列中项,那么对于一个数 $x$,令 $k=\max(n-x, x-1)$,只要存在 $d\in(1,k)$ ...

  9. 【总结】MySQL使用优化

    一.表设计 1.避免使用null  占用额外空间.索引无效.检索麻烦 2.能用int 不用varchaer,能用varchaer 不用text 3.int 最好给默认值 0 .varchar empt ...

  10. ASP.NET Core 8 在 Windows 上各种部署模型的性能测试

    ASP.NET Core 8 在 Windows 上各种部署模型的性能测试 我们知道 Asp.net Core 在 windows 服务器上部署的方案有 4 种之多.这些部署方案对性能的影响一直以来都 ...