]> git.proxmox.com Git - pve-firewall.git/log
pve-firewall.git
9 years agoget_ipset_cmdlist: avoid restore problems due to wrong order
Dietmar Maurer [Mon, 10 Nov 2014 11:50:29 +0000 (12:50 +0100)]
get_ipset_cmdlist: avoid restore problems due to wrong order

9 years agoimprove error messages
Dietmar Maurer [Mon, 10 Nov 2014 11:49:00 +0000 (12:49 +0100)]
improve error messages

9 years agodo not emit smurfs chain for ipv6
Dietmar Maurer [Mon, 10 Nov 2014 11:47:31 +0000 (12:47 +0100)]
do not emit smurfs chain for ipv6

9 years agoipv6 addrtype does not work with kernel 2.6.32, use -d ff00::/8 instead
Dietmar Maurer [Mon, 10 Nov 2014 11:45:02 +0000 (12:45 +0100)]
ipv6 addrtype does not work with kernel 2.6.32, use -d ff00::/8 instead

9 years agoadd ipv6 examples
Alexandre Derumier [Tue, 15 Jul 2014 23:14:32 +0000 (01:14 +0200)]
add ipv6 examples

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoip6tables : remove_pvefw_chains
Alexandre Derumier [Tue, 15 Jul 2014 23:14:31 +0000 (01:14 +0200)]
ip6tables : remove_pvefw_chains

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoapply ipv6 ruleset
Alexandre Derumier [Tue, 15 Jul 2014 23:14:30 +0000 (01:14 +0200)]
apply ipv6 ruleset

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agocompile ipv6 ruleset
Alexandre Derumier [Tue, 15 Jul 2014 23:14:29 +0000 (01:14 +0200)]
compile ipv6 ruleset

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoadd ip6tables standard chains
Alexandre Derumier [Tue, 15 Jul 2014 23:14:28 +0000 (01:14 +0200)]
add ip6tables standard chains

- icmp types in reject are different than ipv4
- broadcast not exist in ipv6
- I don't think that smurf attack exist (no broadcast)

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoadd icmpv6 support
Dietmar Maurer [Tue, 4 Nov 2014 09:53:01 +0000 (10:53 +0100)]
add icmpv6 support

skip icmpv6 rule for iptables rules
skip icmp rule for ip6tables rules

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
9 years agoadd ipv6 ipset support
Dietmar Maurer [Tue, 4 Nov 2014 07:43:38 +0000 (08:43 +0100)]
add ipv6 ipset support

big change here,
we create now a ipset which include 2 others ipsets for ipv4 and ipv6

PVEFW-0-blacklist list:set
    PVEFW-0-blacklist-v4 hash:net family inet4
    PVEFW-0-blacklist-v6 hash:net family inet6

v4 and v6, are only created if ip address are defined in the set
in iptables rules, we use the main set.

Benchmark show no performance impact

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
9 years agoipset_match: implement simulation of list type ipsets
Dietmar Maurer [Tue, 4 Nov 2014 06:44:37 +0000 (07:44 +0100)]
ipset_match: implement simulation of list type ipsets

9 years agoresolve_alias: use better regex to detect alias
Dietmar Maurer [Mon, 3 Nov 2014 05:23:26 +0000 (06:23 +0100)]
resolve_alias: use better regex to detect alias

9 years agocode cleanup
Dietmar Maurer [Fri, 31 Oct 2014 12:06:52 +0000 (13:06 +0100)]
code cleanup

9 years agocheck ipversion of aliases
Alexandre Derumier [Tue, 15 Jul 2014 23:14:24 +0000 (01:14 +0200)]
check ipversion of aliases

also add support for ipv6

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoskip group rules generation if rule ipversion don't match iptables version
Alexandre Derumier [Tue, 15 Jul 2014 23:14:22 +0000 (01:14 +0200)]
skip group rules generation if rule ipversion don't match iptables version

we skip ipv6 rules for iptables
we skip ipv4 rules for ip6tables

if rule ipversion is undef, we apply to both iptables and ip6tables

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agouse integer compare for $ipversion
Dietmar Maurer [Fri, 31 Oct 2014 11:08:10 +0000 (12:08 +0100)]
use integer compare for $ipversion

9 years agoenable hostfw for ipv4 only
Alexandre Derumier [Tue, 15 Jul 2014 23:14:21 +0000 (01:14 +0200)]
enable hostfw for ipv4 only

