[pve-devel] [PATCH] add ips feature v3
Alexandre DERUMIER
aderumier at odiso.com
Wed Mar 19 08:07:43 CET 2014
>>this create a new chain PVEFW-Accept
>>
>>-A PVEFW-FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j PVEFW-Accept
>>All those checks are unnecessary, because we have already check it in tap-IN chain?
Well, we need to pass packets to ips, when the connection is established, not only the first packet.
(http inspection for example)
if we keep -A PVEFW-FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT,
we bypass the ips when connection is already established.
>>And the PVEFW-Accept can grow really large because all interfaces from all VMs are added to a single chain (not per bridge)?
I'm not sure you can add a lot of taps, as ips use a lot of cpu. (but it depend of your network traffic)
But I think I can improve this, filtering by bridge before tap
PVEFW-ACCEPT
-->vmbr0
--->tap
--->tap
-->vmbr1
--->tap
--->tap
>-A PVEFW-Accept -m physdev --physdev-out tapxxx --physdev-is-bridged -j NFQUEUE --queue-num 0 --queue-bypass
>-A PVEFW-Accept -m physdev --physdev-out tapxxx --physdev-is-bridged -j NFQUEUE --queue-num 0 --queue-bypass
>-A PVEFW-Accept -j ACCEPT
>>Then I saw that you also jump to PVEFW-Accept for OUT traffic:
>>
r>>uleset_create_chain($ruleset, "$bridge-IN");
>>ruleset_addrule($ruleset, "$bridge-FW", "-m physdev --physdev-is-out -j $bridge-IN");
>>- ruleset_addrule($ruleset, "$bridge-FW", "-m mark --mark 1 -j ACCEPT"); # AFAIK this is for direction OUT
>>+ ruleset_addrule($ruleset, "$bridge-FW", "-m mark --mark 1 -j PVEFW-Accept");
>>why?
I'm thinked to add option to choose direction of ips filtering (in|out|both).
I don't known if user need to filter outgoing traffic ? (reverse shell exploit ? I'm not sure about this)
What do you think about it ?
----- Mail original -----
De: "Dietmar Maurer" <dietmar at proxmox.com>
À: "Alexandre DERUMIER" <aderumier at odiso.com>
Cc: pve-devel at pve.proxmox.com
Envoyé: Mercredi 19 Mars 2014 07:32:48
Objet: RE: [pve-devel] [PATCH] add ips feature v3
> -----Original Message-----
> From: Alexandre DERUMIER [mailto:aderumier at odiso.com]
> Sent: Mittwoch, 19. März 2014 06:33
> To: Dietmar Maurer
> Cc: pve-devel at pve.proxmox.com
> Subject: Re: [pve-devel] [PATCH] add ips feature v3
>
> I'll send a new patch today, I found some other missing accept
OK
I am still a bit unhappy with that PVEFW-Accept chain.
>this create a new chain PVEFW-Accept
>
>-A PVEFW-FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j PVEFW-Accept
All those checks are unnecessary, because we have already check it in tap-IN chain? And the PVEFW-Accept
can grow really large because all interfaces from all VMs are added to a single chain (not per bridge)?
>-A PVEFW-Accept -m physdev --physdev-out tapxxx --physdev-is-bridged -j NFQUEUE --queue-num 0 --queue-bypass
>-A PVEFW-Accept -m physdev --physdev-out tapxxx --physdev-is-bridged -j NFQUEUE --queue-num 0 --queue-bypass
>-A PVEFW-Accept -j ACCEPT
Then I saw that you also jump to PVEFW-Accept for OUT traffic:
ruleset_create_chain($ruleset, "$bridge-IN");
ruleset_addrule($ruleset, "$bridge-FW", "-m physdev --physdev-is-out -j $bridge-IN");
- ruleset_addrule($ruleset, "$bridge-FW", "-m mark --mark 1 -j ACCEPT"); # AFAIK this is for direction OUT
+ ruleset_addrule($ruleset, "$bridge-FW", "-m mark --mark 1 -j PVEFW-Accept");
why?
More information about the pve-devel
mailing list