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下访问控制的功能的,它分 ...
随机推荐
- 基于word2vec训练词向量(二)
转自:http://www.tensorflownews.com/2018/04/19/word2vec2/ 一.基于Hierarchical Softmax的word2vec模型的缺点 上篇说了Hi ...
- python中的作用域以及内置函数globals()-全局变量、locals()-局部变量
在python中,函数会创建一个自己的作用域,也称为为命名空间.这意味着在函数内部访问某个变量时,函数会优先在自己的命名空间中寻找. 通过内置函数globals()返回的是python解释器能知道的变 ...
- JavaUtil 处理Base64的图片上传
UploadImageBase64.java package com.lee.util; import java.io.File; import java.io.FileOutputStream; i ...
- 同行span标签设置display:inline-block;overflow:hidden垂直对齐问题
1 问题描述:一个div包含 三个span 当span2 类样式设置如下图时,将导致垂直方向不对齐的情况 2解决方案: 将前面的也设置同样的样式 overflow:hidden; display:in ...
- JS3D效果
<!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...
- python通过sftp远程传输文件
python提供了一个第三方模块paramiko,通过这个模块可以实现两台机器之间的网络连接,sftp是paramiko的一个方法,使用sftp可以在两台机器之间互相传输 拷贝文件.然而paramik ...
- NGINX转发代理情况下,获取客户单真实IP
编译时加上http_realip_module 模块 realip模块生效的前提是:直接连接nginx的ip是在set_real_ip_from中指定的. 原机配置: set_real_ip_from ...
- Golang内存分配内置函数之new函数
new函数用来分配内存,主要分配值类型,比如int.float32.struct等,返回的是指针 package main import ( "fmt" ) func main() ...
- linux下配置nginx使用ftp目录作为静态资源文件的目标目录
1.安装ftp服务,可以直接yum install vsftpd. 2.设置随机启动,chkconfig vsftpd on. 3.启动ftp服务,service vsftpd start. 4.配置 ...
- python简说(十六)第三方模块安装
安装第三模块 1.pip install xxx pip问题 1.提示没有pip命令的, 把python的安装目录. 安装目录下面的scripts目录加入到环境变量里面 2.Unknown or un ...