Alô galera,
Segue um modulo que escrevi para o Endian 2.4.1, testado e funcionando.
Ele se trata de um mod que executa na interface web as ferramentas ping, traceroute e arping, e boa parte do codigo peguei do modulo iptools.cgi do Smoothwall 3 Express.
Para funcionar, bastar salvar o arquivo com o nome de iptools.cgi no diretorio /home/httpd/cgi-bin do seu Endian 2.4.1, e dar permissões de acesso cgi, chmod 755 iptools.cgi.
Para isto você pode utilizar no windows a ferramenta WINSCP se desejar para fazer o upload (Não esqueça de ativar o SSH no endian !).
E para funcionar legal o ping e o arping, tive que fazer uma jogada no Endian, copiar os binarios com outro nome e setar SUID, veja como:
Entre no Endian pelo SSH (se windows utilize o utilitartio putty!), e faça como root:
cp /bin/ping /bin/pingroot
chmod 4755 /bin/pingroot
cp /sbin/arping /sbin/arpingroot
chmod 4755 /sbin/arpingroot
Agora basta acessar a URLdo iptools.cgi, Ex:
https://<IP_DO_SEU_ENDIAN>:10443/cgi-bin/iptools.cgi
Espero que gostem…
Segue MOD, corte aqui—
#!/usr/bin/perl
# Know Works: Endian Firewall Community 2.4.1
# MOD: iptools.cgi
# version: 0.10
#
# Copyright (C) 2011 – Claudemir P. da Luz Jr.
# Email: xmaxmex@gmail.com
#
# Licensed under GPL Version 2.
#
# have many issues, but it works 😉
require ‘/var/efw/header.pl’;
my %cgiparams;
my @inaddrs, @addrs;
my $addr;
my $address;
my $errormessage = ”;
my %cgiparams;
&showhttpheaders();
&getcgihash(%cgiparams);
$selected{‘TOOL’}{‘PING’} = ”;
$selected{‘TOOL’}{‘TRACEROUTE’} = ”;
$selected{‘TOOL’}{‘ARPING’} = ”;
$selected{‘TOOL’}{$cgiparams{‘TOOL’}} = ‘SELECTED’;
# Esta função modifica o titulo no Navegador..
&openpage(_(‘MOD IPTOOLS ver 0.10’), 1, ”);
&openbigbox($errormessage, $warnmessage, $notemessage);
print “<FORM METHOD=’POST’>n”;
# esta função abre um quadrado na pagina e coloca um cabeçalho..
&openbox(‘100%’, ‘left’, _(‘Ferramentas de Teste IP’));
printf <<END
Escolha o a ferramenta de teste, ping icmp ,traceoute ou arping:<p>
arping utilizara a interface eth1 para seus testes<p><p>
<div class=”efw-form”>
END
;
print <<END
<TABLE WIDTH=’100%’>
<TR>
<TD WIDTH=’15%’ CLASS=’base’>Ferramenta: $tr{‘toolc’}</TD>
<TD WIDTH=’20%’>
<SELECT NAME=’TOOL’>
<OPTION VALUE=’PING’ $selected{‘TOOL’}{‘PING’}>Ping
<OPTION VALUE=’TRACEROUTE’ $selected{‘TOOL’}{‘TRACEROUTE’}>Traceroute
<OPTION VALUE=’ARPING’ $selected{‘TOOL’}{‘ARPING’}>ARPing
</SELECT>
</TD>
<TD WIDTH=’20%’ CLASS=’base’>IP ou Hostname: $tr{‘ip addresses or hostnames’}</TD>
<TD WIDTH=’30%’><INPUT TYPE=’text’ SIZE=’40’ NAME=’IP’ VALUE=’$cgiparams{‘IP’}’></TD>
<TD WIDTH=’15%’ ALIGN=’CENTER’><INPUT TYPE=’submit’ NAME=’ACTION’ VALUE=’Executar’></TD>
</TR>
</TABLE>
END
;
printf <<END
<br class=”cb” />
</div>
END
;
&closebox();
if ($cgiparams{‘ACTION’} eq “Executar”)
{
@inaddrs = split(/,/, $cgiparams{‘IP’});
#aqui fiz algumas modificações… ta meio bugado 😉
&openbox(‘100%’, ‘left’, _(‘Retorno’));
print “
n";
# ping with root privileges
if ($cgiparams{'TOOL'} eq 'PING')
{
system('/bin/pingroot', '-n', '-c', '5', $cgiparams{'IP'});
}
if ($cgiparams{'TOOL'} eq 'TRACEROUTE')
{
system('/bin/traceroute', '-n', $cgiparams{'IP'});
}
# arping...very util
if ($cgiparams{'TOOL'} eq 'ARPING')
{
system('/sbin/arpingroot', '-I', 'eth1', '-c', '5', $cgiparams{'IP'});
}
print "
n”;
&closebox();
}
print “</FORM>n”;
#print “
DEBUG 2: “.$cgiparams{‘TOOL’};
#print “
DEBUG 4: “.$cgiparams{‘IP’};
&closebigbox();
&closepage();
#end.