iptables与netfilter基础与示例

该怎么描述防火墙的实现呢?既然说不明白那就不说了,自己领悟吧!

一、防火墙是什么?

通过一些规则在网络数据报文必经的几个钩子上做端口的限制,实现数据过滤的功能。

二、数据报文传输的路径是怎样的?

1、 客户端发出数据报文---->到达服务器的网络接口-----(判断目标是服务器自己)将报文送入内核处理---->将处理好的数据报文转发出去---->通过网络接口发还给客户端

2、客户端发出数据报文---->到达服务器的网络接口-----(判断目标不是服务器)将数据转发出去---->通过网络接口送去目标地址

三、哪些地方是数据流必经的点?

1.报文进入网卡,但是还没有经过路由,这个点叫做prerouting

2.报文经过路由后送入内核之前,这个点叫做input

3.路由功能节点,这个点叫forward

4.报文由内核处理完毕,发送给路由之前,这个点叫output

5.报文经过路由后,就要经过网卡发送出去,这个点叫postrouting

这些点在专业术语中称为hooks funcation即钩子函数,因为所有的数据流必经这五个点,所以我们的防火墙规则写在这5个点上就可以了。

四、有哪些规则可以防火?

这就要谈一下防火墙的历史了,最开始linux是没有防火墙设计的,基于安全的考虑OpenBSD最先将防火墙的概念在其unix内核中实现。后来linux的维护者看到有这么好的东西,就把它移植到linux的内核中去了,最开始这个规则叫做firewall,但是其太简陋了,只能起到数据报文过滤filter的功能。随着时间的发展其功能得到了非常多的扩展,比如实现了nat、mangle、raw等功能,所以后来给这些功能统一一起来起了个好听的名字——netfilter,怎么样?好听吧......

netfilter叫做规则,它有四种功能:

1.filter 过滤

2.nat    网络地址转换

3.mangle 修改数据报文首部的可修改信息

4.raw    关闭net表上启动的连接追踪功能

五、什么是链?chain?

在一个钩子上添加了很多规则功能,这些规则功能连起来就叫chain。但是有些功能只有在特定的钩子上才起作用,下面是五个链的对应表:

prerouting raw mangle nat
input mangle filter
output raw mangle nat filter
forward mangle filter
postrouting mangle nat

链上面的规则检查是要按顺序检查的:

1.同类规则匹配范围小的方上面

2.不同类规则,匹配次数频繁的方上面

3.应该设定默认的规则

六、什么是表?table

每个功能都对应几个链,把这些链排起来就是表,下面是四个功能表:

filter input forward output
nat prerouting output postrouting

mangle

prerouting input output forward postrouting
raw prerouting output

七、上面所说的规则功能怎么添加到linux中?

iptables是一个接口,也是一个工具,可以让程序员使用命令行模式输入设定的规则到指定的hooks funcation上,实现防火墙的功能。

格式:

# iptables [-t TABLE] SUBCOMMAND CHAIN CRETERIA -j TARGET

TABLE: filter, nat, mangle, raw

SUBCOMMAND:

-P   设置链的默认处理 #iptables -P INPUT DROP

-F   清空指定链上的所有规则 #iptables -F INPUT

-Z   将链上的流经的数据报文数据清零

-N   新建一个链,自定义的链
                  -X   删除用户自定义的空链

-E   重命名自定义链

-A   在指定链的最后添加一条规则
                  -I   插入一条规则,默认插入为第一条

-D   删除指定的规则

-R   替换指定的规则

-L   列出指定链上的所有规则

-L -n  以数字方式列出

-L -n -v 更相信的信息

-L -n --line-numbers 显示规则编号

-L -n -v -x 显示计数器的精确值

CHAIN: PREROUTING INPUT FORWARD OUTPUT POSTROUTING

CRETERIA:

通用:-p   检查协议tcp,udp,icmp

-s   源IP

-d   目标IP

-i   进入网卡接口

-o   出去网卡接口

隐式:(如果-p指明了协议-m 和协议可以省略)

-m  tcp  --dport|sport|syn|tcp-flags LIST1 LIST2

-m  udp  --dport|sport

-m  icmp --icmp-type 8|0(8为ping请求,0为ping响应)

显示:

-m multiport     指定多个端口

--sports

--dports

-m iprange        指定IP范围

--src-range   源  (注意:前面可使用 ! 表示否定含义)

--dst-range   目标

-m string         指定过滤的字符串

--algo {kmp|bm}  指定解析算法

--string         字符串

--hex-string    十六进制编码后的字符串

-m time          基于时间做限制

--datestart

--datestop

--timestart

--timestop

--weekdays

-m connlimit       基于并发连接数做限制

--connlimit-above

-m limit           基于链接速率做限制

