Project

General

Profile

Download (15.5 KB) Statistics
| Branch: | Tag: | Revision:
1 5b237745 Scott Ullrich
<?php 
2 b46bfcf5 Bill Marquette
/* $Id$ */
3 5b237745 Scott Ullrich
/*
4
	services_snmp.php
5
	part of m0n0wall (http://m0n0.ch/wall)
6
	
7
	Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
8
	All rights reserved.
9
	
10
	Redistribution and use in source and binary forms, with or without
11
	modification, are permitted provided that the following conditions are met:
12
	
13
	1. Redistributions of source code must retain the above copyright notice,
14
	   this list of conditions and the following disclaimer.
15
	
16
	2. Redistributions in binary form must reproduce the above copyright
17
	   notice, this list of conditions and the following disclaimer in the
18
	   documentation and/or other materials provided with the distribution.
19
	
20
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
21
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
22
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
24
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
	POSSIBILITY OF SUCH DAMAGE.
30
*/
31 1d333258 Scott Ullrich
/*
32
	pfSense_MODULE:	snmp
33
*/
34 5b237745 Scott Ullrich
35 6b07c15a Matthew Grooms
##|+PRIV
36
##|*IDENT=page-services-snmp
37
##|*NAME=Services: SNMP page
38
##|*DESCR=Allow access to the 'Services: SNMP' page.
39
##|*MATCH=services_snmp.php*
40
##|-PRIV
41
42 5b237745 Scott Ullrich
require("guiconfig.inc");
43
44
if (!is_array($config['snmpd'])) {
45
	$config['snmpd'] = array();
46
	$config['snmpd']['rocommunity'] = "public";
47 3805bfdd John Fleming
	$config['snmpd']['pollport'] = "161";
48 5b237745 Scott Ullrich
}
49
50 3805bfdd John Fleming
if (!is_array($config['snmpd']['modules'])) {
51
	$config['snmpd']['modules'] = array();
52
	$config['snmpd']['modules']['mibii'] = true;
53
	$config['snmpd']['modules']['netgraph'] = true;
54
	$config['snmpd']['modules']['pf'] = true;
55 95fb49e8 Seth Mos
	$config['snmpd']['modules']['hostres'] = true;
56
	$config['snmpd']['modules']['bridge'] = true;
57 3805bfdd John Fleming
}
58 4f4d63d8 John Fleming
$pconfig['enable'] = isset($config['snmpd']['enable']);
59 3805bfdd John Fleming
$pconfig['pollport'] = $config['snmpd']['pollport'];
60 5b237745 Scott Ullrich
$pconfig['syslocation'] = $config['snmpd']['syslocation'];
61
$pconfig['syscontact'] = $config['snmpd']['syscontact'];
62
$pconfig['rocommunity'] = $config['snmpd']['rocommunity'];
63 4f4d63d8 John Fleming
/* disabled until some docs show up on what this does.
64
$pconfig['rwenable'] = isset($config['snmpd']['rwenable']);
65
$pconfig['rwcommunity'] = $config['snmpd']['rwcommunity'];
66
*/
67
$pconfig['trapenable'] = isset($config['snmpd']['trapenable']);
68
$pconfig['trapserver'] = $config['snmpd']['trapserver'];
69
$pconfig['trapserverport'] = $config['snmpd']['trapserverport'];
70 8c3c9dc2 John Fleming
$pconfig['trapstring'] = $config['snmpd']['trapstring'];
71 5b237745 Scott Ullrich
72 3805bfdd John Fleming
$pconfig['mibii'] = isset($config['snmpd']['modules']['mibii']);
73
$pconfig['netgraph'] = isset($config['snmpd']['modules']['netgraph']);
74
$pconfig['pf'] = isset($config['snmpd']['modules']['pf']);
75 95fb49e8 Seth Mos
$pconfig['hostres'] = isset($config['snmpd']['modules']['hostres']);
76
$pconfig['bridge'] = isset($config['snmpd']['modules']['bridge']);
77 7cbad422 Scott Ullrich
$pconfig['bindlan'] = isset($config['snmpd']['bindlan']);
78 3805bfdd John Fleming
79 5b237745 Scott Ullrich
if ($_POST) {
80
81
	unset($input_errors);
82
	$pconfig = $_POST;
83
84
	/* input validation */
85
	if ($_POST['enable']) {
86
		$reqdfields = explode(" ", "rocommunity");
87
		$reqdfieldsn = explode(",", "Community");
88 3805bfdd John Fleming
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
89
90
		$reqdfields = explode(" ", "pollport");
91
		$reqdfieldsn = explode(",", "Polling Port");
92 5b237745 Scott Ullrich
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
93 a42bf8cd Scott Ullrich
		
94 72b5583c Scott Ullrich
	
95 5b237745 Scott Ullrich
	}
96
97 4f4d63d8 John Fleming
	if ($_POST['trapenable']) {
98
		$reqdfields = explode(" ", "trapserver");
99
		$reqdfieldsn = explode(",", "Trap server");
100
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
101 3805bfdd John Fleming
102 4f4d63d8 John Fleming
		$reqdfields = explode(" ", "trapserverport");
103
		$reqdfieldsn = explode(",", "Trap server port");
104
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
105 3805bfdd John Fleming
106 8c3c9dc2 John Fleming
		$reqdfields = explode(" ", "trapstring");
107
		$reqdfieldsn = explode(",", "Trap string");
108
		do_input_validation($_POST, $reqdfields, $reqdfields, $reqdfieldsn, &$input_errors);
109 4f4d63d8 John Fleming
	}
110
111 8c3c9dc2 John Fleming
112 4f4d63d8 John Fleming
/* disabled until some docs show up on what this does.
113
	if ($_POST['rwenable']) {
114
               $reqdfields = explode(" ", "rwcommunity");
115
               $reqdfieldsn = explode(",", "Write community string");
116
               do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
117
	}
118
*/
119
120
	
121
122 5b237745 Scott Ullrich
	if (!$input_errors) {
123 4f4d63d8 John Fleming
		$config['snmpd']['enable'] = $_POST['enable'] ? true : false;
124 3805bfdd John Fleming
		$config['snmpd']['pollport'] = $_POST['pollport'];
125 3184f4e7 Scott Ullrich
		$config['snmpd']['syslocation'] = $_POST['syslocation'];	
126 5b237745 Scott Ullrich
		$config['snmpd']['syscontact'] = $_POST['syscontact'];
127
		$config['snmpd']['rocommunity'] = $_POST['rocommunity'];
128 4f4d63d8 John Fleming
		/* disabled until some docs show up on what this does.
129
		$config['snmpd']['rwenable'] = $_POST['rwenable'] ? true : false;
130
		$config['snmpd']['rwcommunity'] = $_POST['rwcommunity'];
131
		*/
132
		$config['snmpd']['trapenable'] = $_POST['trapenable'] ? true : false;
133
		$config['snmpd']['trapserver'] = $_POST['trapserver'];
134
		$config['snmpd']['trapserverport'] = $_POST['trapserverport'];
135 8c3c9dc2 John Fleming
		$config['snmpd']['trapstring'] = $_POST['trapstring'];
136 4f4d63d8 John Fleming
		
137 3805bfdd John Fleming
		$config['snmpd']['modules']['mibii'] = $_POST['mibii'] ? true : false;
138
		$config['snmpd']['modules']['netgraph'] = $_POST['netgraph'] ? true : false;
139
		$config['snmpd']['modules']['pf'] = $_POST['pf'] ? true : false;
140 95fb49e8 Seth Mos
		$config['snmpd']['modules']['hostres'] = $_POST['hostres'] ? true : false;
141
		$config['snmpd']['modules']['bridge'] = $_POST['bridge'] ? true : false;
142 7cbad422 Scott Ullrich
		$config['snmpd']['bindlan'] = $_POST['bindlan'] ? true : false;
143 5b237745 Scott Ullrich
			
144
		write_config();
145
		
146
		$retval = 0;
147 920b3bb0 Scott Ullrich
		$retval = services_snmpd_configure();
148 5b237745 Scott Ullrich
		$savemsg = get_std_save_message($retval);
149
	}
150
}
151 4df96eff Scott Ullrich
152 d88c6a9f Scott Ullrich
$pgtitle = array("Services","SNMP");
153 4df96eff Scott Ullrich
include("head.inc");
154
155 5b237745 Scott Ullrich
?>
156
<script language="JavaScript">
157
<!--
158 4f4d63d8 John Fleming
function enable_change(whichone) {
159
160
	if( whichone.name == "trapenable" )
161
        {
162
	    if( whichone.checked == true )
163
	    {
164
	        document.iform.trapserver.disabled = false;
165
	        document.iform.trapserverport.disabled = false;
166 8c3c9dc2 John Fleming
	        document.iform.trapstring.disabled = false;
167 4f4d63d8 John Fleming
	    }
168
	    else
169
	    {
170
                document.iform.trapserver.disabled = true;
171
                document.iform.trapserverport.disabled = true;
172 8c3c9dc2 John Fleming
                document.iform.trapstring.disabled = true;
173 4f4d63d8 John Fleming
	    }
174
	}
175
176
	/* disabled until some docs show up on what this does.
177
	if( whichone.name == "rwenable"  )
178
	{
179
	    if( whichone.checked == true )
180
	    {
181
		document.iform.rwcommunity.disabled = false;
182
	    }
183
	    else
184
	    {
185
		document.iform.rwcommunity.disabled = true;
186
	    }
187
	}
188
	*/
189
190
	if( document.iform.enable.checked == true )
191
	{
192 3805bfdd John Fleming
	    document.iform.pollport.disabled = false;
193 4f4d63d8 John Fleming
	    document.iform.syslocation.disabled = false;
194
	    document.iform.syscontact.disabled = false;
195
	    document.iform.rocommunity.disabled = false;
196
	    document.iform.trapenable.disabled = false;
197 7cbad422 Scott Ullrich
	    document.iform.bindlan.disabled = false;
198 4f4d63d8 John Fleming
	    /* disabled until some docs show up on what this does.
199
	    document.iform.rwenable.disabled = false;
200
	    if( document.iform.rwenable.checked == true )
201
	    {
202
	        document.iform.rwcommunity.disabled = false;
203
	    }
204
	    else
205
	    {
206
		document.iform.rwcommunity.disabled = true;
207
	    }
208
	    */
209
	    if( document.iform.trapenable.checked == true )
210
	    {
211
                document.iform.trapserver.disabled = false;
212
                document.iform.trapserverport.disabled = false;
213 8c3c9dc2 John Fleming
                document.iform.trapstring.disabled = false;
214 4f4d63d8 John Fleming
	    }
215
	    else
216
	    {
217
                document.iform.trapserver.disabled = true;
218 a21b1cad John Fleming
                document.iform.trapserverport.disabled = true;
219 8c3c9dc2 John Fleming
                document.iform.trapstring.disabled = true;
220 4f4d63d8 John Fleming
	    }
221 3805bfdd John Fleming
	    document.iform.mibii.disabled = false;
222
	    document.iform.netgraph.disabled = false;
223
	    document.iform.pf.disabled = false;
224 95fb49e8 Seth Mos
	    document.iform.hostres.disabled = false;
225
	    document.iform.bridge.disabled = false;
226 4f4d63d8 John Fleming
	}
227
	else
228
	{
229 3805bfdd John Fleming
            document.iform.pollport.disabled = true;
230 4f4d63d8 John Fleming
            document.iform.syslocation.disabled = true;
231
            document.iform.syscontact.disabled = true;
232
            document.iform.rocommunity.disabled = true;
233
	    /* 
234
            document.iform.rwenable.disabled = true;
235
	    document.iform.rwcommunity.disabled = true;
236
	    */
237
            document.iform.trapenable.disabled = true;
238
            document.iform.trapserver.disabled = true;
239
            document.iform.trapserverport.disabled = true;
240 8c3c9dc2 John Fleming
            document.iform.trapstring.disabled = true;
241 3805bfdd John Fleming
242
            document.iform.mibii.disabled = true;
243
            document.iform.netgraph.disabled = true;
244
            document.iform.pf.disabled = true;
245 95fb49e8 Seth Mos
            document.iform.hostres.disabled = true;
246
            document.iform.bridge.disabled = true;
247 7cbad422 Scott Ullrich
	    
248
	    document.iform.bindlan.disabled = true;
249 4f4d63d8 John Fleming
	}
250 5b237745 Scott Ullrich
}
251
//-->
252
</script>
253
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
254
<?php include("fbegin.inc"); ?>
255
<?php if ($input_errors) print_input_errors($input_errors); ?>
256
<?php if ($savemsg) print_info_box($savemsg); ?>
257
            <form action="services_snmp.php" method="post" name="iform" id="iform">
