Project

General

Profile

Download (12.1 KB) Statistics
| Branch: | Tag: | Revision:
1
<?php
2
/*
3
 * globals.inc
4
 *
5
 * part of pfSense (https://www.pfsense.org)
6
 * Copyright (c) 2004-2013 BSD Perimeter
7
 * Copyright (c) 2013-2016 Electric Sheep Fencing
8
 * Copyright (c) 2014-2022 Rubicon Communications, LLC (Netgate)
9
 * All rights reserved.
10
 *
11
 * Licensed under the Apache License, Version 2.0 (the "License");
12
 * you may not use this file except in compliance with the License.
13
 * You may obtain a copy of the License at
14
 *
15
 * http://www.apache.org/licenses/LICENSE-2.0
16
 *
17
 * Unless required by applicable law or agreed to in writing, software
18
 * distributed under the License is distributed on an "AS IS" BASIS,
19
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
 * See the License for the specific language governing permissions and
21
 * limitations under the License.
22
 */
23

    
24
// Global defines
25

    
26
// Automatic panel collapse
27
define('COLLAPSIBLE', 0x08);
28
define('SEC_CLOSED', 0x04);
29
define('SEC_OPEN', 0x00);
30

    
31
// IP address types
32
define("IPV4", 4);
33
define("IPV6", 6);
34
define("IPV4V6", 2);
35
define("ALIAS", 1);
36

    
37
// Interface Name Size
38
define("IF_NAMESIZE", 15);	/* 16 minus the terminating NULL */
39

    
40
// AddPassword method defines
41
define('DMYPWD', "********");
42

    
43
// Captive Portal aliases prefix
44
define('CPPREFIX', "cpzoneid_");
45

    
46
global $g;
47
$g = array(
48
	"acbbackuppath" => "/cf/conf/acb/",
49
	"event_address" => "unix:///var/run/check_reload_status",
50
	"factory_shipped_username" => "admin",
51
	"factory_shipped_password" => "pfsense",
52
	"upload_path" => "/root",
53
	"dhcpd_chroot_path" => "/var/dhcpd",
54
	"unbound_chroot_path" => "/var/unbound",
55
	"var_path" => "/var",
56
	"varrun_path" => "/var/run",
57
	"varetc_path" => "/var/etc",
58
	"vardb_path" => "/var/db",
59
	"varlog_path" => "/var/log",
60
	"etc_path" => "/etc",
61
	"tmp_path" => "/tmp",
62
	"tmp_path_user_code" => "/tmp/user_code",
63
	"conf_path" => "/conf",
64
	"conf_default_path" => "/conf.default",
65
	"cf_path" => "/cf",
66
	"cf_conf_path" => "/cf/conf",
67
	"www_path" => "/usr/local/www",
68
	"xml_rootobj" => "pfsense",
69
	"admin_group" => "admins",
70
	"product_name" => "pfSense",
71
	"product_label" => "pfSense",
72
	"product_label_html" => "Netgate pfSense<sup>&#174;</sup>",
73
	"product_version" => trim(file_get_contents("/etc/version"), " \n"),
74
	"product_copyright_years" => "2004 - ".date("Y"),
75
	"disablehelpmenu" => false,
76
	"disablehelpicon" => false,
77
	"disablecrashreporter" => false,
78
	"debug" => false,
79
	"latest_config" => "22.7",
80
	"minimum_ram_warning" => "101",
81
	"minimum_ram_warning_text" => "128 MB",
82
	"wan_interface_name" => "wan",
83
	"captiveportal_path" => "/usr/local/captiveportal",
84
	"captiveportal_element_path" => "/var/db/cpelements",
85
	"captiveportal_element_sizelimit" => 1048576,
86
	"captiveportal_rules_interval" => 50,
87
	"services_dhcp_server_enable" => true,
88
	"wireless_regex" => "/^(ath|athp|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rtwn|rum|run|uath|upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+/",
89
	"help_base_url" => "/help.php",
90
	"pkg_prefix" => "pfSense-pkg-",
91
	"default_timezone" => "Etc/UTC",
92
	"language" => "en_US",
93
	"default_config_backup_count" => 30,
94
	"default_cert_expiredays" => 27,
95
	"default_log_entries" => 500,
96
	"default_log_size" => 512000,
97
	"minimumtableentries_bogonsv6" => 400000,
98
	"alternativemetaports" => array("vmware", "php72", "php73", "php74"),
99
	"backuppath" => array(
100
		'captiveportal' => "/var/db/captiveportal*.db",
101
		'dhcpd' => "/var/dhcpd/var/db/dhcpd.leases",
102
		'dhcpdv6' => "/var/dhcpd/var/db/dhcpd6.leases",
103
		'voucher' => "/var/db/voucher_*.db"
104
	),
105
	"cp_prefix" => 'cpzoneid',
106
	"booting" => false
107
);
108

    
109
/* IP TOS flags */
110
$iptos = array("lowdelay", "throughput", "reliability");
111

    
112
/* TCP flags */
113
$tcpflags = array("syn", "ack", "fin", "rst", "psh", "urg", "ece", "cwr");
114

    
115
if (file_exists("/etc/version.patch")) {
116
	$g["product_version_patch"] = trim(file_get_contents("/etc/version.patch"), " \n");
117
} else {
118
	$g["product_version_patch"] = "0";
119
}
120

    
121
$g['product_version_string'] = $g['product_version'];
122
if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0") {
123
	$g['product_version_string'] .= "-p{$g['product_version_patch']}";