--limit n[/second|/minit|/hour|/day]  限制链接速度多久一次

--limit-burst n    突发链接速率最快每秒n个

TARGET:

内置目标:ACCEPT(接受),DROP(不响应),REJECT(拒绝)

自定义的链chain

八、未完待续

时间: 2024-08-07 10:32:54

iptables与netfilter基础与示例的相关文章

netfilter基础及iptables基本应用

防火墙及netfilter基础 firewall 工作于主机或网络的边缘,对于进出的报文根据事先定义的规则作检查,对能够被规则匹配的报文作出相应处理的组件. 可分为主机防火墙和网络防火墙 可以是软件,也可以是硬件,专业的硬件防火墙:checkpoint, netscreen iptables:规则管理工具,是工作于用户空间的程序,可自动检查语法错误: netfilter: 网络过滤器, 是工作于内核空间TCP/IP网络协议栈上的框架: IDS:Intrusion Detecting System

防火墙、Iptables、netfilter/iptables、NAT 概述

防火墙.Iptables.netfilter/iptables.NAT 概述 - 如果你真的想做一件事,你一定会找到方法: 如果你不想做一件事,你一定会找到借口. - ITeye技术网站 一.防火墙的简介 防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性.它通过访问控制机制,确定哪些内部服务允许外部访问,以及 允许哪些外部请求可以访问内部服务.它可以根据网络传输的类型决定IP包是否可以传进或传出内部网 防火墙通过审查经过的每一个数据包,判断它是否有相匹配的

Spring温习(1)--最基础的示例

Spring温习(1)--最基础的示例 博客分类: 框架-Spring专栏 SpringXMLBeanWebDAO 从现在开始,我将从Spring为起点,逐步复习几大框架各方面的知识,以便今后查看使用 第一各Spring示例 必须包:spring-framework-2.5.6\dist\spring.jar spring-framework-2.5.6\lib\jakarta-commons\common-logging.jar 为了方便测试还需要:spring-framework-2.5.6

编译内核启用iptables及netfilter

在Network Packet Filtering Framework(Netfilter)一节中还有两个额外的配置节--Core Netfilter Configuration(核心Netfilter配置)和IP:Netfilter Configuration(IP:Netfilter配置). 1. 核心Netfilter配置 核心Netfilter配置节中包含的一些重要选项都应该被启用: l    Comment match support(comment匹配支持): l    FTP su

docker-compose 构建mongodb并导入基础数据示例

使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 --mongo/ |--docker-compose.yml |--mongo-Dockerfile |--setup.sh |--data/ |--xxx1.json |--xxx2.json 2.docker-compose.yml 1 services: 2 mongo_db: 3 build: 4 context: . 5 dockerfile: mongo-Dockerfile 6 resta

iptables和netfilter

1.iptables和netfilter说明 netfilter/iptables组成Linux平台下的包过滤防火墙,iptables是用户空间的管理工具,netfilter是内核空间的包处理框架. 2.数据包处理流程 首先数据包进入PREROUTING链,之后根据路由决策进入INPUT(本机)还是FORWARD(转发),进入INPUT后会继续进入OUTPUT链,最后都走到POSTROUTING链. 另外,如果加入各种规则之后,则数据包进入某个链之后,还要顺序执行链上的规则,如果匹配某个规则,则

深入理解 iptables 和 netfilter 架构

Published at 2019-02-18 | Last Update 译者序 本文翻译自 2015 年的一篇英文博客 A Deep Dive into Iptables and Netfilter Architecture . 这篇对 iptables 和 netfilter 的设计和原理介绍比较全面,美中不足的是没有那张 内核协议栈各 hook 点位置和 iptables 规则优先级的经典配图,这里补充如下(来自 Wikipedia ): 另外,本文只讲理论,而下面这篇则侧重实战(基于

防火墙及netfilter基础iptables基本用法

iptables firewall: 主机防火墙 网络防火墙 工作于主机或网络的边缘,对于进出的报文根据事先定义的规则作检查,将那些能够被规则所匹配到的报文作出相应处理的组件. 网络防火墙: 专业的硬件防火墙: checkpoint,netscreen 主机: iptables: 程序 iptables:规则编写工具 netfilter: 网络过滤器, 内核中工作在TCP/IP网络协议栈上的框架: IDS:IntrusionDetecting System NIDS HIDS IPS:Intru

针对Red Hat Enterprise Linux 6.5 的防火墙详细讲解,iptables(netfilter)规则的

防火墙基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或网络层防火墙).基于Linux内核编码实现,具有非常稳定的性能和高效率,因此获得广泛使用. 在Linux系统中,netfilter和iptables都用来指Linux防火墙. netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"(Kernel Space,又称为内核空间)的防火墙功能体系. iptables:指的是