258
              <table width="100%" border="0" cellpadding="6" cellspacing="0">
259 4f4d63d8 John Fleming
260 5b237745 Scott Ullrich
                <tr> 
261 4f4d63d8 John Fleming
  		  <td colspan="2" valign="top" class="optsect_t">
262
  			<table border="0" cellspacing="0" cellpadding="0" width="100%">
263
  			<tr><td class="optsect_s"><strong>SNMP Daemon</strong></td>
264
			<td align="right" class="optsect_s"><input name="enable" type="checkbox" value="yes" <?php if ($pconfig['enable']) echo "checked"; ?> onClick="enable_change(this)"> <strong>Enable</strong></td></tr>
265
  			</table></td>
266 5b237745 Scott Ullrich
                </tr>
267 3805bfdd John Fleming
268
                <tr>
269
                  <td width="22%" valign="top" class="vncellreq">Polling Port </td>
270
                  <td width="78%" class="vtable">
271 b5c78501 Seth Mos
                    <input name="pollport" type="text" class="formfld unknown" id="pollport" size="40" value="<?=$pconfig['pollport'] ? htmlspecialchars($pconfig['pollport']) : htmlspecialchars(161);?>">
272 3805bfdd John Fleming
                    <br>Enter the port to accept polling events on (default 161)</br>
