Michel Parlebas a écrit :

> Le Vendredi 23 Mars 2001 08:52, Mathieu Dodet a posté :
>
> >
> > J'aimerais pouvoir arreter un pc sous linux a distance en lancant une
> > commande sur un pc distant ( le tout de ma niere automatique),savez
> > vous si il existe une solution plus "belle" que de lancer un telnet .
>
> Par e-mail !
>
> Sur la machine distante, on aura créé un compte spécialement pour ça.
> Lorsqu'un mail arrive dans la BAL de cet "utilisateur", une tâche cron
> va analyser la présence de ce mail et déclencher l'arrêt de la
> machine...
>
> J'utilise cette sollution pour mettre à jour un firewall lorsqu'une
> machine distante se connecte à Internet avec une nouvelle adresse IP.
> Ma machine est informée de cette nouvelle adresse IP et met à jour son
> firewall...
>

Autre méthode, utilisée par mon firewall, un script cgi:


#!/usr/bin/perl -w

require '/var/smoothwall/header.pl';

my %cgiparams;
my $death = 0;

print "Content-type: text/html\n\n";

$cgiparams{'ACTION'} = '';
&getcgihash(\%cgiparams);

if ($cgiparams{'ACTION'} eq 'Shutdown')
{
        $death = 1;
        &log('Shutting down SmoothWall.');
        system '/usr/local/bin/smoothiedeath';
}

if ($death == 0)
{
        &openpage('Shutdown control', 1);

        &openbigbox('100%', 'LEFT');

        print "<FORM METHOD='POST'>\n";

        &openbox('100%', 'LEFT', 'Shutdown:');
        print <<END
<TABLE WIDTH='100%'>
<TR>
        <TD ALIGN='CENTER'><INPUT TYPE='submit' NAME='ACTION' VALUE='Shutdown'></TD>
</TR>
</TABLE>
END
        ;
        &closebox();

        print <<END
<DIV ALIGN='CENTER'>
<TABLE WIDTH='60%'>
<TR>
        <TD ALIGN='CENTER'><A HREF='/cgi-bin/index.cgi'>BACK</A></TD>
        <TD ALIGN='CENTER'><A HREF='/configure.html#3.5.'>HELP</A></TD>
</TR>
</TABLE>
</DIV>
END
;

        print "</FORM>\n";

        &closebigbox();
}
else
{
        &openpage('Shutting down...', 0);

        print <<END
<DIV ALIGN='CENTER'>
<IMG SRC='/smoothwall_big.gif'>
<BR>
<FONT SIZE='6'>SmoothWall has now shutdown</FONT>
</DIV>
END
        ;
}
&closepage();

Répondre à