iptables限制同一IP连接数,防防CC/DDOS攻击

启动sftp本机的iptables防火墙功能,限制每个ip连接22端口(sftp连接端口即是ssh端口)最大为50个,当超过50后的连接数的流量就会被DROP掉!

同时iptables需要开放50000-65535范围的端口的访问(linux系统最大的端口为65535)

[[email protected] ~]# cat /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 50 --connlimit-mask 0 -j DROP

-A INPUT -m state --state NEW -m tcp -p tcp --dport 50000:65535 -j ACCEPT

#-A INPUT -j REJECT --reject-with icmp-host-prohibited                                //注意这两行需要注释掉!否则设置的策略无效!

#-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

=================================解释说明===========================================

上面限制端口连接数主要用到的模块是connlimit。

-A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 50 --connlimit-mask 0 -j DROP

说明输入的目标端口是22,也就是访问sftp本机22端口的流量,如果连接数大于50,则DROP流量,connlimit-above这个是连接数的统计,

如果大于50就满足条件,connlimit-mask这个是定义那组主机,此处跟的一个数值是网络位,即子网掩码,也就是connlimit-mask 0 这个ip组的连接数大于connlimit-above 50则DROP掉!

总体描述为流量过滤端口和连接数以及网络位,如果满足第一条,则拒绝,流量不再匹配下边的规则,如果不匹配,则第二条规则会允许流量。

--connlimit-mask 0 即子网掩码为0,表示所有的ip,也就是说不管什么ip,只要连接此服务器的22端口超过3个,则DROP。

如果将--connlimit-mask 0去掉,则子网掩码默认是32,也就是说某个ip连接此服务器的22端口超哥50个,则DROP掉!

如果有51台机器,每台机器连接一个,则不会被DROP掉!

也就是说connlimit-above 3这个的数量所限制的区域是由--connlimit-mask 0而定!

================iptables限制同一IP连接数,防防CC/DDOS攻击================


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

1)限制与80端口连接的IP最大连接数为50,可自定义修改。

[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP

2)使用recent模块限制同IP时间内新请求连接数。

下面策略表示:60秒有10个新连接,超过记录日志。