currently pveproxy don't works with ipv6,
so let's generate host fw ipv4 only for the moment

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agofix venet rule generation: venet can have ipv4 and ipv6 address
Dietmar Maurer [Fri, 31 Oct 2014 11:03:17 +0000 (12:03 +0100)]
fix venet rule generation: venet can have ipv4 and ipv6 address

9 years ago$ipversion is interger, so use '!=' instead of string 'ne'
Dietmar Maurer [Thu, 30 Oct 2014 12:35:55 +0000 (13:35 +0100)]
$ipversion is interger, so use '!=' instead of string 'ne'

9 years agoskip vms rules generation if rule ipversion don't match iptables version
Alexandre Derumier [Tue, 15 Jul 2014 23:14:20 +0000 (01:14 +0200)]
skip vms rules generation if rule ipversion don't match iptables version

we skip ipv6 rules for iptables
we skip ipv4 rules for ip6tables

if rule ipversion is undef, we apply to both iptables and ip6tables

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agoverify_rule: detected mixed ipv4/ipv6 addresses
Dietmar Maurer [Thu, 30 Oct 2014 12:27:01 +0000 (13:27 +0100)]
verify_rule: detected mixed ipv4/ipv6 addresses

9 years agoparse_address_list: improve type detection
Dietmar Maurer [Thu, 30 Oct 2014 12:12:58 +0000 (13:12 +0100)]
parse_address_list: improve type detection

9 years agoparse_address_list: make sure we only have one type of addresses (ipv4 or ipv6)
Dietmar Maurer [Thu, 30 Oct 2014 11:58:09 +0000 (12:58 +0100)]
parse_address_list: make sure we only have one type of addresses (ipv4 or ipv6)

9 years agofix error message
Dietmar Maurer [Thu, 30 Oct 2014 11:52:29 +0000 (12:52 +0100)]
fix error message

9 years agorename pve-fw-v4addr-spec to pve-fw-addr-spec
Dietmar Maurer [Thu, 30 Oct 2014 11:43:52 +0000 (12:43 +0100)]
rename pve-fw-v4addr-spec to pve-fw-addr-spec

Because we allow ipv4 and ipv6 addresses now.

9 years agoparse_rules src && dst ipversion
Alexandre Derumier [Tue, 15 Jul 2014 23:14:19 +0000 (01:14 +0200)]
parse_rules src && dst ipversion

check the ipversion of src and dst in rules

(fixme : parse ip in range)

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agocleanup generate_std_chains: don't overwrite global variable $pve_std_chains
Dietmar Maurer [Thu, 30 Oct 2014 11:21:00 +0000 (12:21 +0100)]
cleanup generate_std_chains: don't overwrite global variable $pve_std_chains

Instead, pass $ipversion and use local var $std_chains.

9 years agomove $pve_std_chains to $pve_std_chains->{$ipversion}
Alexandre Derumier [Tue, 15 Jul 2014 23:14:18 +0000 (01:14 +0200)]
move $pve_std_chains to $pve_std_chains->{$ipversion}

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agosplit compile to compile_iptables_filter
Alexandre Derumier [Tue, 15 Jul 2014 23:14:17 +0000 (01:14 +0200)]
split compile to compile_iptables_filter

compile just read configs file and will call compile_iptables_filter for iptables and ip6tables

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agobump version to 1.0-9
Dietmar Maurer [Tue, 14 Oct 2014 14:30:01 +0000 (16:30 +0200)]
bump version to 1.0-9

9 years agofix max ipset name lenght
Dietmar Maurer [Tue, 14 Oct 2014 14:28:44 +0000 (16:28 +0200)]
fix max ipset name lenght

9 years agomake dependency to cman/clvm optional
Dietmar Maurer [Mon, 8 Sep 2014 11:06:39 +0000 (13:06 +0200)]
make dependency to cman/clvm optional

9 years agodo not start daemons during installation
Dietmar Maurer [Mon, 8 Sep 2014 10:25:13 +0000 (12:25 +0200)]
do not start daemons during installation

9 years agobump version to 1.0-8
Dietmar Maurer [Mon, 8 Sep 2014 10:17:02 +0000 (12:17 +0200)]
bump version to 1.0-8

9 years agoFirewall/IPSet: implement permission
Dietmar Maurer [Mon, 21 Jul 2014 08:48:00 +0000 (10:48 +0200)]
Firewall/IPSet: implement permission

Facor out common code into PVE/Firewall.

