現在、パブリックサーバーでいくつかのIPtablesルールを修正していますが、いくつかのジレンマに陥っています。目標は次のことです。
- ホストが1分あたりに設定できるSSH接続の数を制限します。
- 内部IPアドレス(172.21-30.xx)を使用するすべてのホストの場合は、ルール#1をスキップしてください。
私の最初の考えは、「172.21-30.0.0/16の範囲のすべてのIPアドレスを許可する」という初期のルールを設定することでした。しかし、この範囲内にないすべてのパケットは破棄されませんか?すべての接続を許可する必要があります。制限された速度の接続のみを選択してください。 172.21-30で始まる範囲を除くすべての範囲に適用されるようにLOGDROPソース(以下を参照)を設定する方法はありますか?
現在のルールは次のとおりです。
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOGDROP tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: SET name: DEFAULT side: source
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain LOGDROP (1 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 2/min burst 5 LOG level warning prefix `Possible SSH Attack '
DROP all -- anywhere anywhere
助けてくれてありがとう。アーロン
答え1
あなたの初期の本能は正確でした。最初のルールは「このソース範囲内のすべてのパケットを許可する」でなければならず、その後に「受信パケット測定」ルールが続く必要があります。 IPTABLES ルールは表示される順序で評価され、最初の一致が勝ちます。私が別にする唯一のことは、LOGDROPチェーンの末尾に明示的なDROPルールを置くのではなく、INPUTポリシーをDROPにすることです。しかし、これは純粋に個人的な好みです。それが実際にすることは、人間の目で読むときに鎖でルールが一つ減るということです。