apache / apache/cloudstack

ACL with multiple CIDRs does not honor rule id

Offen
#12,668 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
component:virtual-router status:needs-reproducing
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.