cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-9495) Egress rules functionalty broken when protocol=all specified
Date Wed, 21 Sep 2016 09:31:20 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-9495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15509361#comment-15509361
] 

ASF subversion and git services commented on CLOUDSTACK-9495:
-------------------------------------------------------------

Commit cc043e9f8f834c4bc7dcf7a3a04fce63f2a8480d in cloudstack's branch refs/heads/master from
[~rajanik]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=cc043e9 ]

Merge pull request #1666 from murali-reddy/egress_rules

CLOUDSTACK-9480,  CLOUDSTACK-9495 fix egress rule incorrect behaviorWhen 'default egress policy'
is set to 'allow' in the network offering, any egress rule that is added will 'deny' the traffic
overriding the default behaviour.

Conversely, when 'default egress policy' is set to 'deny' in the network offering, any egress
rule that is added will 'allow' the traffic overriding the default behaviour.

While this works for 'tcp', 'udp' as expected, for 'icmp' protocol its always set to ALLOW.
This patch keeps all protocols behaviour consistent.

Results of running test/integration/component/test_egress_fw_rules.py.  With out the patch
test_02_egress_fr2 test was failing. This patch fixes the test_02_egress_fr2  scenario.
-----------------------------------------------------------------------------------------------------
Test By-default the communication from guest n/w to public n/w is NOT allowed. ... === TestName:
test_01_1_egress_fr1 | Status : SUCCESS ===
ok
Test By-default the communication from guest n/w to public n/w is allowed. ... === TestName:
test_01_egress_fr1 | Status : SUCCESS ===
ok
Test Allow Communication using Egress rule with CIDR + Port Range + Protocol. ... === TestName:
test_02_1_egress_fr2 | Status : SUCCESS ===
ok
Test Allow Communication using Egress rule with CIDR + Port Range + Protocol. ... === TestName:
test_02_egress_fr2 | Status : SUCCESS ===
ok
Test Communication blocked with network that is other than specified ... === TestName: test_03_1_egress_fr3
| Status : SUCCESS ===
ok
Test Communication blocked with network that is other than specified ... === TestName: test_03_egress_fr3
| Status : SUCCESS ===
ok
Test Create Egress rule and check the Firewall_Rules DB table ... === TestName: test_04_1_egress_fr4
| Status : SUCCESS ===
ok
Test Create Egress rule and check the Firewall_Rules DB table ... === TestName: test_04_egress_fr4
| Status : SUCCESS ===
ok
Test Create Egress rule and check the IP tables ... SKIP: Skip
Test Create Egress rule and check the IP tables ... SKIP: Skip
Test Create Egress rule without CIDR ... === TestName: test_06_1_egress_fr6 | Status : SUCCESS
===
ok
Test Create Egress rule without CIDR ... === TestName: test_06_egress_fr6 | Status : SUCCESS
===
ok
Test Create Egress rule without End Port ... === TestName: test_07_1_egress_fr7 | Status :
EXCEPTION ===
ERROR
Test Create Egress rule without End Port ... === TestName: test_07_egress_fr7 | Status : SUCCESS
===
ok
Test Port Forwarding and Egress Conflict ... SKIP: Skip
Test Port Forwarding and Egress Conflict ... SKIP: Skip
Test Delete Egress rule ... === TestName: test_09_1_egress_fr9 | Status : SUCCESS ===
ok
Test Delete Egress rule ... === TestName: test_09_egress_fr9 | Status : SUCCESS ===
ok
Test Invalid CIDR and Invalid Port ranges ... === TestName: test_10_1_egress_fr10 | Status
: SUCCESS ===
ok
Test Invalid CIDR and Invalid Port ranges ... === TestName: test_10_egress_fr10 | Status :
SUCCESS ===
ok
Test Regression on Firewall + PF + LB + SNAT ... === TestName: test_11_1_egress_fr11 | Status
: SUCCESS ===
ok
Test Regression on Firewall + PF + LB + SNAT ... === TestName: test_11_egress_fr11 | Status
: SUCCESS ===
ok
Test Reboot Router ... === TestName: test_12_1_egress_fr12 | Status : SUCCESS ===
ok
Test Reboot Router ... === TestName: test_12_egress_fr12 | Status : EXCEPTION ===
ERROR
Test Redundant Router : Master failover ... === TestName: test_13_1_egress_fr13 | Status :
SUCCESS ===
ok
Test Redundant Router : Master failover ... === TestName: test_13_egress_fr13 | Status : SUCCESS
===
ok
-----------------------------------------------------------------------------------------------------

* pr/1666:
  fix egress rule incorrect behavior

Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>


> Egress rules functionalty broken when protocol=all specified
> ------------------------------------------------------------
>
>                 Key: CLOUDSTACK-9495
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9495
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>    Affects Versions: 4.6.2, 4.7.1, 4.8.0, 4.9.0
>            Reporter: Murali Reddy
>            Assignee: Murali Reddy
>            Priority: Critical
>             Fix For: 4.10.0.0, 4.9.1.0, 4.8.2.0
>
>
> Egress rules handling in systemvm/patches/debian/config/opt/cloud/bin/configure.py, class
CsAcl, add_rule() has below logic for handling protocol
> {code}
> if rule['protocol'] != "all":
>    fwr += " -s %s " % cidr + \
>    " -p %s " % rule['protocol'] + \
>    " -m %s " % rule['protocol'] + \
>    " --dport %s" % rnge
> {code}
> There is no else block to handle case when protocol in 'all' in which case CIDR never
gets passed to the iptables command, hence resulting in accept all rule FW_EGRESS_RULES chain.
> To reproduce the issue just give any cidr in the guest subnet, for e.g. 10.1.1.27/31
and protocol all and see the result in FW_EGRESS_RULES of the filter table, you will see accept
all rule.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message