124
}
125

    
126
if (file_exists("{$g['etc_path']}/default-config-flavor")) {
127
	$flavor_array = file("{$g['etc_path']}/default-config-flavor");
128
	$g['default-config-flavor'] = chop($flavor_array[0]);
129
} else {
130
	$g['default-config-flavor'] = '';
131
}
132

    
133
$g['openvpn_base'] = "{$g['varetc_path']}/openvpn";
134

    
135
/* Default sysctls */
136
$sysctls = array("net.inet.ip.portrange.first" => "1024",
137
	"net.inet.tcp.blackhole" => "2",
138
	"net.inet.udp.blackhole" => "1",
139
	"net.inet.ip.random_id" => "1",
140
	"net.inet.tcp.drop_synfin" => "1",
141
	"net.inet.ip.redirect" => "1",
142
	"net.inet6.ip6.redirect" => "1",
143
	"net.inet6.ip6.use_tempaddr" => "0",
144
	"net.inet6.ip6.prefer_tempaddr" => "0",
145
	"net.inet.tcp.syncookies" => "1",
146
	"net.inet.tcp.recvspace" => "65228",
147
	"net.inet.tcp.sendspace" => "65228",
148
	"net.inet.tcp.delayed_ack" => "0",
149
	"net.inet.udp.maxdgram" => "57344",
150
	"net.link.bridge.pfil_onlyip" => "0",
151
	"net.link.bridge.pfil_member" => "1",
152
	"net.link.bridge.pfil_bridge" => "0",
153
	"net.link.tap.user_open" => "1",
154
	"net.link.vlan.mtag_pcp" => "1",
155
	"kern.randompid" => "347",
156
	"net.inet.ip.intr_queue_maxlen" => "1000",
157
	"hw.syscons.kbd_reboot" => "0",
158
	"net.inet.tcp.log_debug" => "0",
159
	"net.inet.tcp.tso" => "1",
160
	"net.inet.icmp.icmplim" => "0",
161
	"vfs.read_max" => "32",
162
	"kern.ipc.maxsockbuf" => "4262144",
163
	"net.inet.ip.process_options" => 0,
164
	"kern.random.harvest.mask" => "351",
165
	"net.route.netisr_maxqlen" => 1024,
166
	"net.inet.udp.checksum" => 1,
167
	"net.inet.icmp.reply_from_interface" => 1,
168
	"net.inet6.ip6.rfc6204w3" => 1,
169
	"net.key.preferred_oldsa" => "0",
170
	"net.inet.carp.senderr_demotion_factor" => 0, /* Do not demote CARP for interface send errors */
171
	"net.pfsync.carp_demotion_factor" => 0, /* Do not demote CARP for pfsync errors */
172
	"net.raw.recvspace" => 65536,
173
	"net.raw.sendspace" => 65536,
174
	"net.inet.raw.recvspace" => 131072,
175
	"net.inet.raw.maxdgram" => 131072,
176
	"kern.corefile" => "/root/%N.core" /* Write all core files to /root/ so they do not consume space on other slices */
177
);
178

    
179
$machine_type = php_uname('m');
180
if (($machine_type == 'arm') || ($machine_type == 'arm64')) {
181
	$sysctls['kern.shutdown.secure_halt'] = 1;
182
}
183

    
184
/* Include override values for the above if needed. If the file doesn't exist, don't try to load it. */
185
if (file_exists("/etc/inc/globals_override.inc")) {
186
	@include_once("globals_override.inc");
187
}
188

    
189
/* Read all XML files in following dir and load menu entries */
190
$g["ext_menu_path"] = "/usr/local/share/{$g['product_name']}/menu";
191

    
192
/* Cache file used to store pfSense version */
193
$g["version_cache_file"] = "{$g['varrun_path']}/{$g['product_name']}_version";
194
$g['version_cache_refresh'] = 2 * 60 * 60; /* 2h */
195

    
196
function platform_booting($on_console = false) {
197
	global $g;
198

    
199
	if ($g['booting'] || file_exists("{$g['varrun_path']}/booting")) {
200
		if ($on_console == false || php_sapi_name() != 'fpm-fcgi') {
201
			return true;
202
		}
203
	}
204

    
205
	return false;
206
}
207

    
208
if (file_exists("{$g['cf_conf_path']}/enableserial_force")) {
209
	$g['enableserial_force'] = true;
210
}
211

    
212
$config_parsed = false;
213

    
214
/* Factory default check IP service. */
215
$factory_default_checkipservice = array(
216
	"enable" => true,
217
	"name" => 'Default',
218
	"url" => 'http://checkip.dyndns.org',
219
//	"username" => '',
220
//	"password" => '',
221
//	"verifysslpeer" => true,
222
	"descr" => 'Default Check IP Service'
223
);
224

    
225
$dyndns_split_domain_types = array("namecheap", "cloudflare", "cloudflare-v6", "gratisdns", "cloudns", "godaddy", "godaddy-v6", "linode", "linode-v6");
226

    
227
/* pf tokens from FreeBSD source sbin/pfctl/parse.y (plus our custom entries at the end)*/
228
global $pf_reserved_keywords;
229
$pf_reserved_keywords = array(
230
	"pass", "block", "scrub", "return", "in", "os", "out", "log", "quick", "on", "from", "to", "flags", "returnrst",
231
	"returnicmp", "returnicmp6", "proto", "inet", "inet6", "all", "any", "icmptype", "icmp6type", "code", "keep",
232
	"modulate", "state", "port", "rdr", "nat", "binat", "arrow", "nodf", "minttl", "error", "allowopts", "fastroute",
233
	"filename", "routeto", "dupto", "replyto", "no", "label", "noroute", "urpffailed", "fragment", "user", "group",
234
	"maxmss", "maximum", "ttl", "tos", "drop", "table", "reassemble", "fragdrop", "fragcrop", "anchor", "natanchor",
235
	"rdranchor", "binatanchor", "set", "optimization", "timeout", "limit", "loginterface", "blockpolicy", "randomid",
236
	"requireorder", "synproxy", "fingerprints", "nosync", "debug", "skip", "hostid", "antispoof", "for", "include",
237
	"bitmask", "random", "sourcehash", "roundrobin", "staticport", "probability", "altq", "cbq", "codel", "priq",
238
	"hfsc", "fairq", "bandwidth", "tbrsize", "linkshare", "realtime", "upperlimit", "queue", "priority", "qlimit",
239
	"hogs", "buckets", "rtable", "target", "interval", "load", "ruleset_optimization", "prio", "stickyaddress",
240
	"maxsrcstates", "maxsrcnodes", "sourcetrack", "global", "rule", "maxsrcconn", "maxsrcconnrate", "overload",
241
	"flush", "sloppy", "tagged", "tag", "ifbound", "floating", "statepolicy", "statedefaults", "route", "settos",
242
	"divertto", "divertreply", "max", "min", "pptp", "pppoe", "L2TP", "OpenVPN", "IPsec");
