Project

General

Profile

Download (10.6 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_version" => trim(file_get_contents("/etc/version"), " \n"),
69
	"product_copyright_years" => "2004 - ".date("Y"),
70
	"disablehelpmenu" => false,
71
	"disablehelpicon" => false,
72
	"disablecrashreporter" => false,
73
	"debug" => false,
74
	"latest_config" => "21.3",
75
	"minimum_ram_warning" => "101",
76
	"minimum_ram_warning_text" => "128 MB",
77
	"wan_interface_name" => "wan",
78
	"captiveportal_path" => "/usr/local/captiveportal",
79
	"captiveportal_element_path" => "/var/db/cpelements",
80
	"captiveportal_element_sizelimit" => 1048576,
81
	"captiveportal_rules_interval" => 50,
82
	"services_dhcp_server_enable" => true,
83
	"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]+/",
84
	"help_base_url" => "/help.php",
85
	"pkg_prefix" => "pfSense-pkg-",
86
	"default_timezone" => "Etc/UTC",
87
	"language" => "en_US",
88
	"default_config_backup_count" => 30,
89
	"default_cert_expiredays" => 27,
90
	"default_log_entries" => 500,
91
	"default_log_size" => 512000,
92
	"minimumtableentries_bogonsv6" => 400000,
93
	"alternativemetaports" => array("vmware", "php72", "php73", "php74"),
94
	"backuppath" => array(
95
		'captiveportal' => "/var/db/captiveportal*.db",
96
		'dhcpd' => "/var/dhcpd/var/db/dhcpd.leases",
97
		'dhcpdv6' => "/var/dhcpd/var/db/dhcpd6.leases",
98
		'voucher' => "/var/db/voucher_*.db"
99
	),
100
	"wg_conf_path" => "/etc/wg"
101
);
102

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

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

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

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

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

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

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

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

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

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

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

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

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

    
203
	return false;
204
}
205

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

    
210
$config_parsed = false;
211

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

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

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

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

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

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

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

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

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

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

    
325
?>
(19-19/61)