File tree Expand file tree Collapse file tree 5 files changed +29
-1
lines changed
lib/puppet/provider/cfweb_nginx Expand file tree Collapse file tree 5 files changed +29
-1
lines changed Original file line number Diff line number Diff line change 3
3
- CHANGED: CID deployment to set env based on .env file
4
4
- FIXED: pattern-based static file serving config with no apps (try_files)
5
5
- NEW: docker::custom_args support
6
+ - NEW: foreign referrer limits
6
7
7
8
# 1.3.2 (2019-11-13)
8
9
- CHANGED: /www/empty permission to 0755 for CID v0.8.29+ support
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ This module is also a reference implementation of [FutoIn CID](https://github.co
50
50
* Apps cannot access each other, nginx service has aux group of each app
51
51
* HTTP_PROXY and other known attack mitigation
52
52
* Automatic systemd-based restart
53
+ * Basic protection against DDoS through victim browsers
53
54
* Misc:
54
55
* HTTP/2
55
56
* Multiple IP/interface aware
@@ -302,8 +303,9 @@ Main resource type to define virtualhost with related apps.
302
303
* ` verify = on ` - override verification mode
303
304
* ` $hsts = 'max-age=15768000; includeSubDomains; preload' ` - HSTS, optional
304
305
* enabled only at TLS termination
305
- * `$xfo = 'deny' - X-Frame-Options, optional
306
+ * ` $xfo = 'deny' ` - X-Frame-Options, optional
306
307
* enabled only at TLS termination
308
+ * ` $frl = true ` - foreign referrer limit, 50kps after 100kb if Referrer mismatch by default
307
309
* ` $deploy = undef ` - optional deployment strategy parameters
308
310
309
311
### Deploy strategy
Original file line number Diff line number Diff line change @@ -175,6 +175,19 @@ def self.on_config_change(newconf)
175
175
'default' => '$server_name' ,
176
176
'0' => "''" ,
177
177
}
178
+
179
+ cf_invalid_referer_rate = cfweb_tune . fetch ( 'cf_invalid_referer_rate' , '50k' )
180
+ cf_invalid_referer_rate_after = cfweb_tune . fetch ( 'cf_invalid_referer_rate_after' , '100k' )
181
+ http_conf [ "map $invalid_referer $cf_invalid_referer_rate" ] = {
182
+ 'default' => '0' ,
183
+ '1' => cf_invalid_referer_rate ,
184
+ }
185
+ http_conf [ "map $invalid_referer $cf_invalid_referer_rate_after" ] = {
186
+ 'default' => '0' ,
187
+ '1' => cf_invalid_referer_rate_after ,
188
+ }
189
+ http_conf [ "# variables are supported only since v1.17" ] = ''
190
+ http_conf [ "limit_rate_after" ] = cf_invalid_referer_rate_after
178
191
179
192
if stress_hosts && stress_hosts . size then
180
193
stress_hosts . each { |shost |
Original file line number Diff line number Diff line change 37
37
Optional[CfWeb::ClientX509] $require_x509 = undef ,
38
38
Optional[String[1]] $hsts = ' max-age=15768000; includeSubDomains; preload' ,
39
39
Optional[String[1]] $xfo = ' deny' ,
40
+ Boolean $frl = true ,
40
41
41
42
Boolean $backup_persistent = true ,
42
43
) {
430
431
require_x509 => $require_x509 ,
431
432
hsts => $hsts ,
432
433
xfo => $xfo ,
434
+ frl => $frl ,
433
435
}),
434
436
notify => $cfg_notify ,
435
437
before => Anchor[' cfnginx-ready' ],
Original file line number Diff line number Diff line change 22
22
Optional[CfWeb::ClientX509] $require_x509,
23
23
Optional[String[1]] $hsts,
24
24
Optional[String[1]] $xfo,
25
+ Optional[Boolean] $frl,
25
26
|
26
27
27
28
if size($plain_ports) == 0 and size($tls_ports) == 0 {
@@ -97,6 +98,15 @@ $tls_snippet = inline_epp('
97
98
add_header X-Frame-Options \'<%= $xfo %>\';
98
99
<% } -%>
99
100
101
+ <% if $frl { -%>
102
+ valid_referers server_names;
103
+
104
+ # Only since nginx 1.17
105
+ #limit_rate $cf_invalid_referer_rate;
106
+ #limit_rate_after $cf_invalid_referer_rate_after;
107
+ set $limit_rate $cf_invalid_referer_rate;
108
+ <% } -%>
109
+
100
110
<% } -%>
101
111
', {
102
112
})
You can’t perform that action at this time.
0 commit comments