linux iptables 防火墙简介
iptables防火墙简介
Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。特别是它可以在一台非常低的硬件配置下跑的非常好
Iptables是Linux2.4及2.6内核中集成的服务。提供近400人的上网服务丝毫不逊色企业级专业路由器防火墙,其功能与安全性比其ipfwadm,ipchains强大的多,iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持7层控制(squid代理+iptables)
iptables 名词和术语
容器:包含和被包含的关系
iptables是表的容器
iptables包含表 (4张表)表是链的容器,每个表都包含若干个链
链是规则的容器,真正过滤规则是属于链里面的
级别介绍
iptables国家
表省
链 市
规则 县
iptables工作流程
iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则来进行匹配是否可以进入到主机。
数据包的流向是从左向右的
匹配规则

iptables工作流程小结
1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2.如果匹配上规则,即明确表是阻止还是通过,此时数据包就不在向下匹配新规则了。
3.如果所有规则中没有明确是阻止还是通过这个数据包,也就是没有匹配上新规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过
4.防火墙iptables的默认规则是对应链的所有规则执行完才会执行的。
iptables表(tables)和链(chains)
iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(Chains)


Filter表是真正的防火墙功能
INPUT进服务器 OUTPUT出服务器 FORWARD 流经服务器
Nat表 负责数据包改写 网关共享上网、IP和端口映射
OUTPUT
PREROUTING
POSTROUTING
Mangle表 路由标记 用的不多
####所有链全有
RAW 表 用处很少和Mangle一样
我们可以通过man iptables 来获取
表介绍
filter标签

不指定哪张表就会使用默认filter表
filter表的核心功能:主机防火墙
强调:对于filter表的控制是我们实现本机防火墙的重要手段,特别是对INPUT链的控制
NAT表
NAT表的核心功能:IP和端口映射转换
负责网络地址转换,即来源与目的ip地址和port的转换。
应用:和主机本身无关。一般用于局域网共享上网或者特殊的端口转换服务相关。
NAT功能一般企业工作场景
1.用于做企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)
2.做内部外部ip地址一对一映射(dmz),通过使用iptables防火墙映射ip到内部服务器,ftp服务。(PREROUTING)
3.单个端口的映射,例如:映射80端口(PREROUTING)
这个表定义了三个链(Chains),nat功能就相当于网络的ACL控制。和网络交换机、路由器ACL类似。



iptables表和链工作流程图

NAT功能:
企业案例:
1)局域网上网共享(路由和网关)使用NAT的 POSTROUTING链
2)端口映射: 外部IP和端口映射为内部IP和端口(DMZ功能),使用NAT的 PREROUTING链
Filter功能,即防火墙FILTER INPUT FORWARD
企业案例:主要应用于服务器防火墙
linux iptables 防火墙简介的更多相关文章
- 15.linux iptables防火墙规则vsftp服务
一.服务所开启的端口号. dhcp 67 samba 139 445 http 80 https 443 mysql 3306 ...
- Linux iptables防火墙
查找安装包yum list | grep iptables 安装iptables yum install iptables-services 重启防火墙使配置文件生效 systemctl restar ...
- Linux iptables 防火墙
内容摘要 防火墙 防火墙定义 防火墙分类 netfilter/iptables netfilter 设计架构 iptables 简述 iptables 命令详解 命令语法 table 参数 comma ...
- CentOS Linux iptables 防火墙
快速安装,配置,启动,检查 - 关闭 5002 - 5011 端口开放所有其它 yum install iptables iptables -F iptables -X iptables -Z ipt ...
- Linux iptables 防火墙详解
0x00 iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. netfilter 组件也称为内核空间,是内核的一部分,由一些 ...
- iptables防火墙简介
原文地址:http://drops.wooyun.org/tips/1424 一.iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组 ...
- Linux iptables 防火墙设置
1.查看防火墙iptables -L -niptablesb -L -n --line-number 显示规则行号看到 INPUT ACCEPT, FORWARD ACCEPT , OUTPUT A ...
- LINUX IPTABLES 防火墙配置
0.iptables(ACL)的匹配原则: 与cisco等一致,从上到下依次匹配. 1.iptables的基本用法:. (1)命令格式 iptables [–ttable] command [mat ...
- Linux iptables 防火墙常用规则
iptables 安装 yum install iptables iptables 规则清除 iptables -F iptables -X iptables -Z 开放指定的端口允许本地回环接口(即 ...
随机推荐
- SNF软件开发机器人2018最新更新内容
SNF软件开发机器人从10月份到现在的更新升级情况如下: 1 表单 表单控件占多列时,宽度默认0,自适应宽度2 excel导出 部分excel导出方法移动到框架中,可通用获取3 生成代码 生成的代码, ...
- 如何保证修改resolv.conf后重启不恢复?
如何保证修改resolv.conf后重启不恢复? 修改/etc/resolv.conf,重启网卡后,/etc/resolv.conf恢复到原来的状态. CentOS.redhat下面直接修改/etc/ ...
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其一)
策划填Excel表时,约定对于复杂类型的数据采用Json的格式填写.如下图,D列的内容是Json数据. 单元格中的Json如下. { "name": "BeJson2&q ...
- Unity调用安卓Android的Toast
需求:在游戏中弹窗消息,调起安卓的Toast 项目中需要做Unity和安卓交互时,经常需要通过安卓Toast来做简单的输出,以便于测试. 方法一:Unity中,C#主导 // Unity调用安卓的土司 ...
- selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None;Message: unexpected alert open: {Alert text : 您点击的频率过快!请稍后再试}
报错 Traceback (most recent call last): File "C:/myFiles/code/cnki/cnki_1/core/knavi.py", li ...
- JAVA获取apk包的package和launchable-activity名称(完善成EXE版)
出来混迟早是要还的. 在这一篇中https://www.cnblogs.com/sincoolvip/p/5882817.html,只是简单讲了一下获取apk包的package和launchable- ...
- vlc-ts
https://github.com/jiayayao/vlc_2.1.0-vs_2010 https://wenku.baidu.com/view/a0634d26336c1eb91a375d70. ...
- laravel5.8笔记五:基类控制器和基类模型
建立基类的目的就是为了方便继承.比如:Admin模块访问,是否登陆.检测登陆可以写到基类里面 控制器基类 原始基类:app\Http\Controllers\Controller.php,我们下面要做 ...
- mysql使用druid监控配置
近一年公司对druid使用频率越来越高了,感觉有必要了解下druid的监控配置,参考文档:https://blog.csdn.net/netdevgirl/article/details/526098 ...
- python str byte 转换
# bytes object b = b"example" # str object s = "example" # str to bytes bytes(s, ...