class nodo::physical inherits nodo {
include syslog-ng
- include firewall
include initramfs
include modprobe
include firewire
include resolver
include monkeysphere_nodo
+ # SSL computational DoS mitigation
+ # See http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
+ $firewall_ssl_ratelimit = $firewall_ssl_ratelimit ? {
+ '' => $firewall_global_ssl_ratelimit ? {
+ '' => '-',
+ default => $firewall_global_ssl_ratelimit,
+ },
+ default => $firewall_ssl_ratelimit,
+ }
+
+ # Firewall configuration
+ include firewall
+
# Vserver configuration
$vserver_vdirbase = "/var/vservers"
include vserver::host
destination => "$zone:$destination:443",
proto => 'tcp',
destinationport => '443',
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '602',
}
proto => 'tcp',
destinationport => '443',
originaldest => "$ipaddress",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '602',
}
}
destination => "$zone:$destination:$puppetmaster_port",
proto => 'tcp',
destinationport => "$puppetmaster_port",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '700',
}
destination => "$zone:$destination:$puppetmaster_port",
proto => 'udp',
destinationport => "$puppetmaster_port",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '701',
}
proto => 'tcp',
destinationport => "$puppetmaster_port",
originaldest => "$ipaddress",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '702',
}
proto => 'udp',
destinationport => "$puppetmaster_port",
originaldest => "$ipaddress",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '703',
}
destination => "$zone:$destination:993",
proto => 'tcp',
destinationport => '993',
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '1002',
}
proto => 'tcp',
destinationport => '993',
originaldest => "$ipaddress",
- ratelimit => '-',
+ ratelimit => "$firewall_ssl_ratelimit",
order => '1003',
}
}