9 years agoFirewall/Rules: add permissions
Dietmar Maurer [Mon, 21 Jul 2014 08:24:09 +0000 (10:24 +0200)]
Firewall/Rules: add permissions

9 years agoFirewall/Groups: add permissions
Dietmar Maurer [Mon, 21 Jul 2014 07:54:42 +0000 (09:54 +0200)]
Firewall/Groups: add permissions

9 years agoFirewall/VM: add permissions
Dietmar Maurer [Mon, 21 Jul 2014 07:52:01 +0000 (09:52 +0200)]
Firewall/VM: add permissions

9 years agoFirewall/Host: add permissions
Dietmar Maurer [Mon, 21 Jul 2014 07:40:34 +0000 (09:40 +0200)]
Firewall/Host: add permissions

9 years agoFirewall/Cluster: add permissions
Dietmar Maurer [Mon, 21 Jul 2014 07:33:18 +0000 (09:33 +0200)]
Firewall/Cluster: add permissions

9 years agogenerate MAC and IP filter rules if firewall is enabled on NIC
Dietmar Maurer [Thu, 26 Jun 2014 07:07:27 +0000 (09:07 +0200)]
generate MAC and IP filter rules if firewall is enabled on NIC

Only omit rules if firewall is disabled. Also remove ipfilter for
venet, because that is not required (kernel does that job for us).

9 years agobump version to 1.0-7
Dietmar Maurer [Thu, 26 Jun 2014 05:13:16 +0000 (07:13 +0200)]
bump version to 1.0-7

9 years agoproxy host rule API calls to correct node
Dietmar Maurer [Thu, 26 Jun 2014 05:12:06 +0000 (07:12 +0200)]
proxy host rule API calls to correct node

9 years agobump version to 1.0-6
Dietmar Maurer [Thu, 12 Jun 2014 06:37:43 +0000 (08:37 +0200)]
bump version to 1.0-6

9 years agoadd example for ipfilter ipset
Dietmar Maurer [Thu, 12 Jun 2014 06:36:05 +0000 (08:36 +0200)]
add example for ipfilter ipset

9 years agoadd regression tests for ipfilter
Dietmar Maurer [Thu, 12 Jun 2014 06:32:11 +0000 (08:32 +0200)]
add regression tests for ipfilter

9 years agofwtester: add more network (net1, net2) to vm100 to test ipfilter
Dietmar Maurer [Thu, 12 Jun 2014 06:30:33 +0000 (08:30 +0200)]
fwtester: add more network (net1, net2) to vm100 to test ipfilter

9 years agoimplement negative ipset match
Dietmar Maurer [Thu, 12 Jun 2014 06:29:32 +0000 (08:29 +0200)]
implement negative ipset match

To simulate ipfilter.

9 years agouse separate ipfilter ipset on each interface
Dietmar Maurer [Thu, 12 Jun 2014 04:39:31 +0000 (06:39 +0200)]
use separate ipfilter ipset on each interface

9 years agoadd support for ipfilter ipset
Dietmar Maurer [Wed, 11 Jun 2014 07:59:21 +0000 (09:59 +0200)]
add support for ipfilter ipset

9 years agogenerate /etc/pve/firewall directory automatically
Dietmar Maurer [Wed, 4 Jun 2014 07:13:43 +0000 (09:13 +0200)]
generate /etc/pve/firewall directory automatically

9 years agoavoid errors about undefined values
Dietmar Maurer [Wed, 4 Jun 2014 07:03:53 +0000 (09:03 +0200)]
avoid errors about undefined values

9 years agobump version to 1.0-5
Dietmar Maurer [Wed, 4 Jun 2014 06:50:57 +0000 (08:50 +0200)]
bump version to 1.0-5

9 years agoremove ipsets when firewall disabled
Dietmar Maurer [Wed, 4 Jun 2014 06:40:15 +0000 (08:40 +0200)]
remove ipsets when firewall disabled

And improve status output

9 years agoreturn empty ruleset if firewall disabled in cluster.fw
Dietmar Maurer [Wed, 4 Jun 2014 05:24:34 +0000 (07:24 +0200)]
return empty ruleset if firewall disabled in cluster.fw

9 years agobump version to 1.0-4
Dietmar Maurer [Wed, 4 Jun 2014 04:49:30 +0000 (06:49 +0200)]
bump version to 1.0-4

9 years agodepend on iptables and ipset
Dietmar Maurer [Wed, 4 Jun 2014 04:44:57 +0000 (06:44 +0200)]
depend on iptables and ipset

