ACL with multiple CIDRs does not honor rule id
- 主要言語
- Java
- スター
- 3.1k
- フォーク
- 1.4k
- 平均マージ
- 6日 19時間
- マージ済み PR(30日)
- 32
説明
### problem
If you have a CIDR list like:
rule 1: [ "1.2.3.4/32", "2.3.4.5/32"] tcp allow port 22
rule 65535: [ "0.0.0.0/0"] deny port any
What you end up with when inspecting the VR is:
```
-A ACL_OUTBOUND_eth12 -d 1.2.3.4/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A ACL_OUTBOUND_eth12 -j DROP
-A ACL_OUTBOUND_eth12 -d 2.3.4.5/32 -p tcp -m tcp --dport 22 -j ACCEPT
```
This is clearly not the desired behavior.
### versions
Cloudstack 4.22.0
### The steps to reproduce the bug
See description
### What to do about it?
Don't use more than one CIDR per rule
コントリビューションガイド
調査の方向性
レポートにある2つのACLルールを使って問題を再現し、その後、仮想ルーター内で生成されたACL_OUTBOUND_eth12チェーンを調査します。1つのルール内の複数のCIDRがどのような順序で並ぶかを追跡し、そのルールのDROPが残りのCIDRマッチより前に来ないことを確認します。完了条件は、allowルール内のすべてのCIDRが次のルールより前に評価されることです。
索引モデルが issue の本文から書いたものです。
評価
- 領域
- authorization, networking, security
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100