SME en Mirror des définitions de ClamAV pour les PC du réseau local utilisant ClamWin


 
 HOWTO : SME en Mirror des définitions de ClamAV pour les PC du réseau local utilisant ClamWin
   
Auteurs  Antoine (aka CeGe)
Contributeurs  N/a
Howto original  N/a
Versions supportées  Tous SME
Licence  Creative Commons
Dernière MAJ  12 fév. 2006 (historique)
 

Application
   
 

Bon c'est un peu bidouille mais ça marche : il suffit de répliquer les fichiers main.cvd et daily.cvd après chaque execution automatique de freshclam dans le site web principal !

1) Sur le SME, lancez un shell en root :

mkdir -p /etc/e-smith/template-custom/etc/crontab
cp /etc/e-smith/template/etc/crontab/40freshclam /etc/e-smith/template-custom/etc/crontab/40freshclam
#Modifiez le fichier 40freshclam comme dans l'exmple ci-dessous (les modifs sont indiquées) ou copier-coller le !
pico /etc/e-smith/template-custom/etc/crontab/40freshclam
/sbin/e-smith/expand-template /etc/crontab

2) Attendez la prochaine MAJ des définitions (un freshclam manuel ne répliquera pas ces définitions)

3) Sur le Windows :

Ensuite configurez le module de MAJ de ClamWin avec l'adresse de votre SME, comme l'exemple la capture ci-dessous :

(cliquez pour enlargir)

Vous pouvez mettre l'adresse IP interne de votre SME (ex : 192.168.0.1), le lien externe (ex : jurastick.dyndns.org) etc...

4) C'est fait !! Tenez-moi au jus sur vos installes :)


Fichier /etc/e-smith/template-custom/etc/crontab/40freshclam
   
 

{
use esmith::config;
use esmith::db;

$OUT = '';
$min = substr(gmtime,14,2);
$copie = 'cp -u -f /usr/share/clamav/*.* /home/e-smith/files/ibays/Primary/html';

local %services;
$services{'freshclam'} = $freshclam;

my $status = db_get_prop(\%services, "freshclam", "status");

if (defined $status && $status eq "enabled")
{
my $method = db_get_prop(\%services, "freshclam", 'Method');
if ((!defined($method)) || ($method eq 'crontab'))
{
$OUT .= "\n";
$OUT .= "# freshclam times during office hours\n";
$OUT .= "\n";

my $FreshclamFreqOffice =
db_get_prop(\%services, "freshclam", 'FreqOffice');
if ($FreshclamFreqOffice)
{
if ($FreshclamFreqOffice eq 'everyhour')
{
$OUT .= $min."\t8-17\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t8-17\t*\t*\t1-5\troot\t".$copie;
}
elsif ($FreshclamFreqOffice eq 'every2hrs')
{
$OUT .= $min."\t8-17/2\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t8-17/2\t*\t*\t1-5\troot\t".$copie;
}
elsif ($FreshclamFreqOffice eq 'everyday')
{
$OUT .= $min."\t8\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t8\t*\t*\t1-5\troot\t".$copie;
}
else
{
$OUT .= "# FreshclamFreqOffice - never\n";
}
}
else
{
$OUT .= "# FreshclamFreqOffice - not defined\n";
}

$OUT .= "\n";
$OUT .= "# freshclam times outside office hours\n";
$OUT .= "\n";

my $FreshclamFreqOutside =
db_get_prop(\%services, "freshclam", 'FreqOutside');
if ($FreshclamFreqOutside)
{
if ($FreshclamFreqOutside eq 'everyhour')
{
$OUT .= $min."\t0-7\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= $min."\t18-23\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t0-7\t*\t*\t1-5\troot\t".$copie;
$OUT .= ($min+5)."\t18-23\t*\t*\t1-5\troot\t".$copie;

}
elsif ($FreshclamFreqOutside eq 'every2hrs')
{
$OUT .= $min."\t0-7/2\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= $min."\t18-23/2\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t0-7/2\t*\t*\t1-5\troot\t".$copie;
$OUT .= ($min+5)."\t18-23/2\t*\t*\t1-5\troot\t".$copie;

}
elsif ($FreshclamFreqOutside eq 'everyday')
{
$OUT .= $min."\t0\t*\t*\t1-5\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t0\t*\t*\t1-5\troot\t".$copie;
}
else
{
$OUT .= "# FreshclamFreqOutside - never\n";
}
}
else
{
$OUT .= "# FreshclamFreqOutside - not defined\n";
}

$OUT .= "\n";
$OUT .= "# freshclam times during the weekend\n";
$OUT .= "\n";

my $FreshclamFreqWeekend =
db_get_prop(\%services, "freshclam", 'FreqWeekend');
if ($FreshclamFreqWeekend)
{
if ($FreshclamFreqWeekend eq 'everyhour')
{
$OUT .= $min."\t*\t*\t*\t6-7\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t*\t*\t*\t6-7\troot\t".$copie;
}
elsif ($FreshclamFreqWeekend eq 'every2hrs')
{
$OUT .= $min."\t*/2\t*\t*\t6-7\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t*/2\t*\t*\t6-7\troot\t".$copie;
}
elsif ($FreshclamFreqWeekend eq 'everyday')
{
$OUT .= $min."\t8\t*\t*\t6-7\troot\t/usr/bin/freshclam --quiet\n";
$OUT .= ($min+5)."\t8\t*\t*\t6-7\troot\t".$copie;
}
else
{
$OUT .= "# FreshclamFreqWeekend - never\n";
}
}
else
{
$OUT .= "# FreshclamFreqWeekend - not defined\n";
}
}
}
}

 
Contrat Creative Commons Jurastick (http://jurastick.dyndns.org) 2003-2024
Site consacré à la distribution Linux SME Server
Licence d'exploitation sous contrat Creative Commons
  Imprimer