1.iptables概念

摘要:
常见攻击意味着拒绝服务密码破解欺骗用户(社会工作者)已知漏洞常见安全防御意味着基本防火墙设备IDS类、入侵检测系统IPS类、入侵预防系统主动安全设备防火墙相关概念1。防火墙定义防火墙是在“主机边缘”或“网络边缘”工作以检测数据包,并可以根据预定义的规则,对数据消息进行“相关处理”的模块。2.防火墙的分类(1)硬件防火墙根据构建模式进行分类:一些防火墙功能是在硬件级别实现的,而另一些是基于

常见的攻击手段

拒绝服务
口令破解
欺骗用户(社工)
已知漏洞

常见的安全防御手段

基础类防火墙设备
IDS类,入侵检测系统
IPS类,入侵防御系统
主动安全类设备

防火墙有关概念

1.防火墙定义
防火墙是工作在"主机边缘"处或在"网络边缘"处对数据报文进行检测,并且能够根据事先定义好的规则,对数据报文进行"相关处理"的模块。
2.防火墙的分类
(1)根据构造方式分类
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现;性能高,成本也高。
软件服务器:应用软件处理逻辑,运行于通用硬件平台上的防火墙;性能低,成本也低。
(2)根据工作机制分类
包过滤防火墙:应用于内部主机和外部主机之间,过滤系统是一台服务器或是一台主机;过滤系统根据过滤规则来决定是否让数据包通过;主要过滤数据包内的信息有:SIP/DIP、SPORT/DPORT等
应用层防火墙:一般指应用层网关ALG,应用层防火墙顾名思义可以对七层的应用层进行防护。

iptables基础

1.iptables与netfilter

iptabels并不是真正的防火墙,可以理解为客户端代理,用户通过iptables,将用户的安全设定执行到对应的"安全框架"中,这个框架就是"netfilter"。

netfilter是Linux2.4内核防火墙架构,位于内核空间;
iptables是它的命令行工具,位于用户空间。

netfilter可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、NAT地址转换,以及基于用户及媒体控制地址的过滤和基于状态的过滤、包速率限速等。

2.聊聊iptables

客户端访问web服务时,客户端应用层产生数据,经过层层封装后,最终报文到网卡;
而TCP/IP协议栈是属于内核的一部分,所以,客户端的信息会通过内核的TCP协议传到用户空间的web服务器中,
而此时,客户端报文的目标终点为web服务所监视的socket上,当web服务需要响应客户端请求时,web服务发出的响应报文的目标终点则为客户端,
这时,web服务所监听的ip和port反而成了原点。
netfilter是内核的一部分,所以如果我们想要防火墙能够生效,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,
经过检查后,符合条件的才能放行,于是就出现了进站`input`关卡和出站`output`关卡;在IP tables中关卡即为"链"。
如果客户端发来的报文访问的目标地址可能不是本机,而是其他服务器,当本机内核中支持"ip forward"时,我们可以将报文转发给其他服务器;
所以,就会有其他的"关卡"制定相应的放行规则,分别为 路由前`PREROUTING`,转发`FORWARD`,路由后`POSTROUTING`。

1.iptables概念第1张

3.什么是"链"?

我们知道防火墙的作用就在于对经过的报文匹配"规则",然后执行对应的动作,当报文经过这些关卡的时候,就必须匹配这个关卡上的规则;一个关卡上往往有多条规则,将这些规则串起来就形成了"链"。
没经过这个关卡的报文,都要将这条链上的规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。

1.iptables概念第2张

iptables共涉及五种默认规则链,从应用时间点的角度进行理解:

1.INPUT

入站,当接收到防火墙本机地址的数据包时,应用此链中的规则

2.OUTPUT

出站,当防火墙向外发送数据包时,应用此链中的规则

3.FORWARD

转发,当接收到需要防火墙发送给其他地址的数据包时,应用此链中的规则

4.PREROUTING

在对数据包作路由选择之前,应用此链中的规则,如DNAT

经过此链的数据分为两种:1.留在本机处理 2.被转发到其他目的地

5.POSTROUTING

在对数据包作路由选择之后,应用此链中的规则,如SNAT

4.什么是表?

具有相同功能的规则的集合称为"表",不同功能的规则,我们可以放置在不同的表中进行管理,而iptables中定义了四张表,每张表中对应了不同的功能。

(1)filter表:主要用于对数据包进行过滤;内核模块:iptables_filter
(2)nat表:网络地址转换(SNAT/DNAT);内核模块:iptables_nat
(3)mangle表:修改数据包,并重新封装;内核模块:iptables_mangle
(4)raw表:用于决定数据包是否被状态跟踪机制处理,优先级最高;内核模块:iptables_raw