9 years agochange dh_installinit order
Dietmar Maurer [Wed, 4 Jun 2014 04:36:55 +0000 (06:36 +0200)]
change dh_installinit order

9 years agoimprove error message
Dietmar Maurer [Mon, 2 Jun 2014 11:17:53 +0000 (13:17 +0200)]
improve error message

9 years agogenerate warnings when we read the configuration file
Dietmar Maurer [Mon, 2 Jun 2014 11:14:42 +0000 (13:14 +0200)]
generate warnings when we read the configuration file

9 years agopass ipset errors to GUI
Dietmar Maurer [Fri, 30 May 2014 11:06:55 +0000 (13:06 +0200)]
pass ipset errors to GUI

9 years agoskip non-existent aliases inside ipset configuration
Dietmar Maurer [Fri, 30 May 2014 10:40:25 +0000 (12:40 +0200)]
skip non-existent aliases inside ipset configuration

9 years agoremove dead code from previous commit
Dietmar Maurer [Fri, 30 May 2014 10:26:40 +0000 (12:26 +0200)]
remove dead code from previous commit

9 years agocode cleanup - introcduce new method resolve_alias
Dietmar Maurer [Fri, 30 May 2014 10:24:40 +0000 (12:24 +0200)]
code cleanup - introcduce new method resolve_alias

9 years agoanother regression test
Dietmar Maurer [Fri, 30 May 2014 09:28:24 +0000 (11:28 +0200)]
another regression test

9 years agocleanup: try to use more consistent method naming
Dietmar Maurer [Fri, 30 May 2014 09:21:30 +0000 (11:21 +0200)]
cleanup: try to use more consistent method naming

9 years agoAPI: add ability to restrict ref list to specified type
Dietmar Maurer [Fri, 30 May 2014 07:37:49 +0000 (09:37 +0200)]
API: add ability to restrict ref list to specified type

9 years agoAPI fix: allow aliases in IPSets
Dietmar Maurer [Fri, 30 May 2014 07:31:25 +0000 (09:31 +0200)]
API fix: allow aliases in IPSets

9 years agoparser: verify group and ipset names
Dietmar Maurer [Fri, 30 May 2014 06:24:03 +0000 (08:24 +0200)]
parser: verify group and ipset names

9 years agoimplement API to get list of possible refs (aliases + ipsets)
Dietmar Maurer [Wed, 28 May 2014 11:52:42 +0000 (13:52 +0200)]
implement API to get list of possible refs (aliases + ipsets)

9 years agointroduce ipset_name_pattern to avoid confusion
Dietmar Maurer [Wed, 28 May 2014 10:59:17 +0000 (12:59 +0200)]
introduce ipset_name_pattern to avoid confusion

9 years agolimit alias/ipset name length to 64 characters
Dietmar Maurer [Wed, 28 May 2014 10:51:06 +0000 (12:51 +0200)]
limit alias/ipset name length to 64 characters

9 years agoadd test for long ipset names
Dietmar Maurer [Wed, 28 May 2014 08:45:27 +0000 (10:45 +0200)]
add test for long ipset names

9 years agofix ipset match - s/src/dst/
Dietmar Maurer [Wed, 28 May 2014 08:41:50 +0000 (10:41 +0200)]
fix ipset match - s/src/dst/

9 years agoimplement VM ipsets, allow long ipset names
Dietmar Maurer [Wed, 28 May 2014 08:31:03 +0000 (10:31 +0200)]
implement VM ipsets, allow long ipset names

If names are to long, We simply use the FNV digest instead of the name.

9 years agoalways pass cluster_conf to load_vmfw_conf
Dietmar Maurer [Wed, 28 May 2014 04:47:05 +0000 (06:47 +0200)]
always pass cluster_conf to load_vmfw_conf

9 years agoimplement ipsets for VM/CT
Dietmar Maurer [Tue, 27 May 2014 09:38:54 +0000 (11:38 +0200)]
implement ipsets for VM/CT

9 years agodo not print trace when debug is not set
Dietmar Maurer [Tue, 27 May 2014 09:31:09 +0000 (11:31 +0200)]
do not print trace when debug is not set

9 years agowhite space cleanup
Dietmar Maurer [Tue, 27 May 2014 06:03:09 +0000 (08:03 +0200)]
white space cleanup

9 years agoimplement aliases at VM level
Dietmar Maurer [Tue, 27 May 2014 05:58:32 +0000 (07:58 +0200)]
implement aliases at VM level

