1、iptables-netfilter基础
、iptables: 包过滤型防火墙功能、四表五链
、iptables规则、规则管理工具、iptables命令
、iptables链管理、规则管理、查看等
、iptables匹配条件、目标、显式扩展、保存及重载规则
参考:马哥教育和朱双印个人日志
http://www.zsythink.net/archives/tag/iptables/page/2/
http://www.zsythink.net/archives/1199
iptables: 包过滤型防火墙 在内核的tcp/ip协议栈上 对包的tcp首部、ip首部、udp首部做过滤
Firewall: 防火墙,是隔离工具;工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检查规则作匹配检测(跟主机病毒关系不大),对于能够被规则所匹配到的报文做出相应处理的组件;
主机防火墙:
网络防火墙:
IDS --> Firewall IDS一旦识别有人入侵服务器,则立即通知防火墙
IDS有两种常见的实现:用户发起攻击后才发现
HIDS(主机入侵检测系统):工作在主机上,只需要部署在单台主机上
NIDS(网络入侵检测系统):工作在网络通道上,需要在网络多个位置部署传感器(就像摄像头)
honeypot:钓鱼执法
honeypot:在计算机术语中,蜜罐是一种计算机安全机制,用于检测,偏转或以某种方式抵消未经授权使用信息系统的企图。通常,蜜罐由数据(例如,在网络站点中)组成,这些数据似乎是站点的合法部分,但实际上是隔离和监视的,并且似乎包含攻击者的信息或有价值的资源,然后阻止了。这类似于警方蜇伤行动,俗称“诱饵”,一名嫌犯https://en.wikipedia.org/wiki/Honeypot_(computing)
入侵检测系统(英语:Intrusion-detection system,缩写为 IDS)是一种网上安全设备或应用软件,可以监控网络传输或者系统,检查是否有可疑活动或者违反企业的政策。侦测到时发出警报或者采取主动反应措施。它与其他网络安全设备的不同之处便在于,IDS是一种积极主动的安全防护技术。https://zh.wikipedia.org/wiki/%E5%85%A5%E4%BE%B5%E6%A3%80%E6%B5%8B%E7%B3%BB%E7%BB%9F
iptables/netfilter
framework: netfilter
hooks function
rule utils: iptables 规则管理工具
iptables是工作在用户空间的工具程序,netfilter是实现防火强的框架,二者合二为一
开机启动防火墙,并不是启动防火墙服务,而是重新加载之前保存的规则,防火墙不是服务,不是进程。在开机启动时,是把规则文件重新生效了一次,没有运行任何进程,因为规则是在内核上生效的。
表、链、规则
链上放表,表上写规则
图片转载自朱双印博客
功能:表
filter: 过滤,防火墙;
nat: network address translation, 网络地址转换; (改源地址、目标地址、源端口、目标端口)
mangle:拆解报文,做出修改,封装报文;除了地址转换以外,其他的mangle都可以拿来修改
raw: 关闭nat表上启用的连接追踪机制;要想完成nat功能,必须启用链接追踪机制;
链接追踪机制:即可以识别某个报文或主机在这之前访问过本主机,Neftiler为了实现基于数据连接状态侦测的状态防火墙功能和NAT地址转换功能才开发出了连接跟踪这套机制。 那就意思是说:如果编译内核时开启了连接跟踪选项,那么Linux系统就会为它收到的每个数据包维持一个连接状态用于记录这条数据连接的状态。
如果前端接受大量请求的话,要考虑好是否开启链接追踪机制,因为这非常消耗内存
链(内置):
PREROUTING:路由选择之前
INPUT:到本机内部
FORWARD:由本机转发
OUTPUT:由本机内部发去(还需要路由选择)
POSTROUTING:路由选择转发后(第二次做出的路由决策)
PREROUTING/POSTROUTING跟网卡没有关系,因为报文进来时,都是PREROUTING,报文出去时都是POSTROUTING,它们只是tcp/ip协议栈上的功能;
FORWARD上的规则功能:这是网络防火墙的意义,假如公司内部的主机只能通过一根网线跟外部通信,那么局域网内所有主机跟访问外网都必须经过局域网的网卡,在外网的forword链上做好规则,那么是否能访问QQ都可以定义,就可以实现网络防火墙。FORWARD是针对网络防火墙。
iptables是在纯软件实现的。
流入:PREROUTING --> INPUT 到达本机内部的
流出:OUTPUT --> POSTROUTING 从本机发出去的
转发:PREROUTING --> FORWARD --> POSTROUTING 经由转发的
各功能的分别实现:
filter: INPUT, FORWARD, OUTPUT 过滤
nat: PREROUTING(DNAT目标地址转换), OUTPUT, POSTROUTING(SNAT源地址转换)
mangle:PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
raw: PREROUTING, OUTPUT 只有在刚进入本机和离开本机的时候做链接追踪
路由发生的时刻:
报文进入本机后:
判断目标主机;
报文发出之前:
判断经由哪个接口送往下一跳;
iptables:四表五链
添加规则时的考量点:
(1) 要实现哪种功能:判断添加在哪张表上;
(2) 报文流经的路径:判断添加在哪个链上;
链:链上规则的次序,即为检查的次序;因此隐含一定的法则 自上而下进行检查
(1) 同类规则(访问同一应用),匹配范围小的放上面(检查更严格);因为被第一条规则处理了,后面的就不再检查,提高效率(比如172.16.0.0/16和172.16.100.2,
那么就要把172.16.100.2放上面)
(2) 不同类规则(访问不同应用),匹配到报文频率较大的放上面;(一个规则控制访问22,另一个控制访问80,这两个就把访问频率大的放上面)
(3) 将那些可由一条规则描述的多个规则合并为一个;
(4) 设置默认策略(建议使用白名单);即没有被匹配到的报文
功能的优先级次序:raw --> mangle --> nat --> filter 自上而下
规则:
组成部分:报文的匹配条件,匹配到之后处理动作
匹配条件:根据tcp/ip协议报文特征指定
基本匹配条件:源IP、目标IP、源端口、目标端口等等
扩展匹配条件:链接追踪、状态追踪、MAC地址追踪、以及应用层的特性等
处理动作:
内建处理机制:DROP、REJECT等
自定义处理机制:匹配到后转到自定义链上,可以当作处理动作或跳转目标
注意:报文不会经过自定义链,自定义链要想发挥作用,只能在内置链上通过规则进行引用后生效;
1、iptables-netfilter基础的更多相关文章
- Linux内核下包过滤框架——iptables&netfilter
iptables & netfilter 1.简介 netfilter/iptables(下文中简称为iptables)组成Linux内核下的包过滤防火墙,完成封包过滤.封包重定向和网络地址转 ...
- Linux数据包路由原理、Iptables/netfilter入门学习
相关学习资料 https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html http://zh.wik ...
- IPtables/NetFilter
前提知识 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关: 对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不称为转发 私有地 ...
- Linux对外提供服务 网络操作 端口操作 1.开启服务监听端口 2.设置防火墙,放行访问端口的包 iptables&netfilter 四表五链和通堵策略
主题: Linux服务器上软件提供服务 1.网络操作 2.端口操作 1.网络操作 本机必须能够ping通目标主机(本地虚拟机或者远程主机) 2.端口操作 1.开启服务监听端口 2.设置防火墙,放行访问 ...
- iptables/Netfilter 学习
开始学iptables,因为它是和路由器技术紧密结合在一起的. iptables的命令看起来眼花缭乱,随便找两个: iptables -A FORWARD -p tcp -s -d -j ACCEPT ...
- iptables/netfilter命令、实现及利用(转)
原文链接:http://blog.csdn.net/sealyao/article/details/5934268 一.Netfilter和Iptables概述 netfilter/iptables ...
- Linux防火墙iptables的基础
一.网络访问控制 1.Linux一般都是作为服务器系统使用,对外提供一些基于网络的服务 2.通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能 3.常见的访问控制包括:哪些IP可以访问服务器 ...
- Netfilter/iptables防火墙
http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...
- Linux中级之netfilter/iptables应用及补充
一.iptables介绍 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常 ...
- Linux防火墙iptables基础详解
原文来自于:https://www.linuxidc.com/Linux/2017-01/140073.htm(引用自) 一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分 ...
随机推荐
- spring boot: ConfigurationProperties
读取配置信息 1.5 之前 @Component @ConfigurationProperties(prefix = "user", locations= {"class ...
- 做一次面向对象的体操:将JSON字符串转换为嵌套对象的一种方法
背景与问题 在 <一个略复杂的数据映射聚合例子及代码重构> 一文中,将一个JSON字符串转成了所需要的订单信息Map.尽管做了代码重构和配置化,过程式的代码仍然显得晦涩难懂,并且客户端使用 ...
- 20165215 2017-2018-2 《Java程序设计》第八周学习总结
20165215 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 进程与线程 进程是程序的一次动态执行过程,它对应了从代码加载.执行至执行完毕的一个完整过程. ...
- 转:【专题六】UDP编程
引用: 前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ.MSN和Skype等一些即时通信软件传输层都是应用UDP协议的) ...
- 可视化的fineBI很高大上 使用简单,简单操作了一下,拖一拖就行,收费 只能看一下人家的demo 网站 http://demo.finebi.com/webroot/decision#directory
- mycat工作原理
Mycat的原理并不复杂,复杂的是代码,如果代码也不复杂,那么早就成为一个传说了. Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析: ...
- dubbo原理
1,观察DubboBeanDefinitionParser 的构造方法,给它打一个断点,发现其前一步在DubboNamespaceHandler 应用启动会连续调此方法 DubboBeanDefini ...
- MyBatis的核心配置、动态sql、关联映射(快速总结)
MyBatis的核心对象和配置 #1. SqlSessionFactory对象: 单个数据库映射关系经过编译的内存镜像: 作用:创建SQLSession对象. //读取配置文件 InputSteam ...
- mysql用户的增删与密码丢失问题
为root用户设置初始密码 mysqladmin -u root password 密码(单实例) mysqladmin -u root password 密码 -S /data/3306/mysql ...
- dell win 10笔记本关闭多媒体键,启用功能键的快捷方式
自从使用win 10之后,在使用快捷键方面就没有win 7之前来的顺手,比如F8切换投影仪,F5/F6调试等等.特地搜了下,使用Fn+Esc可以在功能键和多媒体键之间切换.