Project

General

Profile

Download (10.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-2020 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_version" => trim(file_get_contents("/etc/version"), " \n"),
68
	"product_copyright_years" => "2004 - ".date("Y"),
69
	"disablehelpmenu" => false,
70
	"disablehelpicon" => false,
71
	"disablecrashreporter" => false,
72
	"debug" => false,
73
	"latest_config" => "20.1",
74
	"minimum_ram_warning" => "101",
75
	"minimum_ram_warning_text" => "128 MB",
76
	"wan_interface_name" => "wan",
77
	"captiveportal_path" => "/usr/local/captiveportal",
78
	"captiveportal_element_path" => "/var/db/cpelements",
79
	"captiveportal_element_sizelimit" => 1048576,
80
	"captiveportal_rules_interval" => 50,
81
	"services_dhcp_server_enable" => true,
82
	"wireless_regex" => "/^(ath|athp|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+/",
83
	"help_base_url" => "/help.php",
84
	"pkg_prefix" => "pfSense-pkg-",
85
	"default_timezone" => "Etc/UTC",
86
	"language" => "en_US",
87
	"default_config_backup_count" => 30,
88
	"default_cert_expiredays" => 27,
89
	"default_log_entries" => 500,
90
	"default_log_size" => 512000,
91
	"minimumtableentries_bogonsv6" => 400000,
92
	"alternativemetaports" => array("vmware", "php72", "php73")
93
);
94

    
95
/* IP TOS flags */
96
$iptos = array("lowdelay", "throughput", "reliability");
97

    
98
/* TCP flags */
99
$tcpflags = array("syn", "ack", "fin", "rst", "psh", "urg", "ece", "cwr");
100

    
101
if (file_exists("/etc/version.patch")) {
102
	$g["product_version_patch"] = trim(file_get_contents("/etc/version.patch"), " \n");
103
} else {
104
	$g["product_version_patch"] = "0";
105
}
106

    
107
$g['product_version_string'] = $g['product_version'];
108
if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0") {
109
	$g['product_version_string'] .= "-p{$g['product_version_patch']}";
110
}
111

    
112
/* XXX: Backward compatible */
113
$g['platform'] = $g['product_name'];
114

    
115
if (file_exists("{$g['etc_path']}/default-config-flavor")) {
116
	$flavor_array = file("{$g['etc_path']}/default-config-flavor");
117
	$g['default-config-flavor'] = chop($flavor_array[0]);
118
} else {
119
	$g['default-config-flavor'] = '';
120
}
121

    
122
$g['openvpn_base'] = "{$g['varetc_path']}/openvpn";
123

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

    
172
$machine_type = php_uname('m');
173
if (($machine_type == 'arm') || ($machine_type == 'arm64')) {
174
	$sysctls['kern.shutdown.secure_halt'] = 1;
175
}
176

    
177
/* Include override values for the above if needed. If the file doesn't exist, don't try to load it. */
178
if (file_exists("/etc/inc/globals_override.inc")) {
179
	@include_once("globals_override.inc");
180
}
181

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

    
185
/* Cache file used to store pfSense version */
186
$g["version_cache_file"] = "{$g['varrun_path']}/{$g['product_name']}_version";
187
$g['version_cache_refresh'] = 2 * 60 * 60; /* 2h */
188

    
189
function platform_booting($on_console = false) {
190
	global $g;
191

    
192
	if ($g['booting'] || file_exists("{$g['varrun_path']}/booting")) {
193
		if ($on_console == false || php_sapi_name() != 'fpm-fcgi') {
194
			return true;
195
		}
196
	}
197

    
198
	return false;
199
}
200

    
201
if (file_exists("{$g['cf_conf_path']}/enableserial_force")) {
202
	$g['enableserial_force'] = true;
203
}
204

    
205
$config_parsed = false;
206

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

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

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

    
237
/* Reserved table names to avoid collision */
238
global $reserved_table_names;
239
$reserved_table_names = array(
240
	"bogons",
241
	"bogonsv6",
242
	"negate_networks",
243
	"snort2c",
244
	"sshguard",
245
	"tonatsubnets",
246
	"virusprot",
247
	"vpn_networks",
248
);
249

    
250
/* VLAN Prio values. */
251
$vlanprio_values = array(
252
	"bk" => 0,
253
	"be" => 1,
254
	"ee" => 2,
255
	"ca" => 3,
256
	"vi" => 4,
257
	"vo" => 5,
258
	"ic" => 6,
259
	"nc" => 7
260
);
261

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

    
273
global $system_log_files;
274
$system_log_files = array(
275
	"system", "filter", "dhcpd", "vpn", "poes", "l2tps", "openvpn",
276
	"portalauth", "ipsec", "ppp", "wireless", "nginx", "ntpd", "gateways",
277
	"resolver", "routing", "auth");
278

    
279
global $system_log_non_syslog_files;
280
$system_log_non_syslog_files = array('dmesg.boot', 'utx.log', 'userlog');
281

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

    
311
?>
(19-19/60)