古有诸葛亮八卦阵阻敌,今有 iptables 护网安
摘要:保障网络环境的安全,我们得“武装”起来,守住各个入口。怎么“武装”呢?
网络世界就和现实世界一样,总是会有些不怀好意的“人”出现,扫扫你的端口啊,探测探测你的应用情况啊,看看有没有什么漏洞啊,然后趁虚而入......
像不像个小偷,这瞅瞅那瞅瞅,门有没有上锁,窗户有没有关严,看准时机就悄悄潜入了。
所以为了保障网络环境的安全,我们得“武装”起来,守住各个入口。
怎么“武装”呢?
使用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处理数据包的流程

数据包有两种:目的地址是本机内核的数据包和经过本机内核的数据包。
- 数据包进入的时候,首先进入PREROUTING链,本机内核根据数据包目的地址判断是否需要转送出去。
- 如果数据包是进入本机内核的,就进入INPUT链。数据包到了INPUT链后,按条件过滤限制进入。
- 之后进入本机内核,再进入OUTPUT链,按条件过滤限制出去,然后到达POSTROUTING 链输出。
- 如果数据包只是经过本机内核,需要转发出去的,且本机内核允许转发,数据包就会进入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 护网安的更多相关文章
- LINUX命令总结 -------来自 水滴娃娃 的CSDN
LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报 分类: linux(1) 版权声明:本文为博主原创文章,未经博主允许不得 ...
- 全部省市县数据库(MySQL脚本) (转)
/*MySQL - 5.5.47 *************//*!40101 SET NAMES utf8 */; create table `base_area` ( `codeid` me ...
- sql-省市区
insert into Area (codeid,parentid,cityName) values(11,0,'北京');insert into Area (codeid,parentid,city ...
- mongodb的安装与简单操作
MongoDB中文社区:http://www.mongoing.com 数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer --->磁盘操作 1.高度事务性的场景 ...
- Guava cacha 机制及源码分析
1.ehcahce 什么时候用比较好:2.问题:当有个消息的key不在guava里面的话,如果大量的消息过来,会同时请求数据库吗?还是只有一个请求数据库,其他的等待第一个把数据从DB加载到Guava中 ...
- MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑
1.简介 我们经常会在Linux上安装MySQL数据库,但是安装的时候总是会这里错,那里错,不顺利,今天整理了一下安装流程,连续安装来了两遍,没有遇到什么大错误,基本上十分钟左右可以搞定,教程如下.写 ...
- Python之常用数据类型详解
tuple 元组 1 # 定义 2 temp = (2, ) # 规范定义,单个元素的元组 3 tem = 2, # 可行,但不规范定义 4 tep = () # 空元组 5 6 tp = (1, ' ...
- HDU 1166 敌兵布阵 (树状数组)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1166 敌兵布阵(分块)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU 1166 敌兵布阵(线段树单点更新)
敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...
随机推荐
- zend framework 数据库操作(DB操作)总结
(1)数据查询总结 fetchRow()这个方法返回一行,具体返回是相关数组还是什么用setFetchMode()决定fetchCol()返回第一列fetchOne()返回第一行,第一列.为一个值不是 ...
- ELK中 Elasticsearch和Logstash内存大小设置的考虑
本文为博主原创,转载请注明出处: 在ELK(Elasticsearch.Logstash和Kibana)日志采集和分析场景中,适当设置Logstash和Elasticsearch的内存大小非常重要.这 ...
- Idea单窗口导入多个项目模块
现在我们比较流行微服务,但是服务一旦多了,项目打开也是很麻烦的,运行内存16个G的电脑,基本上打开4,5个项目模块就顶不住了.那么,我们怎么把多个项目导入到一个idea窗口中呢? 实现效果 导入步骤 ...
- Java比赛常用API总结
1.栈和队列 1.1 栈的常用方法 //1.栈顶插入元素 push(element) //2.返回栈顶元素并弹出栈顶元素 pop() //3.返回栈顶元素但不弹出 peek() //4.清空栈 cle ...
- Kurator v0.5.0发布,打造统一的多集群备份与存储体验
本文分享自华为云社区<Kurator v0.5.0正式发布! 打造统一的多集群备份与存储体验>,作者: 云容器大未来 . Kurator 是由华为云推出的开源分布式云原生套件.面向分布式云 ...
- 【Javaweb】什么是Listener监听器?
1.Listener监听器它是Javaweb的三大组件之一.Javaweb的三大组件分别是:Servelt程序,Filter过滤器,Listener监听器. 2.Listener它是JavaEE的规范 ...
- Serializable是什么?为什么在Entity层要实现Serializable接口
我在做房产信息管理系统时用到了Serializable接口 Serializable含义: 一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化. Serializ ...
- 25 个超棒的 Python 脚本合集
Python是一种功能强大且灵活的编程语言,拥有广泛的应用领域.下面是一个详细介绍25个超棒的Python脚本合集: 1. 网络爬虫:使用Python可以轻松编写网络爬虫,从网页中提取数据并保存为结构 ...
- [ABC263F] Tournament
Problem Statement $2^N$ people, numbered $1$ to $2^N$, will participate in a rock-paper-scissors tou ...
- zookeeper JavaAPI 操作-watch监听
1.NodeCache监听代码: @Test public void testNodeCache() throws Exception { //1.创建NodeCache对象 NodeCache no ...