273
		  </td>
274
                </tr>
275
276 5b237745 Scott Ullrich
                <tr> 
277 b8093370 Scott Ullrich
                  <td width="22%" valign="top" class="vncell">System location</td>
278 5b237745 Scott Ullrich
                  <td width="78%" class="vtable"> 
279 b5c78501 Seth Mos
                    <input name="syslocation" type="text" class="formfld unknown" id="syslocation" size="40" value="<?=htmlspecialchars($pconfig['syslocation']);?>"> 
280 5b237745 Scott Ullrich
                  </td>
281
                </tr>
282 3805bfdd John Fleming
283 5b237745 Scott Ullrich
                <tr> 
284 b8093370 Scott Ullrich
                  <td width="22%" valign="top" class="vncell">System contact</td>
285 5b237745 Scott Ullrich
                  <td width="78%" class="vtable"> 
286 b5c78501 Seth Mos
                    <input name="syscontact" type="text" class="formfld unknown" id="syscontact" size="40" value="<?=htmlspecialchars($pconfig['syscontact']);?>"> 
287 5b237745 Scott Ullrich
                  </td>
288
                </tr>
289 3805bfdd John Fleming
290 5b237745 Scott Ullrich
                <tr> 
291 4f4d63d8 John Fleming
                  <td width="22%" valign="top" class="vncellreq">Read Community String</td>
