ufwルールをiptablesにマッピングする

ufwルールをiptablesにマッピングする

ufwからiptablesへの移行中です。

ufwにはデフォルトの「制限」ルールがあり、これはIPアドレスが30秒以内に6つ以上の接続を開始した場合に適用されます(sudo ufw limit ssh)。私はSSHトラフィック(ポート22)にこの制限ルールを使用します。

私はiptablesでこれを行うさまざまな方法を読んでいて、本当に混乱しています。他のモジュールを使用する必要がconnlimitあるかどうかはわかりません。limit

このルールをiptablesに1:1にマッピングする最も簡単な方法は何ですか?

答え1

ufwiptables操作、ufwで移動中なのでiptablesをキャプチャしてufwがそこで何をしているのか確認できると思いました。

答え2

recent拡張機能の使用

@Tomaszのアイデアに従って、ufwにルールを作成し、iptablesで結果を確認しました。 ufwは拡張を使用しているようですrecent

:LOG_REJECT - [0:0]

-A INPUT      -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
-A INPUT      -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 6 -j LOG_REJECT
-A INPUT      -p tcp -m tcp --dport 22                                                                         -j ACCEPT
-A LOG_REJECT                                                     -m limit --limit 3/min                       -j LOG --log-prefix "[LIMITED SSH]"
-A LOG_REJECT                                                                                                  -j REJECT --reject-with icmp-port-unreachable

limit拡張機能の使用

ややクリーンでシンプルです。

:LOG_REJECT - [0:0]

-A INPUT      -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 12/minute -j ACCEPT
-A INPUT      -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW                            -j LOG_REJECT
-A LOG_REJECT                                                     -m limit --limit 3/minute  -j LOG --log-prefix "[LIMITED SSH]" --log-level 7
-A LOG_REJECT                                                                                -j REJECT --reject-with icmp-port-unreachable

icmp-port-unreachable(この場合、これが正しい拒否メッセージであるかどうかはわかりません。)

connlimit拡張機能の使用

...他の人がこれを追加することもできます。 :)

関連情報