看到文章中用recent模块控制对主机的访问。

配置方法如下:

iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -j LOG --log-prefix "SSHOPEN: "
#记录日志,前缀SSHOPEN:
iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT
#指定数据包78字节,包含IP头部20字节,ICMP头部8字节。
iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
ping -s 50 host #Linux下解锁
ping -l 50 host #Windows下解锁
 
在配置的过程中我按照这样配置无法ssh到指定主机。
仔细研究了下,需要一个前提即:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
且该条规则需要放在上面第三条之前。
 
整理后的配置规则:
  1. iptables -F
  2. iptables -X
  3. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  4. iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -j LOG --log-prefix 'SSH_OPEN_KEY'
  5. iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --name openssh --set --rsource -j ACCEPT
  6. iptables -A INPUT -p tcp --dport 22 --syn -m state --name openssh --rcheck --seconds 60 --rsource -j ACCEPT
  7. iptables -P INPUT DROP
  8. 在客户侧,如果需要ssh到主机,需要先ping -l 50 ip(windows), ping -s 50 ip (linux),并在一分钟之内ssh到主机,这样在/proc/net/xt_recent/目录下生成openssh文件
    文件内容如下:
    src=112.1x3.2x7.24 ttl: 53 last_seen: 42963x6778 oldest_pkt: 1 4296376778, 4295806644, 4295806895, 4295807146, 4295826619, 4295826870, 4295827122, 4295827372, 4295833120, 4295833369, 4295834525, 4295834777, 4295872016, 4295872267, 4295872519, 4295872769, 4295889154, 4295889406, 4295889658, 4295889910

解释:

1,2清空原有的iptables规则

3,表明已经建立成功的连接和与主机发送出去的包相关的数据包都接受,如果没有这一步,后面的tcp连接无法建立起来

4,出现长度为78字节icmp回响包在/var/log/syslog生成log,log以SSH_OPEN_KEY开头

5,出现长度为78字节icmp回响包,将源地址信息记录在openssh文件中,并接受

6,对于openssh文件中的源地址60s以内发送的ssh连接SYN请求予以接受

7,将INPUT链的默认策略设置为drop
调试过程:没有设置3,则无法建立ssh连接
在没有3的情况下,设置6如果不加--syn,则可以ssh连接一会儿,过一会儿又自动断线,除非ping一下目的地址,原理是:ping目的地址,则会更新openssh的时间,这样ssh连接还在60s之内,所以可以通信,过一会儿,60s超时,则就会断开ssh连接。如果加了--syn,只能进行开始的syn,无法正常连接(具体过程不熟悉,有待进一步学习)。
 
给一个参考:
 

iptables的recent模块的更多相关文章

  1. Iptables之recent模块小结

    Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求攻击的必杀绝技! 善加利用该模块可充分保证服务器安全. recent常用参数--name      设定列表名称,即设置跟 ...

  2. iptables利用connlimit模块限制同一IP连接数

    connlimit功能: connlimit模块允许你限制每个客户端IP的并发连接数,即每个IP同时连接到一个服务器个数. connlimit模块主要可以限制内网用户的网络使用,对服务器而言则可以限制 ...

  3. iptables的statistic模块配置rr

    网上搜的是这样的 : iptables -A PREROUTING -t nat -d 172.17.64.8 -m statistic --mode nth --every 2 --packet 0 ...

  4. iptables详解--转

    出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定 ...

  5. iptables 汇总

    iptables 一. 背景知识 1. 相关网络背景知识 (1) Linux 主机内部路由 Linux 在 内核中维护由一个路由表, 报文进入本机后, 由该路由表判断目标地址; 报文离开本机之前, 判 ...

  6. 网络安全之iptables防火墙

    1>各种传输方式到最后都会转化为能够通过网络发送的数据格式: 1>文本格式: 2>二进制格式:2>TCP三次握手连接,四次断开,连接时客户端是主动打开,服务器是被动 打开,处于 ...

  7. iptables的例子1

      练习1:实现主机防火墙   设置主机防火墙策略为DROP: iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP i ...

  8. CentOS安全防护实例

    (1) 借助iptables的recent模块限制IP连接数 可以限制瞬间连接数过大的恶意IP(比如web应用防护,但不适用于LVS+Keepalived集群环境) 防护指令如下 # 允许一个客户端6 ...

  9. iptables限制连接数(如sftp) 以及 谨防CC/DDOS攻击的配置 ( connlimit模块)

    之前在公司服务器上部署了sftp,用于上传业务系统的附件.后来由于程序连接问题,使的sftp连接数过多(最多时高达400多个sftp连接数),因为急需要对sftp的连接数做严格限制.操作记录如下: 启 ...

随机推荐

  1. WireShark 过滤语法

    1. 过滤IP,如来源IP或者目标IP等于某个IP 例子: ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107 或者 ip.addr eq 192.1 ...

  2. iOS NSString中字符串的删除,替换

  3. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

  4. jQuery判断元素离页面顶部的高度

    <script language="javascript" type="text/javascript"> jQuery(document).rea ...

  5. POJ C程序设计进阶 编程题#2:四大湖

    编程题#2:四大湖 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 我国有4大 ...

  6. linux下不重启添加硬盘

    linux下热加载磁盘 临时给虚拟机加了一块硬盘,增加后懒得重启,于是看了看热加载 [root@centos5 ~]# cat /proc/scsi/scsiAttached devices:Host ...

  7. 返回json格式时间,解析时间

    传入:Json格式的时间 JS如下: yyyy-M(MM)-d(dd) H(HH):m(mm):s(ss) function timeStamp2String(time) { var data=tim ...

  8. sqoop的eval工具

    eval的作用:Evaluate a SQL statement and display the results,也就是说eval像是一个数据库的客户端工具. 一.使用eval来查询表 $ sqoop ...

  9. js各种宽高(3)

    有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeig ...

  10. MongoDB简述

    简介 MongoDB is an open-source document database that provides high performance, high availability, an ...