292 5b237745 Scott Ullrich
                  <td width="78%" class="vtable"> 
293 b5c78501 Seth Mos
                    <input name="rocommunity" type="text" class="formfld unknown" id="rocommunity" size="40" value="<?=htmlspecialchars($pconfig['rocommunity']);?>"> 
294 3805bfdd John Fleming
                    <br>In most cases, &quot;public&quot; is used here</br>
295
		  </td>
296 5b237745 Scott Ullrich
                </tr>
297 4f4d63d8 John Fleming
298
<?php 
299
			/* disabled until some docs show up on what this does.
300
                <tr>
301
                  <td width="22%" valign="top" class="vtable">&nbsp;</td>
302
                  <td width="78%" class="vtable">
303
	 	   <input name="rwenable" type="checkbox" value="yes" <?php if ($pconfig['rwenable']) echo "checked"; ?> onClick="enable_change(this)">
304 3805bfdd John Fleming
                    <strong>Enable Write Community String</strong>
305
		  </td>
306 4f4d63d8 John Fleming
                </tr>
307
308
		<tr>
309
		  <td width="22%" valign="top" class="vncellreq">Write community string</td>
310
          <td width="78%" class="vtable">
311 b5c78501 Seth Mos
                    <input name="rwcommunity" type="text" class="formfld unknown" id="rwcommunity" size="40" value="<?=htmlspecialchars($pconfig['rwcommunity']);?>">
312 3805bfdd John Fleming
		    <br>Please use something other then &quot;private&quot; here</br>
313
		  </td>
314 4f4d63d8 John Fleming
                </tr>
315
		    	*/ 
316
?>
317
318 3184f4e7 Scott Ullrich
		<tr><td>&nbsp;</td></tr>
319
320
                <tr> 
321
  		  <td colspan="2" valign="top" class="optsect_t">
322
  			<table border="0" cellspacing="0" cellpadding="0" width="100%">
323 ba73e2a3 Scott Ullrich
  			<tr><td class="optsect_s"><strong>SNMP Traps</strong></td>
324 3184f4e7 Scott Ullrich
			<td align="right" class="optsect_s"><input name="trapenable" type="checkbox" value="yes" <?php if ($pconfig['trapenable']) echo "checked"; ?> onClick="enable_change(this)"> <strong>Enable</strong></td></tr>
325
  			</table></td>
326
                </tr>
327
328
329 4f4d63d8 John Fleming
                <tr>
330
                  <td width="22%" valign="top" class="vncellreq">Trap server</td>
