Project

General

Profile

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

    
22
// Global defines
23

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

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

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

    
38
// AddPassword method defines
39
define('DMYPWD', "********");
40

    
41
global $g;
42
$g = array(
43
	"event_address" => "unix:///var/run/check_reload_status",
44
	"factory_shipped_username" => "admin",
45
	"factory_shipped_password" => "pfsense",
46
	"upload_path" => "/root",
47
	"dhcpd_chroot_path" => "/var/dhcpd",
48
	"unbound_chroot_path" => "/var/unbound",
49
	"var_path" => "/var",
50
	"varrun_path" => "/var/run",
51
	"varetc_path" => "/var/etc",
52
	"vardb_path" => "/var/db",
53
	"varlog_path" => "/var/log",
54
	"etc_path" => "/etc",
55
	"tmp_path" => "/tmp",
56
	"tmp_path_user_code" => "/tmp/user_code",
57
	"conf_path" => "/conf",
58
	"conf_default_path" => "/conf.default",
59
	"cf_path" => "/cf",
60
	"cf_conf_path" => "/cf/conf",
61
	"www_path" => "/usr/local/www",
62
	"xml_rootobj" => "pfsense",
63
	"admin_group" => "admins",
64
	"product_name" => "pfSense",
65
	"product_version" => trim(file_get_contents("/etc/version"), " \n"),
66
	"product_copyright_years" => "2004 - ".date("Y"),
67
	"disablehelpmenu" => false,
68
	"disablehelpicon" => false,
69
	"disablecrashreporter" => false,
70
	"crashreporterurl" => "https://crashreporter.pfsense.org/crash_reporter.php",
71
	"debug" => false,
72
	"latest_config" => "18.9",
73
	"minimum_ram_warning" => "101",
74
	"minimum_ram_warning_text" => "128 MB",
75
	"wan_interface_name" => "wan",
76
	"captiveportal_path" => "/usr/local/captiveportal",
77
	"captiveportal_element_path" => "/var/db/cpelements",
78
	"captiveportal_element_sizelimit" => 1048576,
79
	"captiveportal_rules_interval" => 50,
80
	"services_dhcp_server_enable" => true,
81
	"wireless_regex" => "/^(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rum|run|uath|upgt|ural|urtw|urtwn|wi|wpi|wtap|zyd)[0-9]+/",
82
	"help_base_url" => "/help.php",
83
	"pkg_prefix" => "pfSense-pkg-",
84
	"default_timezone" => "Etc/UTC",
85
	"language" => "en_US",
86
	"default_config_backup_count" => 30,
87
	"minimumtableentries_bogonsv6" => 400000,
88
	"alternativemetaports" => array("vmware", "php72")
89
);
90

    
91
/* IP TOS flags */
92
$iptos = array("lowdelay", "throughput", "reliability");
93

    
94
/* TCP flags */
95
$tcpflags = array("syn", "ack", "fin", "rst", "psh", "urg", "ece", "cwr");
96

    
97
if (file_exists("/etc/version.patch")) {
98
	$g["product_version_patch"] = trim(file_get_contents("/etc/version.patch"), " \n");
99
} else {
100
	$g["product_version_patch"] = "0";
101
}
102

    
103
$g['product_version_string'] = $g['product_version'];
104
if (is_numeric($g["product_version_patch"]) && $g["product_version_patch"] != "0") {
105
	$g['product_version_string'] .= "-p{$g['product_version_patch']}";
106
}
107

    
108
/* XXX: Backward compatible */
109
$g['platform'] = $g['product_name'];
110

    
111
if (file_exists("{$g['etc_path']}/default-config-flavor")) {
112
	$flavor_array = file("{$g['etc_path']}/default-config-flavor");
113
	$g['default-config-flavor'] = chop($flavor_array[0]);
114
} else {
115
	$g['default-config-flavor'] = '';
116
}
117

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

    
166
$machine_type = php_uname('m');
167
if (($machine_type == 'arm') || ($machine_type == 'arm64')) {
168
	$sysctls['kern.shutdown.secure_halt'] = 1;
169
}
170

    
171
/* Include override values for the above if needed. If the file doesn't exist, don't try to load it. */
172
if (file_exists("/etc/inc/globals_override.inc")) {
173
	@include_once("globals_override.inc");
174
}
175

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

    
179
/* Cache file used to store pfSense version */
180
$g["version_cache_file"] = "{$g['varrun_path']}/{$g['product_name']}_version";
181
$g['version_cache_refresh'] = 2 * 60 * 60; /* 2h */
182

    
183
function platform_booting($on_console = false) {
184
	global $g;
185

    
186
	if ($g['booting'] || file_exists("{$g['varrun_path']}/booting")) {
187
		if ($on_console == false || php_sapi_name() != 'fpm-fcgi') {
188
			return true;
189
		}
190
	}
191

    
192
	return false;
193
}
194

    
195
if (file_exists("{$g['cf_conf_path']}/enableserial_force")) {
196
	$g['enableserial_force'] = true;
197
}
198

    
199
$config_parsed = false;
200

    
201
/* Factory default check IP service. */
202
$factory_default_checkipservice = array(
203
	"enable" => true,
204
	"name" => 'Default',
205
	"url" => 'http://checkip.dyndns.org',
206
//	"username" => '',
207
//	"password" => '',
208
//	"verifysslpeer" => true,
209
	"descr" => 'Default Check IP Service'
210
);
211

    
212
$dyndns_split_domain_types = array("namecheap", "cloudflare", "cloudflare-v6", "gratisdns", "cloudns", "godaddy", "godaddy-v6");
213

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

    
231
/* VLAN Prio values. */
232
$vlanprio_values = array(
233
	"bk" => 0,
234
	"be" => 1,
235
	"ee" => 2,
236
	"ca" => 3,
237
	"vi" => 4,
238
	"vo" => 5,
239
	"ic" => 6,
240
	"nc" => 7
241
);
242

    
243
$vlanprio = array(
244
	"bk" => "Background (BK, 0)",
245
	"be" => "Best Effort (BE, 1)",
246
	"ee" => "Excellent Effort (EE, 2)",
247
	"ca" => "Critical Applications (CA, 3)",
248
	"vi" => "Video (VI, 4)",
249
	"vo" => "Voice (VO, 5)",
250
	"ic" => "Internetwork Control (IC, 6)",
251
	"nc" => "Network Control (NC, 7)"
252
);
253

    
254
?>
(20-20/60)