単位時間あたりの接続数でフィルタリング

・[FreeBSD] Expiretable for pf
http://d.hatena.ne.jp/hiro-ueda/20060129#p2
ネタ元はこちら↑。
すごく便利なもんがあるもんだ。pfです。いわゆるパケットフィルタで、単位時間あたりの接続数によるフィルタリングができるというスグレモノ。アプリケーションとして↓こんな便利なものが!
http://legonet.org/~griffin/openbsd/block_ssh_bruteforce.html

すごい数のSSH接続をやるばかちん(こんな)が今も絶えないわけですが、ここに限らずSPAM送信者相手にも有効(誤検知は怖いけど)。
で、pfのコレと同じことはiptablesで出来ないかな?と思って調べたよ。
http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html
ipTablesのMANページを見ると、"limit"というキーワードがある。これで出来るかな?と思いきや

・limit
このモジュールは、トークンバケツフィルタを使い、
単位時間あたり制限された回数だけマッチする。

とある。
このマッチする回数というのが、コネクション単位でなくパケット単位らしい。DoS防御なんかに便利な機能なんだけれど、これはパケット数が一気にどどどどっと届いた場合に使えるものであって、普通にSSH接続を試す程度のパケット数でヒットさせるようなルール記述をしてしまうと、まともなSSH接続まで被害を受けかねない。Linuxにもmax-src-conn-rateほしいです。はい。