iptables中数据包和4种被跟踪连接的4种不同状态

  • NEW:该包想要开始一个连接(重新连接或将连接重定向)

  • RELATED:该包是属于某个已经建立的连接所建立的新请求
    例如:FTP的数据传输连接就是控制连接所 RELATED出来的连接

  • ESTABLISHED只要发送并接到应答,一个数据连接从NEW变为ESTABLISHED,而且该状态会继续匹配这个连接的后续数据包

  • INVALID:数据包不能被识别属于哪个连接或者没有任何状态比如内存溢出,收到不知属于哪个连接的ICMP错误信息,一般应该DROP这个状态的任何数据。

5.链表关系

1.iptables概念第3张

优先级次序
(由左到右)
raw --> mangle --> nat --> filter

为了更方便管理,我们还可以在某个表里面中创建自定义链,将针对某个应用程序所设置的放置在这个自定义链中;但是自定义链不能直接使用,只能被某个默认的链当作动作去调用才能起作用。

6.数据经过防火墙的流程

1.iptables概念第4张

当一个数据包进入网卡时,数据包首先进入PREROUTING链,在PREOUTING链中我们有机会修改数据包的目的IP,然后内核的"路由模块"根据"数据包的目的IP"以及"内核中的路由表"判断是否需要转送出去;

1.如果数据包就是进入本机的,即目的IP就是本机的网口IP,数据包就会到达INPUT链,数据包到达INPUT链后,这个数据包通过传输层进入用户空间,交给用户进行处理,而处理完成之后,用户进程会通过本机发出返回的数据包;

此时,这些数据包首先还是会经过主机的路由表进行路由,结束后,进入OUTPUT链,然后到达POSTROUTING链输出,这时数据包的源IP就有可能以及被我们修改了

2.如果数据包是要转发出去的,即目的IP地址不在当前子网中,且内核允许转发,数据包就会经过FORWARD链,IP包由于目的地址已经确认,就不会再经过路由,也自然不会 OUTPUT链了 而是会进入POSTROUTING链输出,选择对应子网的网卡发送出去。

如何开启Linux内核的路由转发功能?

vim /etc/sysct.conf
net.ipv4.ip_forward = 1  #修改为1,默认0

sysctl -p  #重新加载内核参数

7.iptables的规则

(1)书写规则
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]

注意

不指定表名时,默认指filter表(数据包过滤)
不指定链名,默认指表内的所有链
除非设置链的默认策略(书写外的其他策略),否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写,否则不生效

(2)控制类型(动作类型)

ACCEPT	 #允许通过
DROP   	 #直接丢弃,不给出任何回应
REJECT   #拒绝通过,必要时会给出提示
LOG    	 #匹配不会停止,记录日志信息,然后传给下一条规则继续匹配
SNAT     #修改数据包源地址
DNAT	 #修改数据包目的地址
REDIRECT #重定向

免责声明:文章转载自《1.iptables概念》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇编程之美初赛第二场 字符串压缩关于shell的单引号和双引号转义 以及特殊符号相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在VM虚拟机中安装FTP服务

自用的话,建议先关掉防火墙 systemctl stop firewalld #关闭防火墙 systemctl disable firewalld.service #设置开机禁用防火墙 systemctl start firewalld #启动防火墙 systemctl enable firewalld.service #设置开机启用防火墙 systemc...

腾讯云 远程通过端口3306访问MYSQL数据库

背景 网上自己找了一圈,要么就是资料太老,要么就是太简单,比较零散。 强行提笔,总结一下,关于腾讯云 mysql8.0 开启3306端口,用远程非本地访问数据库。 安装 Mysql8 可以执行下面的命令就可以安装了,并设置为开机自启动。 wget -i -c https://repo.mysql.com//mysql80-community-release...

五分钟彻底学会iptables防火墙--技术流ken

iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。 iptables 组件是一种工具,也称为用户空间(userspace)...

Linux关闭防火墙命令

程序在本地能跑起来且正常访问,部署到linux服务器上,跑起来没报错,但是就是访问不了, 这种问题往往是防火墙问题!! 下面是red hat/CentOs7关闭防火墙的命令: 1:查看防火状态 systemctl status firewalld service iptables status 2:暂时关闭防火墙 systemctl stop firewa...

ipset和iptables配合来自动封闭和解封有问题的IP

iptables封掉少量ip处理是没什么问题的,但是当有大量ip攻击的时候性能就跟不上了,iptables是O(N)的性能。而ipset就像一个集合,把需要封闭的ip地址放入这个集合中,ipset 是O(1)的性能,用的hash方式所以特别快。   一、软件及安装       1、iptables(一般linux都已经安装好的)       2、ipset...

iptables禁止端口和开放端口

1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。 下面是命令实现: iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP 再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了 这样的设置好了,我们只是...