9 years agoadd test for aliases inside vm firewall configuration
Dietmar Maurer [Tue, 27 May 2014 05:57:16 +0000 (07:57 +0200)]
add test for aliases inside vm firewall configuration

9 years agofwtester.pl: add warnings to trace
Dietmar Maurer [Tue, 27 May 2014 04:58:13 +0000 (06:58 +0200)]
fwtester.pl: add warnings to trace

9 years agooptimize blacklist : create a PVEFW-blacklist chain
Alexandre Derumier [Mon, 26 May 2014 08:44:55 +0000 (10:44 +0200)]
optimize blacklist : create a PVEFW-blacklist chain

currently we check the ipset blacklist twice (1 for log and 1 for drop)

It's better to check ipset once, and go to a PVEFW-blacklist chain
where we do the log, and then the drop

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
9 years agofix comment
Dietmar Maurer [Mon, 26 May 2014 10:58:58 +0000 (12:58 +0200)]
fix comment

9 years agoskip diabled rules and rules with errors early
Dietmar Maurer [Mon, 26 May 2014 10:55:46 +0000 (12:55 +0200)]
skip diabled rules and rules with errors early

9 years agoruleset_generate_vm_rules: skip rules with errors
Dietmar Maurer [Mon, 26 May 2014 10:46:27 +0000 (12:46 +0200)]
ruleset_generate_vm_rules: skip rules with errors

9 years agoimprove rule verification
Dietmar Maurer [Mon, 26 May 2014 10:45:41 +0000 (12:45 +0200)]
improve rule verification

Also verify ipset/aliases.

9 years agopass $rule_env (cluster/host/vm/ct) to rule parser.
Dietmar Maurer [Mon, 26 May 2014 06:09:02 +0000 (08:09 +0200)]
pass $rule_env (cluster/host/vm/ct) to rule parser.

So that we can correctly verify 'iface' parameter.

Also add new API classes for CTs (because we need to pass $rule_env).

9 years agoimprove error handling
Dietmar Maurer [Fri, 23 May 2014 09:32:33 +0000 (11:32 +0200)]
improve error handling

We now show syntax errors from firewall files with:

 # pve-firewall status

But we do not log such errors to syslog, because that would result
in same warning on each update (10 seconds).

9 years agoallow to read rule with errors
Dietmar Maurer [Fri, 23 May 2014 08:43:22 +0000 (10:43 +0200)]
allow to read rule with errors

And return error messages inside $rule->{errors}. The GUI can display
those errors so that the user can correct them.

9 years agoclose inotify handle before restart
Dietmar Maurer [Thu, 22 May 2014 07:50:59 +0000 (09:50 +0200)]
close inotify handle before restart

9 years agoimprove rules API
Dietmar Maurer [Wed, 21 May 2014 11:03:57 +0000 (13:03 +0200)]
improve rules API

Do not use JSON schema 'requires' property, because that forbids to
use '' to delete properties.

It is now possible to update/delete individual rule properties like:

  pvesh set nodes/lola/openvz/104/firewall/rules/0 -proto udp
  pvesh set nodes/lola/openvz/104/firewall/rules/1 -delete dport

9 years agofix API: property sport/dport requires protocol
Dietmar Maurer [Wed, 21 May 2014 08:29:06 +0000 (10:29 +0200)]
fix API: property sport/dport requires protocol

9 years agofix test/test-errors3 - protect rule generation with eval
Dietmar Maurer [Wed, 21 May 2014 08:12:18 +0000 (10:12 +0200)]
fix test/test-errors3 - protect rule generation with eval

9 years agoadd new test case to show serious bug
Dietmar Maurer [Wed, 21 May 2014 07:35:23 +0000 (09:35 +0200)]
add new test case to show serious bug

9 years agoallow igmp traffic
Dietmar Maurer [Wed, 21 May 2014 07:17:14 +0000 (09:17 +0200)]
allow igmp traffic

9 years agoadd another test case
Dietmar Maurer [Wed, 21 May 2014 06:59:57 +0000 (08:59 +0200)]
add another test case

9 years agofix for test case test/test-errors1
Dietmar Maurer [Wed, 21 May 2014 06:56:52 +0000 (08:56 +0200)]
fix for test case test/test-errors1

9 years agoadd test case to show serious bug
Dietmar Maurer [Wed, 21 May 2014 06:39:33 +0000 (08:39 +0200)]
add test case to show serious bug