CentOS 6 Iptables关于--hitcount数值限制的问题

原创 2015年07月09日 09:40:18

一直知道iptables 很强大,但是所知甚少,今天突然想做下iptables 限制连接数的问题,参照iptables man手册 recent 部分,在iptables 文件中写了两条规则,命令行写法如下:

    iptables -A INPUT -p tcp --dport 80 -m recent --name badguy --seconds 60 --update --hitcount 100 -j DROP
    iptables -A INPUT -p tcp --dport 80 -m recent --name badguy --set -j ACCEPT

重启iptables,但是奇妙的事情发生了:
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: iptables-restore: line 17 failed
立刻去查看iptables 文件,发现第17行的内容为 COMMIT!一定是规则有问题,把规则注释掉,再重启,OK了!然后用各种姿势google,无解。查到网友的写法跟我的写法一样一样的,正常工作!WTF的节奏!
继续调整规则,发现把–hitcount 100 去掉后就OK,加上就failed,回头继续看man 手册,关于–hitcount 的描述如下:
This option must be used in conjunction with one of –rcheck or –update. When used, this will narrow the match to only happen when the address is in the list and packets had been received greater han or equal to the given value. This option may be used along with –seconds to create an even narrower match requiring a certain number of hits within a specific time frame. * The maximum value for the hitcount parameter is given by the “ip_pkt_list_tot” parameter of the xt_recent kernel module.Exceeding this value on the command line will cause the rule to be rejected.
粗体这句解释了问题,然后尝试将–hitcount 调低,调到10正常,20正常,大于20,failed 了,好了,问题就在这了,要突破ip_pkt_list_tot 的默认限制了。
google了下ip_pkt_list_tot,发现在/sys/module/xt_recent/parameters目录下,cat 了下ip_pkt_list_tot的值,还真是20,按照以往情况,直接echo 一个值进入就可以了,但是“白手起家”这位网友说不可,要进入到/etc/modprobe.d/ 目录下新建配置文件:
vim xt_recent.conf
options xt_recent ip_list_tot=1024 ip_pkt_list_tot=200
备注:(原文的文件名中没有.conf,试验后有警告提示:WARNING: All config files need .conf: /etc/modprobe.d/xt_recent, it will be ignored in a future release. 因此正确的写法应该加上.conf)
保存退出,调大–hitcount 的值为200,重启iptables ,OK!
再去cat ip_pkt_list_tot 的值,也变成了200。

搞定,收工!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

centos 的单ip流量控制-CentOS下利用iptables限速及限制每IP连接数

第一步:建立adsl连接,在系统设置——网络设置处有。在图形界面下很容易搞定。  第二步:打开IP转发和伪装(也就是路由与NAT) 1、作为根用户打开/etc/sysconfig/netw...
  • gnicky
  • gnicky
  • 2016-05-06 21:31
  • 3299

centos6中iptables单机网络防火墙的使用

iptables:基于软件的形式实现的一种防火墙的软件程序 Firewall:工作在主机或网络边缘,对进出的报文按事先定义的规则进行检查,并且由匹配到的规则进行处理的一组硬件或软件,甚至可能是两者的组...

CentOS下配置iptables碰到域名解析失败的问题

1,问题背景。 在阿里ECS上调用第三方短信接口,始终无法成功。接口不是IP地址,而是一个带域名的 URL接口。 2,问题原因 网络调测,首先便是两头一掐,确认别人根本没有收到我的请...

解决CentOS 6.6,/etc/sysconfig/下没有iptables的问题

CentOS 7/Linux: 如何启用iptables 防火墙 CentOS osetc 2年前 (2014-11-24) 4244℃ 0评论 在 最新的 CentOS 7 linux ...

UNIX网络编程6 从tcpdump了解到的TCP/UDP发送限制和缓冲区问题

本节主要解决的问题:MTU和TCP/UDP一次发送的大小限制,read/write 或者 send/recv返回时机和数值,内核发送和接收缓冲区大小,未解决通告窗口win大小和发送包长length的关...

RedHat Enterprise Linux 6.4 使用 Centos 6 的yum源问题

#yum install pam-devel #This system is not registered to Red Hat Subscription Management. Y...

CentOS 6 无法上网 问题解决方案[VMware]

在上一篇文章中我们在虚拟机上安装了CentOS6.3系统, 但是不要高兴得太早了, 即使安装成功, 也不一定万事大吉. 在随后的操作中你会发现, 在自定义安装CentOS系统后你很有可能遇到无法上网的...

Linux/Centos下/lib64/libc.so.6: version `GLIBC_2.14' not found问题

前天,在Centos的某个版本下编译了一个可执行程序,复制到另外一个Centos环境下去执行,结果出现了以下错误: /lib64/libc.so.6: version `GLIBC_2.14' no...

centos6.x下docker安装及遇到的问题和简单使用

 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)