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
);
107

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

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

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

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

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

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

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

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

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

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

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

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

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

    
204
	return false;
205
}
206

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

    
211
$config_parsed = false;
212

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
375
?>
(19-19/61)