%PDF- %PDF-
| Direktori : /backups/router/usr/local/opnsense/scripts/shell/ |
| Current File : //backups/router/usr/local/opnsense/scripts/shell/banner.php |
#!/usr/local/bin/php
<?php
/*
* Copyright (C) 2005 Scott Ullrich <sullrich@gmail.com>
* Copyright (C) 2005 Colin Smith <ethethlay@gmail.com>
* Copyright (C) 2009 Ermal Luçi
* All rights reserved
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
require_once("config.inc");
require_once("interfaces.inc");
require_once("util.inc");
require_once("plugins.inc.d/openssh.inc");
$version = shell_safe('opnsense-version');
echo "\n*** {$config['system']['hostname']}.{$config['system']['domain']}: {$version} ***\n";
$iflist = legacy_config_get_interfaces(array('enable' => true, 'virtual' => false));
$ifdetails = legacy_interfaces_details();
if (!count($iflist)) {
echo "\n\tNo network interfaces are assigned.\n";
return;
}
foreach ($iflist as $ifname => $ifcfg) {
$class = null;
switch ($ifcfg['ipaddr']) {
case 'dhcp':
$class = '/DHCP4';
break;
case 'pppoe':
$class = '/PPPoE';
break;
case 'pptp':
$class = '/PPTP';
break;
case 'l2tp':
$class = '/L2TP';
break;
}
$class6 = null;
switch ($ifcfg['ipaddrv6']) {
case 'dhcp6':
$class6 = '/DHCP6';
break;
case 'slaac':
$class6 = '/SLAAC';
break;
case '6rd':
$class6 = '/6RD';
break;
case '6to4':
$class6 = '/6to4';
break;
case 'track6':
$class6 = '/t6';
break;
}
$realif = get_real_interface($ifname);
list ($primary,, $bits) = interfaces_primary_address($ifname, $ifdetails);
$network = "{$primary}/{$bits}";
list ($primary6,, $bits6) = interfaces_primary_address6($ifname, $ifdetails);
$network6 = "{$primary6}/{$bits6}";
$tobanner = "{$ifcfg['descr']} ({$realif})";
printf("\n %-15s -> ", $tobanner);
$v6first = false;
if ($network != '/') {
printf("v4%s: %s", $class, $network);
} else {
$v6first = true;
}
if ($network6 != '/') {
if (!$v6first) {
printf("\n%s", str_repeat(" ", 20));
}
printf("v6%s: %s", $class6, $network6);
}
}
echo PHP_EOL;
if (openssh_enabled() || $config['system']['webgui']['protocol'] == 'https') {
echo PHP_EOL;
}
if ($config['system']['webgui']['protocol'] == 'https') {
echo ' HTTPS: ';
passthru('openssl x509 -in /usr/local/etc/lighttpd_webgui/cert.pem -noout -fingerprint -sha256 | sed "s/Fingerprint=//" | tr ":" " " | sed -E "s/(^.{54})./\1, /" | tr "," "\n"');
}
if (openssh_enabled()) {
foreach (glob('/conf/sshd/ssh_host_*_key.pub') as $ssh_host_pub_key_file_path) {
echo ' SSH: ';
passthru("ssh-keygen -l -f " . escapeshellarg($ssh_host_pub_key_file_path) . " | awk '{ print $2 \" \" $4 }' | sed 's/SHA256:/SHA256 /'");
}
}