[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10

-j LOG --log-prefix ‘DDOS:‘ --log-ip-options

下面策略表示:60秒10个新连接,超过丢弃数据包

[[email protected] ~]# iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP

可以在iptables配置文件中

[[email protected] ~]# vim /etc/sysconfig/iptables    //删除原来的内容输入如下内容 保存

# Generated by iptables-save v1.3.5 on Sun Dec 12 23:55:59 2010

*filter

:INPUT DROP [385263:27864079]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [4367656:3514692346]

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -s 127.0.0.1 -j ACCEPT

-A INPUT -p tcp -m tcp –dport 80 -m state –state NEW -m recent –set –name WEB –rsource

-A INPUT -p tcp -m tcp –dport 80 -m state –state NEW -m recent –update –seconds 5 –hitcount 20 –rttl –name WEB –rsource -j DROP

-A INPUT -p tcp -m multiport –ports 21,22,80 -j ACCEPT

-A INPUT -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m ttl –ttl-eq 117 -j DROP

-A INPUT -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m length –length 0:40 -j DROP

-A INPUT -p tcp -m tcp ! –tcp-flags SYN,RST,ACK SYN -m state –state NEW -j DROP

COMMIT

# Completed on Sun Dec 12 23:55:59 2017

以上配置,说明此设定仅对外开放21(FTP),22(SSH),80(http网站)三个TCP端口。设置80端口5秒内20个连接。

[[email protected] ~]# /etc/init.d/iptables restar

原文地址:https://www.cnblogs.com/cheyunhua/p/8151115.html

时间: 2024-08-04 13:23:55

iptables限制同一IP连接数,防防CC/DDOS攻击的相关文章

linux中Iptables限制同一IP连接数防CC/DDOS攻击方法

1.限制与80端口连接的IP最大连接数为10,可自定义修改.  代码如下 复制代码 iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP 2.使用recent模块限制同IP时间内新请求连接数,recent更多功能请参考:Iptables模块recent应用.  代码如下 复制代码 iptables -A INPUT -p tcp --dport 80 --syn -m recent --name

域名做CDN来通过隐藏服务器真实IP的方法来防止DDoS攻击(转)

隐藏服务器真实IP是解决问题最好和最快的方法,但只针对小流量,大流量同样会扛不住. 服务器前端加CDN中转,比如阿里云.百度云加速.360网站卫士.加速乐.安全宝等,如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址.此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析. 另外防止服务器对外传送信息泄漏IP,最常见的是,服务器不使用发送邮件功能,如果非要发送邮件,可以通过第三方代理(例如sendcl

惠州/衡阳机房 无视CC、防御DDOS攻击

惠州/衡阳新上线无视CC攻击服务器独立主机高配置,G口带宽无限制,专业CC策略防护,可防千万肉鸡,真正的无视CC攻击,挂站首选单机防护40G-320G,可防高流量DDOS攻击 惠州IP段:183.2.242.X/183.2.243.X/183.2.247.X/183.2.225.X/183.2.236.X/183.2.249.X 衡阳IP段:175.6.245.X/175.6.244.X/175.6.247.X 数量不多,现已火热抢购中如有需求,请联系企业QQ:2851506992   Tel:

Linux iptables防火墙详解 + 配置抗DDOS攻击策略实战

inux iptables防火墙详解 + 配置抗DDOS攻击策略实战 Linux 内核中很早就实现了网络防火墙功能,在不同的Linux内核版本中,使用了不同的软件实现防火墙功能.在2.0内核中,防火墙操作工具叫:ipfwadm在2.2内核中,防火墙操作工具叫:ipchains在2.4以后的内核,防火墙操作工具叫:iptables ipfwadm 和 ipchains 比较老,已成历史版本,本章主要介绍Iptables 一.iptable 操作命令参数详解 -A  APPEND,追加一条规则(放到

iptables防DDOS攻击和CC攻击设置

防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN iptables -A syn-flood -j REJECT #防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃 iptables

棋牌游戏平台服务器如何防住cc攻击

国内棋牌游戏市场目前正火爆,很多人租用服务器搭建棋牌游戏,同时由于游戏的特殊性,游戏易受攻击也是众所周知的,因此一般游戏网站都使用高防的服务器,使用高防服务器,可以用硬件防火墙抵御网络上的各种攻击,但是不影响服务器的使用,方便安全. 相对于普通服务器,硬防高防服务器价格也是比较贵的,但是相比着遭受攻击后造成的损失而言,还是非常划算而且实用.因此棋牌游戏高防服务器也是销售非常火爆. 如果防不住网络攻击,用户就无法正常访问我们的游戏,无法开始游戏或者游戏的某些功能丢失,这对于一个游戏玩家来说,是非常

转:nginx防DDOS攻击的简单配置

文章来自于: 近期由于工作需要,做了些防DDOS攻击的研究,发现nginx本身就有这方面的模块ngx_http_limit_req_module和ngx_http_limit_conn_module. 一.基本介绍 1.ngx_http_limit_req_module 配置格式及说明: 设置一个缓存区保存不同key的状态,这里的状态是指当前的过量请求数.而key是由variable指定的,是一个非空的变量,我们这里使用$binary_remote_addr,表示源IP为key值. limit_

Apache 实现http协议自动转成https协议,Apache 防DDOS攻击 使用mod_rpaf模块 mod_evasive模块

一:实践环境介绍 二:配置Apache,实现访问http页面自动转成https页面 需求1:整个站点都实现http自动转https 需求2:整个站点使用http协议,只有某个单独页面从http自动转到https 实验环境介绍 使用yum 安装apache Apache版本 # httpd -v Server version: Apache/2.2.15 (Unix) Server built:   Aug 13 2013 17:29:28 使用yum 安装openssl # yum instal

拦截相同IP连接数过大的会话请求

拦截相同IP连接数过大的会话请求 系统环境:Centos 6.5 x64 为避免Linux主机遭受攻击,需要定时查看主机上的会话连接数.对于同一IP会话数过高的,肯定判断为不正常.可以通过shell脚本定时把不正常的IP加入进防火墙中,来DROP掉它. [[email protected] ssh]# vi /etc/ssh/blockip #!/bin/bash #auto drop IP ,IP address greater than 10 #by authors evanli 2017-