Project

General

Profile

Download (8.29 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.6",
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
/* Include override values for the above if needed. If the file doesn't exist, don't try to load it. */
167
if (file_exists("/etc/inc/globals_override.inc")) {
168
	@include_once("globals_override.inc");
169
}
170

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

    
174
/* Cache file used to store pfSense version */
175
$g["version_cache_file"] = "{$g['varrun_path']}/{$g['product_name']}_version";
176
$g['version_cache_refresh'] = 2 * 60 * 60; /* 2h */
177

    
178
function platform_booting($on_console = false) {
179
	global $g;
180

    
181
	if ($g['booting'] || file_exists("{$g['varrun_path']}/booting")) {
182
		if ($on_console == false || php_sapi_name() != 'fpm-fcgi') {
183
			return true;
184
		}
185
	}
186

    
187
	return false;
188
}
189

    
190
if (file_exists("{$g['cf_conf_path']}/enableserial_force")) {
191
	$g['enableserial_force'] = true;
192
}
193

    
194
$config_parsed = false;
195

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

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

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