ACL with multiple CIDRs does not honor rule id
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.4k
- Ø Merge
- 6 T. 19 Std.
- Gemergte PRs (30 T.)
- 32
Beschreibung
### 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
Beitragsleitfaden
Rechercherichtung
Reproduziere das Problem anhand der beiden im Bericht genannten ACL-Regeln und untersuche dann die generierte ACL_OUTBOUND_eth12-Kette im virtuellen Router. Verfolge, wie mehrere CIDRs in einer Regel angeordnet werden, und überprüfe, dass das DROP der Regel nicht vor dem verbleibenden CIDR-Match kommt; als erledigt gilt dies, wenn alle CIDRs in der Allow-Regel vor der nächsten Regel ausgewertet werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Bereich
- authorization, networking, security
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100