iptables补充

----------------------------------------

一、connlimit模块

模块实现实现连接数限定

connlimit  
    --connlimit-above [num]    :连接数限定

# iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 80 -m connlimit ! --connlimit-above 5 -j ACCEPT    #默认为DROP时,表示不超过5个连接数时,允许访问

----------------------------------------

二、recent模块

模块实现限制一段时间内的连接数

利用iptables的recent模块来抵御DOS攻击,建立一个列表,保存有所有访问过指定的服务的客户端IP

示例:防御SSH暴力破解

1.利用connlimit模块将单IP的并发设置为3;会误杀使用NAT上网的用户,可以根据实际情况增大该值;

2.利用recent和state模块限制单IP在300s内只能与本机建立2个新连接。被限制五分钟后即可恢复访问。

# iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG --log-prefix "SSH Attach: "
# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

下面对最后两句做一个说明:

1.第二句是记录访问tcp 22端口的新连接,记录名称为SSH  
--set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目

2.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。  
--update 是指每次建立连接都更新列表;  
--seconds必须与--rcheck或者--update同时使用  
--hitcount必须与--rcheck或者--update同时使用

3.iptables的记录:/proc/net/xt_recent/SSH

也可以使用下面的这句记录日志:  
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name SSH --second 300 --hitcount 3 -j LOG --log-prefix "SSH Attack"

三、nf_conntrack模块

模块实现iptables访问跟踪记录

跟踪记录文件路径:/proc/net/nf_conntrack

跟踪记录数配置文件:/proc/sys/net/nf_conntrack_max

已建立连接的状态的追踪时长,默认情况下timeout 是5天(432000秒):/proc/sys/net/ipv4/netfilter/nf_conntrack_tcp_timeout_established

如果高并发应用场景下必须启用追踪,则尽可能调大nf_conntrack_max,调小nf_conntrack_tcp_timeout_established

时间: 2024-11-06 16:38:20

iptables补充的相关文章

Linux中级之netfilter/iptables应用及补充

一.iptables介绍 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台非常低的硬件配置服务器上跑的非常好,提供近400人的上网服务丝毫不逊色企业级专业路由器防火墙. iptables + zebra + squid (企业常用网络开源产品). iptables是linux2.4及2.6内核中集成的

Iptables防火墙(一)

一.Linux防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. netfilter和iptables都用来指Linux防火墙,主要区别是: netfilter:指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系. iptables:指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于"用户态"的防火墙管理体系. 1.iptables的表.链结构 Ipt

iptables详解

IPtables(包过滤型防火墙)是一个工作在linux内核中且有连接追踪的包过滤型防火墙 Firewall(防火墙):是一个用来做网络隔离.工作在网络边缘的组件.防火墙可以根据事先定义的规则对进出本网络的数据报文进行匹配检测,并对其匹配的报文做出相应的处理.简单来说就是:根据规则,匹配报文,做出处理. 防火墙分类: 主机防火墙 网络防火墙 硬件防火墙(硬件个软件逻辑) 软件防火墙(软件逻辑,灵活) IPchains:规则连,自上而下一条条的对报文进行规则匹配,一旦被某个规则匹配就按照这个规则的

Iptables/Netfilter应用总结

目录: 一.理论部分. 二.实验部分. **********************************理论部分********************************** 1. 前提知识 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关:对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不能称为转发:私有地址在路由器上是不允许被路由的 2. iptables简介: netfilter/iptables(简称为ip

Linux中iptables设置详细(转)

无论如何,iptables是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着被老板骂吧,呵呵... 以下内容是为了防止这种情况发生而写的,当然很初级,不过一般服务器也够用了: 1.首先介绍一下指令和相关配置文件启动指令:service iptables start   重启指令:service iptables restart   关闭指令:service iptables stop     然后是相关配置:/etc/sysconfig/iptables  

linux下如何修改iptables开启80端口

最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下. www.2cto.com 经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux CentOS防火墙下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙.偶然看到CentOS防火墙的配置操作说明,感觉不错.

一个可以直接使用的可用iptables配置的stateless NAT实现

使用iptables配置stateless NAT?我没有搞错.可能你根本不知道这么多NAT的实现细节,或者说根本不在乎,那么本文就当是一个"如何编写iptables模块"的练习了.实际上,我已经实现了一个可以配置stateless NAT的内核模块了,但是它的接口是基于procfs的,并不是说这个接口不好用,而是我觉得如果能集成到iptables就更加perfect了,难道不应该这样吗?有谁能忍受通过iptables和echo的方式配置两种NAT呢?难道不应该在一个iptables

Docker容器学习梳理--小知识点补充

之前已经梳理了Docker的相关使用事项,这里再补充一些,以便加深掌握程度.1)docker run指令 [[email protected] ~]# docker run --help : docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container -a, --attach=[] Attach to STDIN, STDOUT or STDERR --add-host=[] Add a custo

iptables(1)

Firewall:隔离工具:Packets Filter Firewall:工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件: 硬件防火墙:在硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现: 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙: 主机防火墙:服务范围为当前主机: 网络防火墙:服务范围为防火墙被的局域网: iptables/netfilter: netfilter:防火墙框架,f