243

    
244
/* Reserved table names to avoid collision */
245
global $reserved_table_names;
246
$reserved_table_names = array(
247
	"bogons",
248
	"bogonsv6",
249
	"negate_networks",
250
	"snort2c",
251
	"sshguard",
252
	"tonatsubnets",
253
	"virusprot",
254
	"vpn_networks",
255
);
256

    
257
/* VLAN Prio values. */
258
$vlanprio_values = array(
259
	"bk" => 0,
260
	"be" => 1,
261
	"ee" => 2,
262
	"ca" => 3,
263
	"vi" => 4,
264
	"vo" => 5,
265
	"ic" => 6,
266
	"nc" => 7
267
);
268

    
269
$vlanprio = array(
270
	"bk" => "Background (BK, 0)",
271
	"be" => "Best Effort (BE, 1)",
272
	"ee" => "Excellent Effort (EE, 2)",
273
	"ca" => "Critical Applications (CA, 3)",
274
	"vi" => "Video (VI, 4)",
275
	"vo" => "Voice (VO, 5)",
276
	"ic" => "Internetwork Control (IC, 6)",
277
	"nc" => "Network Control (NC, 7)"
278
);
279

    
280
global $system_log_files;
281
$system_log_files = array(
282
	"system", "filter", "dhcpd", "vpn", "poes", "l2tps", "openvpn",
283
	"portalauth", "ipsec", "ppp", "wireless", "nginx", "ntpd", "gateways",
284
	"resolver", "routing", "auth");
