Project

General

Profile

Download (10.7 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-2021 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
global $g;
44
$g = array(
45
	"event_address" => "unix:///var/run/check_reload_status",
46
	"factory_shipped_username" => "admin",
47
	"factory_shipped_password" => "pfsense",
48
	"upload_path" => "/root",
49
	"dhcpd_chroot_path" => "/var/dhcpd",
50
	"unbound_chroot_path" => "/var/unbound",
51
	"var_path" => "/var",
52
	"varrun_path" => "/var/run",
53
	"varetc_path" => "/var/etc",
54
	"vardb_path" => "/var/db",
55
	"varlog_path" => "/var/log",
56
	"etc_path" => "/etc",
57
	"tmp_path" => "/tmp",
58
	"tmp_path_user_code" => "/tmp/user_code",
59
	"conf_path" => "/conf",
60
	"conf_default_path" => "/conf.default",
61
	"cf_path" => "/cf",
62
	"cf_conf_path" => "/cf/conf",
63
	"www_path" => "/usr/local/www",
64
	"xml_rootobj" => "pfsense",
65
	"admin_group" => "admins",
66
	"product_name" => "pfSense",
67
	"product_label" => "pfSense",
68
	"product_label_html" => "Netgate pfSense<sup>&#174;</sup>",
69
	"product_version" => trim(file_get_contents("/etc/version"), " \n"),
70
	"product_copyright_years" => "2004 - ".date("Y"),
71
	"disablehelpmenu" => false,
72
	"disablehelpicon" => false,
73
	"disablecrashreporter" => false,
74
	"debug" => false,
75
	"latest_config" => "21.4",
76
	"minimum_ram_warning" => "101",
77
	"minimum_ram_warning_text" => "128 MB",
78
	"wan_interface_name" => "wan",
79
	"captiveportal_path" => "/usr/local/captiveportal",
80
	"captiveportal_element_path" => "/var/db/cpelements",
81
	"captiveportal_element_sizelimit" => 1048576,
82
	"captiveportal_rules_interval" => 50,
83
	"services_dhcp_server_enable" => true,
84
	"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]+/",
85
	"help_base_url" => "/help.php",
86
	"pkg_prefix" => "pfSense-pkg-",
87
	"default_timezone" => "Etc/UTC",
88
	"language" => "en_US",
89
	"default_config_backup_count" => 30,
90
	"default_cert_expiredays" => 27,
91
	"default_log_entries" => 500,
92
	"default_log_size" => 512000,
93
	"minimumtableentries_bogonsv6" => 400000,
94
	"alternativemetaports" => array("vmware", "php72", "php73", "php74"),
95
	"backuppath" => array(
96
		'captiveportal' => "/var/db/captiveportal*.db",
97
		'dhcpd' => "/var/dhcpd/var/db/dhcpd.leases",
98
		'dhcpdv6' => "/var/dhcpd/var/db/dhcpd6.leases",
99
		'voucher' => "/var/db/voucher_*.db"
100
	),
101
	"wg_conf_path" => "/etc/wg"
102
);
103

    
104
/* IP TOS flags */
105
$iptos = array("lowdelay", "throughput", "reliability");
106

    
107
/* TCP flags */
108
$tcpflags = array("syn", "ack", "fin", "rst", "psh", "urg", "ece", "cwr");
109

    
110
if (file_exists("/etc/version.patch")) {
111
	$g["product_version_patch"] = trim(file_get_contents("/etc/version.patch"), " \n");
112
} else {
113
	$g["product_version_patch"] = "0";
114
}
115

    
116
$g['product_version_string'] = $g['product_version'];
117
if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0") {
118
	$g['product_version_string'] .= "-p{$g['product_version_patch']}";
119
}
120

    
121
if (file_exists("{$g['etc_path']}/default-config-flavor")) {
122
	$flavor_array = file("{$g['etc_path']}/default-config-flavor");
123
	$g['default-config-flavor'] = chop($flavor_array[0]);
124
} else {
125
	$g['default-config-flavor'] = '';
126
}
127

    
128
$g['openvpn_base'] = "{$g['varetc_path']}/openvpn";
129

    
130
/* Default sysctls */
131
$sysctls = array("net.inet.ip.portrange.first" => "1024",
132
	"net.inet.tcp.blackhole" => "2",
133
	"net.inet.udp.blackhole" => "1",
134
	"net.inet.ip.random_id" => "1",
135
	"net.inet.tcp.drop_synfin" => "1",
136
	"net.inet.ip.redirect" => "1",
137
	"net.inet6.ip6.redirect" => "1",
138
	"net.inet6.ip6.use_tempaddr" => "0",
139
	"net.inet6.ip6.prefer_tempaddr" => "0",
140
	"net.inet.tcp.syncookies" => "1",
141
	"net.inet.tcp.recvspace" => "65228",
142
	"net.inet.tcp.sendspace" => "65228",
143
	"net.inet.tcp.delayed_ack" => "0",
144
	"net.inet.udp.maxdgram" => "57344",
145
	"net.link.bridge.pfil_onlyip" => "0",
146
	"net.link.bridge.pfil_member" => "1",
147
	"net.link.bridge.pfil_bridge" => "0",
148
	"net.link.tap.user_open" => "1",
149
	"net.link.vlan.mtag_pcp" => "1",
150
	"kern.randompid" => "347",
151
	"net.inet.ip.intr_queue_maxlen" => "1000",
152
	"hw.syscons.kbd_reboot" => "0",
153
	"net.inet.tcp.log_debug" => "0",
154
	"net.inet.tcp.tso" => "1",
155
	"net.inet.icmp.icmplim" => "0",
156
	"vfs.read_max" => "32",
157
	"kern.ipc.maxsockbuf" => "4262144",
158
	"net.inet.ip.process_options" => 0,
159
	"kern.random.harvest.mask" => "351",
160
	"net.route.netisr_maxqlen" => 1024,
161
	"net.inet.udp.checksum" => 1,
162
	"net.inet.icmp.reply_from_interface" => 1,
163
	"net.inet6.ip6.rfc6204w3" => 1,
164
	"net.enc.out.ipsec_bpf_mask" => "0x0001",
165
	"net.enc.out.ipsec_filter_mask" => "0x0001",
166
	"net.enc.in.ipsec_bpf_mask" => "0x0002",
167
	"net.enc.in.ipsec_filter_mask" => "0x0002",
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
?>
(19-19/61)