289 lines
8.1 KiB
PHP
289 lines
8.1 KiB
PHP
<?php
|
|
|
|
# vers. 20071219-01
|
|
|
|
include_once("./include/cfg-petar.php");
|
|
include_once("./include/layout.php");
|
|
include_once("./include/users.php");
|
|
include_once("./include/db.php");
|
|
include_once("./include/cfg-radius.php");
|
|
|
|
echo makemyheader();
|
|
echo maketop();
|
|
|
|
?>
|
|
|
|
<table align="center" width=95% border=0 cellspacing=10 cellpadding=0 bordercolor=black>
|
|
<tr align=left valign=top>
|
|
<td width=15%> <? echo $menu; ?>
|
|
<td width=85%>
|
|
|
|
<table width=85% border=1 align=center cellpadding=3>
|
|
<tr bgcolor=navy align=center>
|
|
<td colspan=7><font color=yellow><b>Gestione Utenti RADIUS</b></td>
|
|
|
|
<tr>
|
|
<td align=left bgcolor=#dddddd colspan=7>
|
|
|
|
<FORM ACTION=<?php echo $_SERVER["PHP_SELF"]; ?> METHOD=POST>
|
|
|
|
Modifica parametri di filtro:
|
|
[ <a href=<?php echo $_SERVER["PHP_SELF"]; ?>>Reset</a> ]
|
|
<p>
|
|
|
|
<select name=campo>
|
|
<option value=login>login</option>
|
|
<option value=pwd>password</option>
|
|
<option value=ip>ip</option>
|
|
<option value=netmask>netmask</option>
|
|
<option value=vendor>vendor</option>
|
|
</select>
|
|
|
|
|
|
<select name=relazione>
|
|
<option value=contiene>contiene</option>
|
|
<option value=noncontiene>non contiene</option>
|
|
<option value=uguale>uguale</option>
|
|
<option value=diverso>diverso</option>
|
|
<option value=inizia>inizia</option>
|
|
<option value=noninizia>non inizia</option>
|
|
<option value=finisce>finisce</option>
|
|
<option value=nonfinisce>non finisce</option>
|
|
</select>
|
|
|
|
|
|
<INPUT TYPE=TEXT NAME=filter SIZE=18 MAXLENGTH=18>
|
|
|
|
ordina per :
|
|
<select name=sort>
|
|
<option value=login>login</option>
|
|
<option value=password>password</option>
|
|
<option value="inet_aton(ip)">ip</option>
|
|
<option value=netmask>netmask</option>
|
|
<option value=vendor>vendor</option>
|
|
</select>
|
|
|
|
max :
|
|
<select name=nrmax>
|
|
<option value=10>10</option>
|
|
<option value=30>30</option>
|
|
<option value=50>50</option>
|
|
<option value=100>100</option>
|
|
<option value=300>300</option>
|
|
<option value=500>500</option>
|
|
<option value=1500>1500</option>
|
|
<option value=15000 selected>All</option>
|
|
</select>
|
|
|
|
|
|
<INPUT TYPE=SUBMIT name=submit value=start>
|
|
<INPUT TYPE=HIDDEN name=step value=1>
|
|
|
|
</FORM>
|
|
|
|
<?php
|
|
|
|
if ($_REQUEST["step"] == "1"){
|
|
|
|
switch ($_REQUEST["relazione"]) {
|
|
|
|
case "contiene":
|
|
$RELAZIONE = " like '%".$_REQUEST["filter"]."%'";
|
|
break;
|
|
case "noncontiene":
|
|
$RELAZIONE = " not like '%".$_REQUEST["filter"]."%'";
|
|
break;
|
|
|
|
case "uguale":
|
|
$RELAZIONE = " = '".$_REQUEST["filter"]."'";
|
|
break;
|
|
|
|
case "diverso":
|
|
$RELAZIONE = " != '".$_REQUEST["filter"]."'";
|
|
break;
|
|
|
|
case "inizia":
|
|
$RELAZIONE = " like '".$_REQUEST["filter"]."%'";
|
|
break;
|
|
|
|
case "noninizia":
|
|
$RELAZIONE = " not like '".$_REQUEST["filter"]."%'";
|
|
break;
|
|
|
|
case "finisce":
|
|
$RELAZIONE = " like '%".$_REQUEST["filter"]."'";
|
|
break;
|
|
|
|
case "nonfinisce":
|
|
$RELAZIONE = " not like '%".$_REQUEST["filter"]."'";
|
|
break;
|
|
}
|
|
|
|
if ($_REQUEST["startrec"] == ""){
|
|
$_REQUEST["startrec"]=0;
|
|
}
|
|
|
|
$LIMIT = " limit ".$_REQUEST["startrec"].",".$_REQUEST["nrmax"];
|
|
$WHERE = " where ".$_REQUEST["campo"].$RELAZIONE." ".$VENDOR_RESTR;
|
|
$SORT = $_REQUEST["sort"];
|
|
|
|
$query = sqlite_query($dbhandle, "SELECT login, pwd, ip, netmask, vendor FROM radiususer $WHERE order by $SORT $LIMIT");
|
|
$numrecords = sqlite_num_rows($query);
|
|
|
|
|
|
if ($numrecords == 0){
|
|
|
|
echo "<tr bgcolor=yellow align=center>".
|
|
"<td colspan=7><font color=red><b>Nessun record trovato</b></font></td>";
|
|
|
|
|
|
} else {
|
|
|
|
echo "<tr bgcolor=navy align=center>".
|
|
"<td width=3%><font color=yellow><b>Nr.</b></font></td>".
|
|
"<td width=22%><font color=yellow><b>Login</b></font></td>".
|
|
"<td width=22%><font color=yellow><b>Password</b></font></td>".
|
|
"<td width=22%><font color=yellow><b>IP</b></font></td>".
|
|
"<td width=22%><font color=yellow><b>NetMask</b></font></td>".
|
|
"<td width=22%><font color=yellow><b>Vendor</b></font></td>".
|
|
"<td width=12%><font color=yellow><b>-</b></font></td>";
|
|
|
|
|
|
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
|
|
$index = $index+1;
|
|
|
|
if (($index % 2) == 0){
|
|
$bgcolor = $bgcolora;
|
|
} else {
|
|
$bgcolor = $bgcolorb;
|
|
}
|
|
|
|
if ( $entry['vendor'] != "cnet" && (substr($entry['ip'],7,3) == "141" || substr($entry['ip'],7,3) == "146")){
|
|
$entry['ip'] = "ip dinamico";
|
|
}
|
|
|
|
if ($entry['netmask'] == "255.255.255.248"){
|
|
$fntcolor="red";
|
|
} else {
|
|
$fntcolor="navy";
|
|
}
|
|
|
|
echo "<tr align=left bgcolor=$bgcolor>".
|
|
|
|
"<td><font color=$fntcolor>$index".
|
|
"<td><a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&sl=".base64_encode(str_rot13($entry['login'])).">".$entry['login'].
|
|
"<td><font color=$fntcolor>".$entry['pwd'].
|
|
"<td><font color=$fntcolor>".$entry['ip'].
|
|
"<td><font color=$fntcolor>".$entry['netmask'].
|
|
"<td><font color=$fntcolor>".$entry['vendor'].
|
|
"<td>";
|
|
|
|
if ($admin_option){
|
|
echo "<a href=".$_SERVER["PHP_SELF"]."?step=3&sl=".base64_encode(str_rot13($entry['login']))."><img alt='burn it' src=pics/fire16.png border=0></a>";
|
|
} else {
|
|
echo "-";
|
|
}
|
|
|
|
echo "</tr>";
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "2"){
|
|
|
|
# Simple decoding
|
|
$_REQUEST["sl"]=str_rot13(base64_decode($_REQUEST["sl"]));
|
|
|
|
if (!$_REQUEST["nlog"]){
|
|
$_REQUEST["nlog"]=1;
|
|
}
|
|
|
|
$query = sqlite_query($dbhandle, "SELECT login, pwd, ip, netmask, vendor FROM radiususer where login = '".$_REQUEST["sl"]."'".$VENDOR_RESTR);
|
|
|
|
if (sqlite_num_rows($query) != 1){
|
|
echo "Aaarghhhh ! Errore nei dati. Registrato !";
|
|
exit;
|
|
}
|
|
|
|
$entry = sqlite_fetch_array($query, SQLITE_ASSOC);
|
|
$log=$radius_log_dir."/radius.log";
|
|
|
|
echo "<tr align=left>";
|
|
echo "<td align=center colspan=5 bgcolor=navy ><FONT color=yellow><STRONG>".$_REQUEST["sl"]."</STRONG></FONT>";
|
|
|
|
# Ping
|
|
echo "<tr align=left>";
|
|
echo "<td align=left colspan=5 bgcolor=white>";
|
|
$cmdstr = "ping -n -t 2 ".$entry["ip"];
|
|
$fp = popen($cmdstr, 'r');
|
|
|
|
echo "<pre>";
|
|
while ($line = fgets($fp, 4096)){
|
|
echo $line;
|
|
}
|
|
echo "</pre>";
|
|
pclose($fp);
|
|
|
|
# Log Analyze
|
|
$cmdstr = "tail -r ".$log." | grep -m ".$_REQUEST["nlog"]." ".$_REQUEST["sl"];
|
|
$fp = popen($cmdstr, 'r');
|
|
|
|
echo "<tr align=left bgcolor=navy>".
|
|
"<td><FONT color=yellow>data".
|
|
"<td><FONT color=yellow>status".
|
|
"<td><FONT color=yellow>login".
|
|
"<td><FONT color=yellow>RAS".
|
|
"<td><FONT color=yellow>port";
|
|
|
|
while ($line = fgets($fp, 4096)){
|
|
preg_match_all("|(.{24}).{9}(.*):.*\[(.*)\/.* client (.*) port (.*)\).*|U",$line,$out, PREG_PATTERN_ORDER);
|
|
echo "<tr align=left>".
|
|
"<td>".$out[1][0].
|
|
"<td>".$out[2][0].
|
|
"<td>".$out[3][0].
|
|
"<td>".$out[4][0].
|
|
"<td>".$out[5][0];
|
|
}
|
|
|
|
pclose($fp);
|
|
|
|
echo "<tr align=center>".
|
|
"<td colspan=5>Mostra ultimi [ ".
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&nlog=1&sl=".base64_encode(str_rot13($entry['login'])).">1</a> | ".
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&nlog=5&sl=".base64_encode(str_rot13($entry['login'])).">5</a> | ".
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&nlog=15&sl=".base64_encode(str_rot13($entry['login'])).">15</a> | ".
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&nlog=25&sl=".base64_encode(str_rot13($entry['login'])).">25</a> |".
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=2&id=".rand(100,999)."&nlog=50&sl=".base64_encode(str_rot13($entry['login'])).">50</a>".
|
|
" ] accessi";
|
|
|
|
}
|
|
|
|
|
|
if ($_REQUEST["step"] == "3"){
|
|
|
|
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "3"){
|
|
|
|
$_REQUEST["sl"]=str_rot13(base64_decode($_REQUEST["sl"]));
|
|
|
|
if ($_REQUEST["vapor"]) {
|
|
|
|
sqlite_query($dbhandle, "DELETE from RADIUSUSER where login = '".$_REQUEST["sl"]."'");
|
|
echo "<p><FONT COLOR=red>Record felicemente cancellati : ".sqlite_changes($dbhandle);
|
|
|
|
} else {
|
|
|
|
echo "<tr bgcolor=white align=center>".
|
|
"<td colspan=7><b>Sei sicuro di voler cancellare questo incolpevole radius login: </b>".
|
|
"<font color=red><b>".$_REQUEST["sl"]."</b></font> ? <p>".
|
|
"La tua risposta e' [ <a href=".$_SERVER["PHP_SELF"]."?step=3&vapor=yes&sl=".base64_encode(str_rot13($_REQUEST["sl"])).">Si, fallo sparire !</a> | ".
|
|
" <a href=".$_SERVER["PHP_SELF"].">No, forse domani</a> ]";
|
|
}
|
|
}
|
|
|
|
?>
|
|
</table>
|
|
|
|
</td></tr></table>
|