285

    
286
global $system_log_non_syslog_files;
287
$system_log_non_syslog_files = array('dmesg.boot', 'utx.log', 'userlog');
288

    
289
global $system_log_compression_types;
290
$system_log_compression_types = array(
291
	'bzip2' => array(
292
			'flag' => 'J',
293
			'cat' => '/usr/bin/bzcat -qf',
294
			'ext' => 'bz2',
295
		),
296
	'gzip' => array(
297
			'flag' => 'Z',
298
			'cat' => '/usr/bin/zcat -qf',
299
			'ext' => 'gz',
300
		),
301
	'xz' => array(
302
			'flag' => 'X',
303
			'cat' => '/usr/bin/xzcat -qf',
304
			'ext' => 'xz',
305
		),
306
	'zstd' => array(
307
			'flag' => 'Y',
308
			'cat' => '/usr/bin/zstdcat -qqf',
309
			'ext' => 'zst',
310
		),
311
	'none' => array(
312
			'flag' => '',
313
			'cat' => '/bin/cat',
314
			'ext' => '',
315
		),
316
);
317

    
318
global $ddnsdomainkeyalgorithms;
319
$ddnsdomainkeyalgorithms = array(
320
		'hmac-md5' => 'HMAC-MD5 (legacy default)',
321
		'hmac-sha1' => 'HMAC-SHA1',
322
		'hmac-sha224' => 'HMAC-SHA224',
323
		'hmac-sha256' => 'HMAC-SHA256 (current bind9 default)',
324
		'hmac-sha384' => 'HMAC-SHA384',
325
		'hmac-sha512' => 'HMAC-SHA512 (most secure)');
326

    
327
global $ipsec_filtermodes;
328
$ipsec_filtermodes = array(
329
	'enc' => 'Filter IPsec Tunnel, Transport, and VTI on IPsec tab (enc0)',
330
	'if_ipsec' => 'Filter IPsec VTI and Transport on assigned interfaces, block all tunnel mode traffic'
331
);
332

    
333
global $ipsec_filter_sysctl;
334
$ipsec_filter_sysctl = array(
335
	'enc' => array(
336
		"net.inet.ipsec.filtertunnel"   => "0x0000",
337
		"net.inet6.ipsec6.filtertunnel" => "0x0000",
338
		"net.enc.out.ipsec_bpf_mask"    => "0x0001",
339
		"net.enc.out.ipsec_filter_mask" => "0x0001",
340
		"net.enc.in.ipsec_bpf_mask"     => "0x0002",
341
		"net.enc.in.ipsec_filter_mask"  => "0x0002"
342
	),
343
	'if_ipsec' => array(
344
		"net.inet.ipsec.filtertunnel"   => "0x0001",
345
		"net.inet6.ipsec6.filtertunnel" => "0x0001",
346
		"net.enc.out.ipsec_bpf_mask"    => "0x0000",
347
		"net.enc.out.ipsec_filter_mask" => "0x0000",
348
		"net.enc.in.ipsec_bpf_mask"     => "0x0000",
349
		"net.enc.in.ipsec_filter_mask"  => "0x0000"
350
	),
351
);
352

    
353
global $vpn_and_ppp_ifs;
354
$vpn_and_ppp_ifs = array("l2tp", "pppoe", "enc0", "openvpn");
355

    
356
global $ssh_keys;
357
$ssh_keys = array(
358
	array('type' => 'rsa',     'suffix' => 'rsa_'),
359
	array('type' => 'ed25519', 'suffix' => 'ed25519_')
360
);
361

    
362
global $sshConfigDir;
363
$sshConfigDir = "/etc/ssh";
364

    
365
global $lagg_hash_list;
366
$lagg_hash_list = array(
367
	'l2,l3,l4' => 'Layer 2/3/4 (default)',
368
	'l2' => 'Layer 2 (MAC Address)',
369
	'l3' => 'Layer 3 (IP Address)',
370
	'l4' => 'Layer 4 (Port Number)',
371
	'l2,l3' => 'Layer 2/3 (MAC + IP)',
372
	'l3,l4' => 'Layer 3/4 (IP + Port)',
373
	'l2,l4' => 'Layer 2/4 (MAC + Port)'
374
);
375

    
376
?>
(20-20/62)