331
                  <td width="78%" class="vtable">
332 b5c78501 Seth Mos
                    <input name="trapserver" type="text" class="formfld unknown" id="trapserver" size="40" value="<?=htmlspecialchars($pconfig['trapserver']);?>">
333 3805bfdd John Fleming
                    <br>Enter trap server name</br>
334
		  </td>
335 4f4d63d8 John Fleming
                </tr>
336
337
                <tr>
338
                  <td width="22%" valign="top" class="vncellreq">Trap server port </td>
339
                  <td width="78%" class="vtable">
340 b5c78501 Seth Mos
                    <input name="trapserverport" type="text" class="formfld unknown" id="trapserverport" size="40" value="<?=$pconfig['trapserverport'] ? htmlspecialchars($pconfig['trapserverport']) : htmlspecialchars(162);?>">
341 3805bfdd John Fleming
                    <br>Enter the port to send the traps to (default 162)</br>
342
		  </td>
343 4f4d63d8 John Fleming
                </tr>
344 3805bfdd John Fleming
345 8c3c9dc2 John Fleming
                <tr>
346 ba73e2a3 Scott Ullrich
                  <td width="22%" valign="top" class="vncellreq">Enter the SNMP trap string</td>
347 8c3c9dc2 John Fleming
                  <td width="78%" class="vtable">
348 b5c78501 Seth Mos
                    <input name="trapstring" type="text" class="formfld unknown" id="trapstring" size="40" value="<?=htmlspecialchars($pconfig['trapstring']);?>">
349 3805bfdd John Fleming
                    <br>Trap string</br>
350
		  </td>
351 8c3c9dc2 John Fleming
                </tr>
352
353 ba73e2a3 Scott Ullrich
		<tr><td>&nbsp;</td></tr>
354
355
                <tr> 
356
  		  <td colspan="2" valign="top" class="optsect_t">
357
  			<table border="0" cellspacing="0" cellpadding="0" width="100%">
358
  			<tr><td class="optsect_s"><strong>Modules</strong></td>
359
			<td align="right" class="optsect_s">&nbsp;</td></tr>
360
  			</table></td>
361
                </tr>
362
363 3805bfdd John Fleming
		<tr>
364
		  <td width="22%" valign="top" class="vncellreq">SNMP Modules</td>
365
		  <td width="78%" class="vtable">
366
		    <input name="mibii" type="checkbox" id="mibii" value="yes" <?php if ($pconfig['mibii']) echo "checked"; ?> >MibII
367 95fb49e8 Seth Mos
		    <br />
368 3805bfdd John Fleming
		    <input name="netgraph" type="checkbox" id="netgraph" value="yes" <?php if ($pconfig['netgraph']) echo "checked"; ?> >Netgraph
369 95fb49e8 Seth Mos
		    <br />
370 3805bfdd John Fleming
		    <input name="pf" type="checkbox" id="pf" value="yes" <?php if ($pconfig['pf']) echo "checked"; ?> >PF
371 95fb49e8 Seth Mos
		    <br />
372
		    <input name="hostres" type="checkbox" id="hostres" value="yes" <?php if ($pconfig['hostres']) echo "checked"; ?> >Host Resources
373 3805bfdd John Fleming
		  </td>
374
		</tr>
375 612bb4f3 Scott Ullrich
<?php if(!$config['interfaces']['lan']): ?>
376
		 <tr> 
377
		   <td width="22%" valign="top" class="vtable"></td>
378
		   <td width="78%" class="vtable"> 
379
		     <input name="bindlan" type="checkbox" value="yes" <?php if ($pconfig['bindlan']) echo "checked"; ?>> <strong>Bind to LAN interface only</strong>
380
		     <br>
381
		     This option can be useful when trying to access the SNMP agent
382
		     by the LAN interface's IP address through a VPN tunnel terminated on the WAN interface.</td>
383
		 </tr>
384
<?php endif; ?>
385
		 <tr> 
386
		   <td width="22%" valign="top">&nbsp;</td>
387
		   <td width="78%"> 
388
		     <input name="Submit" type="submit" class="formbtn" value="Save" onClick="enable_change(true)"> 
389
		   </td>
390
		 </tr>
391
		</table>
392 5b237745 Scott Ullrich
</form>
393
<script language="JavaScript">
394
<!--
395 4f4d63d8 John Fleming
enable_change(this);
396 5b237745 Scott Ullrich
//-->
397
</script>
398
<?php include("fend.inc"); ?>
399
</body>
400
</html>