Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 1012 → Rev 1015

/web/acc/admin/dns_filter.php
File deleted
/web/acc/admin/dns_filter2.php
File deleted
/web/acc/admin/bl_filter2.php
0,0 → 1,187
<?php
function echo_file ($filename)
{
if (file_exists($filename))
{
if (filesize($filename) != 0)
{
$pointeur=fopen($filename,"r");
$tampon = fread($pointeur, filesize($filename));
fclose($pointeur);
echo $tampon;
}
}
else
{
echo "$l_error_openfile $filename";
}
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><th><?php echo $l_main_bl; ?></th></tr>
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr>
</table>
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1>
<tr><td valign="middle" align="left" colspan=10>
<FORM action='bl_filter.php' method=POST>
<?php
echo "<center>$l_bl_version";
echo date ("F d Y", filemtime ('/etc/dansguardian/lists/blacklists/README'));
echo "</center><BR>";
if ((file_exists("$dir_tmp/blacklists.tar.gz")) && (file_exists("$dir_tmp/md5sum")))
{
echo "$l_fingerprint"; echo_file ("$dir_tmp/md5sum");
echo "<br>$l_fingerprint2<a href='http://dsi.ut-capitole.fr/blacklists/download/MD5SUM.LST' target='cat_help' onclick=window.open('http://dsi.ut-capitole.fr/blacklists/download/MD5SUM.LST','cat_help','width=600,height=150,toolbar=no,scrollbars=yes,resizable=yes') title='verify fingerprint'>dsi.ut-capitole.fr/blacklists/download/MD5SUM.LST</a><br>";
echo "<input type='hidden' name='choix' value='Active_bl'>";
echo "<input type='submit' value='$l_activate_bl'> ($l_warning)</FORM>";
echo "<FORM action='bl_filter.php' method=POST>";
echo "<input type='hidden' name='choix' value='Reject_bl'>";
echo "<input type='submit' value='$l_reject_bl'></form>";
}
else
{
echo "<input type='hidden' name='choix' value='Download_bl'>";
echo "<input type='submit' value='$l_download_bl'>";
echo " ($l_warning)";
}
?>
</FORM>
</td></tr>
<tr><td valign="middle" align="left" colspan=10>
<FORM action='bl_filter.php' method=POST>
<input type='hidden' name='choix' value='MAJ_cat'>
<?php
echo "<center>$l_bl_categories</center></td></tr>";
//on lit et on interprete le fichier de catégories
$cols=1;
if (file_exists($bl_categories))
{
$pointeur=fopen($bl_categories,"r");
while (!feof ($pointeur))
{
$ligne=fgets($pointeur, 4096);
if ($ligne)
{
if ($cols == 1) { echo "<tr>";}
$categorie=trim(basename($ligne));
echo "<td><a href='bl_categories_help.php?cat=$categorie' target='cat_help' onclick=window.open('bl_categories_help.php','cat_help','width=600,height=150,toolbar=no,scrollbars=no,resizable=yes') title='categories help page'>$categorie</a><br>";
echo "<input type='checkbox' name='chk-$categorie'";
// si la ligne est commentée -> categorie non selectionnée
if (preg_match('/^#/',$ligne, $r)) { echo ">";}
else { echo "checked>"; }
echo "</td>";
$cols++;
if ($cols > 10) {
echo "</tr>";
$cols=1; }
}
}
fclose($pointeur);
}
else {
echo "$l_error_open_file $bl_categories";
}
echo "</td></tr>";
echo "<tr><td valign='middle' align='left' colspan=10>";
echo "<center><b>$l_maj_rehabilitated</b></center></td></tr>";
echo "<tr><td colspan=5 align=center>";
echo "<H3>$l_rehabilitated_dns</H3>$l_rehabilitated_dns_explain<BR>$l_one_dns<BR>";
echo "<textarea name='OSSI_wl_domains' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/exceptionsitelist");
echo "</textarea></td>";
echo "<td colspan=5 align=center>";
echo "<H3>$l_rehabilitated_url</H3>$l_rehabilitated_url_explain<BR>$l_one_url<BR>";
echo "<textarea name='OSSI_wl_urls' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/exceptionurllist");
echo "</textarea></td></tr><tr><td colspan=10>";
echo "<tr><td valign='middle' align='left' colspan=10>";
echo "<center><b>$l_add_to_bl</b></center></td></tr>";
echo "<tr><td colspan=5 align=center>";
echo "<H3>$l_forbidden_dns</H3>$l_forbidden_dns_explain<BR>";
echo "<textarea name='OSSI_bl_domains' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/blacklists/ossi/domains");
echo "</textarea></td>";
echo "<td colspan=5 align=center>";
echo "<H3>$l_forbidden_url</H3>$l_forbidden_url_explain<BR>";
echo "<textarea name='OSSI_bl_urls' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/blacklists/ossi/urls");
echo "</textarea></td></tr><tr><td colspan=10>";
echo "<input type='submit' value='$l_record'>";
echo "</form> ($l_wait)";
?>
</td></tr>
</TABLE>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><th><?php echo $l_specific_filtering; ?></th></tr>
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr>
</table>
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1>
<FORM action='bl_filter.php' method='POST'>
<input type='hidden' name='choix' value='Specific_filtering'>
<tr><td>
<input type='checkbox' name='chk-ip'
<?php
// verify "pureip" filtering state
if (file_exists($bannedsite_file))
{
$pointeur=fopen($bannedsite_file,"r");
while (!feof ($pointeur))
{
$ligne=fgets($pointeur, 4096);
if ($ligne)
{
if (preg_match('/^\*ip$/',$ligne, $r))
{
echo " checked";
break;
}
}
}
fclose($pointeur);
}
else {
echo "$l_error_open_file $bannedsite_file";
}
echo "> $l_ip_filtering";
?>
</td></tr>
<tr><td>
<input type='checkbox' name='chk-safesearch'
<?php
// verify "safesearch" filtering state
if (file_exists($urlregex_file))
{
$pointeur=fopen($urlregex_file,"r");
while (!feof ($pointeur))
{
$ligne=fgets($pointeur, 4096);
if ($ligne)
{
if (preg_match('/^\"\(\^http\:\/\/\[0\-9a\-z\]\+\\\.google/',$ligne, $r))
{
echo " checked";
break;
}
}
}
fclose($pointeur);
}
else {
echo "$l_error_open_file $urlregex_file";
}
echo "> $l_safe_searching";
echo "<br>$l_safe_youtube";
echo "<input type='text' name='Youtube_ID' size='30' value='";
if ($YOUTUBE_ID == "ABCD1234567890abcdef") // generic ID (do nothing)
{
echo "'>";
}
else {
echo "$YOUTUBE_ID'>";
}
echo " $l_youtube_id<tr><td>";
echo "<input type='submit' value='$l_record'>";
?>
</form>
</td></tr>
</TABLE>
/web/acc/admin/wl_filter.php
0,0 → 1,186
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><!-- written by Rexy -->
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>ALCASAR DNS filtering</TITLE>
<link rel="stylesheet" href="/css/style.css" type="text/css">
</HEAD>
<body>
<?
function form_filter ($form_content)
{
// réencodage iso + format unix + rc fin de ligne (ouf...)
$list = str_replace("\r\n", "\n", utf8_decode($form_content));
if (strlen($list) != 0){
if ($list[strlen($list)-1] != "\n") { $list[strlen($list)]="\n";} ;} ;
return $list;
}
# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
$l_error_open_file="Erreur d'ouverture du fichier";
$l_main_wl="Liste blanche";
$l_bl_version="Version actuelle :";
$l_wl_categories="Choix des catégories à autoriser";
$l_forbidden_dns="Noms de domaine filtrés";
$l_forbidden_dns_explain="Entrez un nom de domaine par ligne (exemple : .domaine.org)";
$l_one_dns="Entrez un nom de domaine par ligne (exemple : .domaine.org)";
$l_add_to_bl="Noms de domaine ou URLs ajoutés à la liste noire";
$l_forbidden_url="URL filtrés";
$l_forbidden_url_explain="Entrez une URL par ligne (exemple : www.domaine.org/perso/index.htm)";
$l_record="Enregistrer les modifications";
$l_wait="Une fois validées, 30 secondes sont nécessaires pour traiter vos modifications";
}
else {
$l_error_open_file="Error opening the file";
$l_main_wl="Whitelist";
$l_bl_version="Current version : ";
$l_wl_categories="Choice of authorized categories";
$l_forbidden_dns="Filtered domain names";
$l_forbidden_dns_explain="Enter one domain name per row (exemple : .domain.org)";
$l_one_dns="Enter one domain name per row (example : .domain.org)";
$l_add_to_bl="Domain names or URLs to add to blacklist";
$l_forbidden_url="Filtered URL";
$l_forbidden_url_explain="Enter one URL per row (example : www.domaine.org/perso/index.htm)";
$l_record="Save changes";
$l_wait="Once validated, 30 seconds is necessary to compute your modifications";
}
$wl_categories="/usr/local/etc/alcasar-wl-categories";
$wl_categories_enabled="/usr/local/etc/alcasar-wl-categories-enabled";
$dir_blacklist="/etc/dansguardian/lists/blacklist/";
$conf_file="/usr/local/etc/alcasar.conf";
$urlregex_file="/etc/dansguardian/lists/urlregexplist";
$bannedsite_file="/etc/dansguardian/lists/bannedsitelist";
$dir_tmp="/tmp/blacklists";
# default values
if (is_file ($conf_file))
{
$tab=file($conf_file);
if ($tab)
{
foreach ($tab as $line)
{
$field=explode("=", $line);
if ($field[0] == "DNS_FILTERING") {$DNS_FILTERING=trim($field[1]);}
}
}
}
else { echo "$l_error_open_file $conf_file";}
if (isset($_POST['choix'])){ $choix=$_POST['choix']; } else { $choix=""; }
switch ($choix)
{
case 'MAJ_cat' :
$tab=file($wl_categories_enabled);
if ($tab)
{
$pointeur=fopen($wl_categories_enabled, "w+");
foreach ($_POST as $key => $value)
{
if (strstr($key,'chk-'))
{
$line=str_replace('chk-','',$key)."\n";
fwrite($pointeur,$line);
}
}
fclose($pointeur);
}
else {echo "$l_error_open_file $wl_categories_enabled";}
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/domains","w+");
fputs($fichier, form_filter($_POST['OSSI_bl_domains']));
fclose($fichier);
unset($_POST['OSSI_bl_domains']);
$fichier=fopen("/etc/dansguardian/lists/exceptionsitelist","w+");
fputs($fichier, form_filter($_POST['OSSI_wl_domains']));
fclose($fichier);
unset($_POST['OSSI_wl_domains']);
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/urls","w+");
fputs($fichier, form_filter($_POST['OSSI_bl_urls']));
fclose($fichier);
unset($_POST['OSSI_bl_urls']);
$fichier=fopen("/etc/dansguardian/lists/exceptionurllist","w+");
fputs($fichier, form_filter($_POST['OSSI_wl_urls']));
fclose($fichier);
unset($_POST['OSSI_wl_urls']);
exec ("sudo /usr/local/sbin/alcasar-bl.sh --reload");
break;
}
 
function echo_file ($filename)
{
if (file_exists($filename))
{
if (filesize($filename) != 0)
{
$pointeur=fopen($filename,"r");
$tampon = fread($pointeur, filesize($filename));
fclose($pointeur);
echo $tampon;
}
}
else
{
echo "$l_error_openfile $filename";
}
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><th><?php echo $l_main_wl; ?></th></tr>
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width="1" height="2"></td></tr>
</table>
<TABLE width="100%" border=1 cellspacing=0 cellpadding=1>
<tr><td valign="middle" align="left" colspan=10>
<FORM action='dns_filter.php' method=POST>
<input type='hidden' name='choix' value='MAJ_cat'>
<?php
echo "<center>$l_wl_categories</center></td></tr>";
//on lit et on interprete le fichier de catégories
$cols=1;
if (file_exists($wl_categories))
{
$pointeur=fopen($wl_categories,"r");
while (!feof ($pointeur))
{
$ligne=fgets($pointeur, 4096);
if ($ligne)
{
if ($cols == 1) { echo "<tr>";}
$categorie=trim(basename($ligne));
echo "<td><a href='bl_categories_help.php?cat=$categorie' target='cat_help' onclick=window.open('bl_categories_help.php','cat_help','width=600,height=150,toolbar=no,scrollbars=no,resizable=yes') title='categories help page'>$categorie</a><br>";
echo "<input type='checkbox' name='chk-$categorie'";
// si la ligne est commentée -> categorie non selectionnée
if (preg_match('/^#/',$ligne, $r)) { echo ">";}
else { echo "checked>"; }
echo "</td>";
$cols++;
if ($cols > 10) {
echo "</tr>";
$cols=1; }
}
}
fclose($pointeur);
}
else {
echo "$l_error_open_file $wl_categories";
}
echo "<tr><td valign='middle' align='left' colspan=10>";
echo "<center><b>$l_add_to_bl</b></center></td></tr>";
echo "<tr><td colspan=5 align=center>";
echo "<H3>$l_forbidden_dns</H3>$l_forbidden_dns_explain<BR>";
echo "<textarea name='OSSI_bl_domains' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/blacklists/ossi/domains");
echo "</textarea></td>";
echo "<td colspan=5 align=center>";
echo "<H3>$l_forbidden_url</H3>$l_forbidden_url_explain<BR>";
echo "<textarea name='OSSI_bl_urls' rows=5 cols=40>";
echo_file ("/etc/dansguardian/lists/blacklists/ossi/urls");
echo "</textarea></td></tr><tr><td colspan=10>";
echo "<input type='submit' value='$l_record'>";
echo "</form> ($l_wait)";
?>
</td></tr>
</TABLE>
</BODY>
</HTML>
/web/acc/admin/bl_filter.php
0,0 → 1,212
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><!-- written by Rexy -->
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>ALCASAR DNS filtering</TITLE>
<link rel="stylesheet" href="/css/style.css" type="text/css">
</HEAD>
<body>
<?
function form_filter ($form_content)
{
// réencodage iso + format unix + rc fin de ligne (ouf...)
$list = str_replace("\r\n", "\n", utf8_decode($form_content));
if (strlen($list) != 0){
if ($list[strlen($list)-1] != "\n") { $list[strlen($list)]="\n";} ;} ;
return $list;
}
# Choice of language
$Language = 'en';
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]),0,2)); }
if($Language == 'fr'){
$l_title1 = "Filtrage de noms de domaine et d'URL";
$l_error_open_file="Erreur d'ouverture du fichier";
$l_dnsfilter_on="Le filtrage de noms de domaine et d'URL est actuellement activé";
$l_dnsfilter_off="Le filtrage de noms de domaine et d'URL est actuellement désactivé";
$l_switch_filtering_on="Activer le filtrage";
$l_switch_filtering_off="Désactiver le filtrage";
$l_main_bl="Liste noire";
$l_bl_version="Version actuelle :";
$l_bl_categories="Choix des catégories à filtrer";
$l_download_bl="Télécharger la dernière version";
$l_fingerprint="L'empreinte numérique du fichier téléchargé est : ";
$l_fingerprint2="Vérifiez-là en suivant ce lien (ligne 'blacklists.tar.gz') : ";
$l_activate_bl="Activer la nouvelle version";
$l_reject_bl="Rejeter";
$l_warning="Temps estimé : une minute.";
$l_specific_filtering="Filtrage special";
$l_forbidden_dns="Noms de domaine filtrés";
$l_forbidden_dns_explain="Entrez un nom de domaine par ligne (exemple : .domaine.org)";
$l_one_dns="Entrez un nom de domaine par ligne (exemple : .domaine.org)";
$l_maj_rehabilitated="Noms de domaine ou URLs réhabilités";
$l_rehabilitated_dns="Noms de domaine réhabilités";
$l_rehabilitated_dns_explain="Entrez ici des noms de domaine bloqués par la liste noire <BR> que vous souhaitez réhabiliter.";
$l_add_to_bl="Noms de domaine ou URLs ajoutés à la liste noire";
$l_forbidden_url="URL filtrés";
$l_forbidden_url_explain="Entrez une URL par ligne (exemple : www.domaine.org/perso/index.htm)";
$l_rehabilitated_url="URL réhabilités";
$l_rehabilitated_url_explain="Entrez ici des URL bloquées par la liste noire <BR> que vous souhaitez réhabiliter.";
$l_one_url="Entrez une URL par ligne (exemple : www.domaine.org/perso/index.htm)";
$l_record="Enregistrer les modifications";
$l_wait="Une fois validées, 30 secondes sont nécessaires pour traiter vos modifications";
$l_ip_filtering="Filtrer les URLs contenant une adresse IP au lieu d'un nom de domaine (ex: http://25.56.58.59/index.htm)";
$l_safe_searching="Activer le contrôle scolaire/parental des moteurs de recherche : google, yahoo, bing, metacrawler et Youtube.";
$l_safe_youtube="Pour Youtube, entrez votre identifiant ici : ";
$l_youtube_id="(<a href='http://www.youtube.com/education_signup' target='cat_help' onclick=window.open('http://www.youtube.com/education_signup','cat_help','width=800,height=600,toolbar=no,scrollbars=yes,resizable=yes') title='Youtube for school'>lien pour créer un identifiant Youtube (Id)</a>)";
}
else {
$l_title1 = "Domain names and URL filtering";
$l_error_open_file="Error opening the file";
$l_dnsfilter_on="Actually, the Domain name and URL filter is on";
$l_dnsfilter_off="Actually, the Domain name and URL filter is off";
$l_switch_filtering_on="Switch the Filter on";
$l_switch_filtering_off="Switch the Filter off";
$l_main_bl="Blacklist";
$l_bl_version="Current version : ";
$l_bl_categories="Choice of filtered categories";
$l_download_bl="Download the last version";
$l_fingerprint="The digital fingerprint of the downloaded blacklist is : ";
$l_fingerprint2="Verify it with this link (line 'blacklists.tar.gz') : ";
$l_activate_bl="Activate the new version";
$l_reject_bl="Reject";
$l_warning="Estimated time : one minute.";
$l_specific_filtering="Specific filtering";
$l_forbidden_dns="Filtered domain names";
$l_forbidden_dns_explain="Enter one domain name per row (exemple : .domain.org)";
$l_one_dns="Enter one domain name per row (example : .domain.org)";
$l_maj_rehabilitated="Domain names or URLs rehabilitated";
$l_rehabilitated_dns="Rehabilitated domain names";
$l_rehabilitated_dns_explain="Enter here domain names that are blocked by the blacklist <BR> and you want to rehabilitate.";
$l_add_to_bl="Domain names or URLs to add to blacklist";
$l_forbidden_url="Filtered URL";
$l_forbidden_url_explain="Enter one URL per row (example : www.domaine.org/perso/index.htm)";
$l_rehabilitated_url="Rehabilitated URL";
$l_rehabilitated_url_explain="Enter here URL that are blocked by the blacklist <BR> and you want to rehabilitate.";
$l_one_url="Enter one URL per row (example : www.domaine.org/perso/index.htm)";
$l_record="Save changes";
$l_wait="Once validated, 30 seconds is necessary to compute your modifications";
$l_ip_filtering="Filtering URLs that contain an IP address instead of a domain name (ie: http://25.56.58.59/index.htm)";
$l_safe_searching="Enabling school/parental control for the search engines google, yahoo, bing, metacrawler and Youtube.";
$l_safe_youtube="For Youtube, enter your ID here : ";
$l_youtube_id="(<a href='http://www.youtube.com/education_signup' target='cat_help' onclick=window.open('http://www.youtube.com/education_signup','cat_help','width=800,height=600,toolbar=no,scrollbars=yes,resizable=yes') title='Youtube for school'>link to create a Youtube Id</a>)";
}
$bl_categories="/usr/local/etc/alcasar-bl-categories";
$bl_categories_enabled="/usr/local/etc/alcasar-bl-categories-enabled";
$dir_blacklist="/etc/dansguardian/lists/blacklist/";
$conf_file="/usr/local/etc/alcasar.conf";
$urlregex_file="/etc/dansguardian/lists/urlregexplist";
$bannedsite_file="/etc/dansguardian/lists/bannedsitelist";
$dir_tmp="/tmp/blacklists";
# default values
if (is_file ($conf_file))
{
$tab=file($conf_file);
if ($tab)
{
foreach ($tab as $line)
{
$field=explode("=", $line);
if ($field[0] == "DNS_FILTERING") {$DNS_FILTERING=trim($field[1]);}
if ($field[0] == "YOUTUBE_ID") {$YOUTUBE_ID=trim($field[1]);}
}
}
}
else { echo "$l_error_open_file $conf_file";}
if (isset($_POST['choix'])){ $choix=$_POST['choix']; } else { $choix=""; }
switch ($choix)
{
case 'BL_On' :
exec ("sudo /usr/local/sbin/alcasar-bl.sh --on");
break;
case 'BL_Off' :
exec ("sudo /usr/local/sbin/alcasar-bl.sh --off");
break;
case 'Download_bl' :
exec ("sudo /usr/local/sbin/alcasar-bl.sh --download");
break;
case 'Active_bl' :
exec ("sudo /usr/local/sbin/alcasar-bl.sh --adapt");
exec ("sudo /usr/local/sbin/alcasar-bl.sh --reload");
break;
case 'Reject_bl' :
unlink ("$dir_tmp/blacklists.tar.gz"); unlink ("$dir_tmp/md5sum");
break;
case 'MAJ_cat' :
$tab=file($bl_categories_enabled);
if ($tab)
{
$pointeur=fopen($bl_categories_enabled, "w+");
foreach ($_POST as $key => $value)
{
if (strstr($key,'chk-'))
{
$line=str_replace('chk-','',$key)."\n";
fwrite($pointeur,$line);
}
}
fclose($pointeur);
}
else {echo "$l_error_open_file $bl_categories_enabled";}
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/domains","w+");
fputs($fichier, form_filter($_POST['OSSI_bl_domains']));
fclose($fichier);
unset($_POST['OSSI_bl_domains']);
$fichier=fopen("/etc/dansguardian/lists/exceptionsitelist","w+");
fputs($fichier, form_filter($_POST['OSSI_wl_domains']));
fclose($fichier);
unset($_POST['OSSI_wl_domains']);
$fichier=fopen("/etc/dansguardian/lists/blacklists/ossi/urls","w+");
fputs($fichier, form_filter($_POST['OSSI_bl_urls']));
fclose($fichier);
unset($_POST['OSSI_bl_urls']);
$fichier=fopen("/etc/dansguardian/lists/exceptionurllist","w+");
fputs($fichier, form_filter($_POST['OSSI_wl_urls']));
fclose($fichier);
unset($_POST['OSSI_wl_urls']);
exec ("sudo /usr/local/sbin/alcasar-bl.sh --reload");
break;
case 'Specific_filtering' :
$pureip="-pureip_off"; $safesearch="-safesearch_off"; ;
foreach ($_POST as $key => $value)
{
if (strstr($key,'chk-ip')) $pureip="-pureip_on";
if (strstr($key,'chk-safesearch')) $safesearch="-safesearch_on";
}
if ($_POST['Youtube_ID'] == '') { $New_ID="ABCD1234567890abcdef";} // default ID (no action)
else {$New_ID=$_POST['Youtube_ID'];}
file_put_contents($conf_file, str_replace("YOUTUBE_ID=$YOUTUBE_ID", "YOUTUBE_ID=$New_ID", file_get_contents($conf_file)));
$YOUTUBE_ID=$New_ID;
exec ("sudo /usr/local/sbin/alcasar-url_filter.sh $safesearch $pureip");
break;
}
?>
<TABLE width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><th><?php echo "$l_title1"; ?></th></tr>
<tr bgcolor="#FFCC66"><td><img src="/images/pix.gif" width=1 height=2></td></tr>
</TABLE>
<TABLE width="100%" border=1 cellspacing=0 cellpadding=0>
<tr><td valign="middle" align="left">
<?php
if ($DNS_FILTERING == "on")
{
echo "<CENTER><H3>$l_dnsfilter_on</H3></CENTER>";
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<input type=hidden name='choix' value=\"BL_Off\">";
echo "<input type=submit value=\"$l_switch_filtering_off\">";
}
else
{
echo "<CENTER><H3>$l_dnsfilter_off</H3></CENTER>";
echo "<FORM action='$_SERVER[PHP_SELF]' method=POST>";
echo "<input type=hidden name='choix' value=\"BL_On\">";
echo "<input type=submit value=\"$l_switch_filtering_on\">";
}
echo "</FORM>";
echo "</td></tr>";
echo "</TABLE>";
if ($DNS_FILTERING == "on") require ('bl_filter2.php');
?>
</BODY>
</HTML>
/web/acc/menu.php
25,7 → 25,8
$l_statistics = "STATISTIQUES";
$l_backup = "SAUVEGARDES";
$l_activity = "Activité";
$l_domains_filter = "Domaines et URLs";
$l_blacklist = "Liste noire";
$l_whitelist = "Liste blanche";
$l_ldap = "Ldap/A.D.";
$l_access_nb = "Accès au centre";
$l_create_user = "Créer un usager";
51,7 → 52,8
$l_statistics = "STATISTICS";
$l_backup = "BACKUPS";
$l_activity = "Activity";
$l_domains_filter = "Domains & URLs";
$l_blacklist = "Blacklist";
$l_whitelist = "Whitelist";
$l_ldap = "Ldap/A.D.";
$l_access_nb = "Access to center";
$l_create_voucher = "Create a quick ticket";
148,7 → 150,7
fclose($fp);
printf("%d", $nb);
?>
<br>depuis le 99/99/9999<br></center></td></tr>
<br>depuis le 20/01/2013<br></center></td></tr>
</TABLE>
</td></tr>
</TABLE>
/web/acc/filtering.php
1,10 → 1,12
<?
$select[0]="$l_domains_filter";
$select[1]=$l_network;
$select[2]="Exceptions";
$fich[0]="admin/dns_filter.php";
$fich[1]="admin/net_filter.php";
$fich[2]="admin/filter_exceptions.php";
$select[0]="$l_blacklist";
$select[1]="$l_whitelist";
$select[2]=$l_network;
$select[3]="Exceptions";
$fich[0]="admin/bl_filter.php";
$fich[1]="admin/wl_filter.php";
$fich[2]="admin/net_filter.php";
$fich[3]="admin/filter_exceptions.php";
$j=0;
$nb=count($select);
while ($j != $nb)
/alcasar.sh
51,18 → 51,19
DATE_SHORT=`date '+%d/%m/%Y'`
Lang=`echo $LANG|cut -c 1-2`
# ******* Files parameters - paramètres fichiers *********
DIR_INSTALL=`pwd` # install directory
DIR_CONF="$DIR_INSTALL/conf" # répertoire d'installation contenant les fichiers de configuration
DIR_SCRIPTS="$DIR_INSTALL/scripts" # répertoire d'installation contenant les scripts
DIR_SAVE="/var/Save" # répertoire de sauvegarde (system_backup, user_db_backup, logs)
DIR_WEB="/var/www/html" # répertoire racine APACHE
DIR_DG="/etc/dansguardian" # répertoire de config de DansGuardian
DIR_ACC="$DIR_WEB/acc" # répertoire du centre de gestion 'ALCASAR Control Center'
DIR_DEST_BIN="/usr/local/bin" # répertoire des scripts
DIR_DEST_SBIN="/usr/local/sbin" # répertoire des scripts d'admin
DIR_DEST_ETC="/usr/local/etc" # répertoire des fichiers de conf
CONF_FILE="$DIR_DEST_ETC/alcasar.conf" # fichier de conf d'alcasar
PASSWD_FILE="/root/ALCASAR-passwords.txt" # fichier texte contenant les mots de passe et secrets partagés
DIR_INSTALL=`pwd` # current directory
DIR_CONF="$DIR_INSTALL/conf" # install directory (with conf files)
DIR_SCRIPTS="$DIR_INSTALL/scripts" # install directory (with script files)
DIR_SAVE="/var/Save" # backup directory (system_backup, user_db_backup, logs)
DIR_WEB="/var/www/html" # directory of APACHE
DIR_DG="/etc/dansguardian" # directory of DansGuardian
DIR_ACC="$DIR_WEB/acc" # directory of the 'ALCASAR Control Center'
DIR_DEST_BIN="/usr/local/bin" # directory of ALCASAR scripts
DIR_DEST_SBIN="/usr/local/sbin" # directory of ALCASAR admin scripts
DIR_DEST_ETC="/usr/local/etc" # directory of ALCASAR conf files
DIR_DEST_SHARE="/usr/local/share" # directory of share files used by ALCASAR (dnsmasq for instance)
CONF_FILE="$DIR_DEST_ETC/alcasar.conf" # central ALCASAR conf file
PASSWD_FILE="/root/ALCASAR-passwords.txt" # text file with the passwords and shared secrets
# ******* DBMS parameters - paramètres SGBD ********
DB_RADIUS="radius" # nom de la base de données utilisée par le serveur FreeRadius
DB_USER="radius" # nom de l'utilisateur de la base de données
1279,7 → 1280,7
cat << EOF > /etc/dnsmasq-blackhole.conf
# Configuration file for "dnsmasq with blackhole"
# Inclusion de la blacklist <domains> de Toulouse dans la configuration
conf-dir=$DIR_DEST_ETC/alcasar-dnsfilter-enabled
conf-dir=$DIR_DEST_SHARE/dnsmasq-bl-enabled
conf-file=$DIR_DEST_ETC/alcasar-dns-name # zone de definition de noms DNS locaux
listen-address=$PRIVATE_IP
port=54
1352,10 → 1353,6
$SED "s?safe=vss?safe=strict?g" $DIR_DG/lists/urlregexplist
chown -R dansguardian:apache $DIR_DG
chmod -R g+rw $DIR_DG
# On crée la structure du DNS-blackhole :
mkdir $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
chown -R 770 $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
chown -R root:apache $DIR_DEST_ETC/{alcasar-dnsfilter-available,alcasar-dnsfilter-enabled}
# On adapte la BL de Toulouse à notre structure
if [ "$mode" != "update" ]; then
$DIR_DEST_SBIN/alcasar-bl.sh --adapt
/conf/rpms/rpm-build-howto-old
0,0 → 1,37
By Rexy
 
Création des RPM spécifiques pour Alcasar
 
**** préparation de la structure de création de RPM ***
- installer le paquetage rpm-build
- récupérer le "RPM Source" de la dernière version 'packagée' par mandriva de coova-chilli (dans le répertoire SRPMS du dépôt 'contrib' de la cooker ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/devel/cooker/SRPMS/contrib/release/)
- en tant que root, lancer "urpmi" du paquetage récupéré. Cela permet d'installer les dépendances en terme de biliothèques de développment (*-devel.rpm)
- en tant qu'utilisateur, lancer rpm -i du paquetage récupéré afin d'installer la structure de création du RPM dans ~/rpmbuild
- pour tester cette structure, se positionner dans le répertoire ~/rpmbuild/SPEC/ et lancer la génération du RPM (rpmbuild -ba coova-chilli.spec)
- si tout est ok, les RPMs sont créés dans le répertoire ~/rpmbuild/RPMS. Supprimer ces RPM
 
**** Coova-chilli *****
- récupérer le 'tarball' de la dernière version de coova-chilli.
- Le décompresser dans un répertoire et lancer la compilation traditionnelle (./configure + make). Cela permet de s'assurer que tout les pré-requis sont bien présents.
- tester l'install en tant que root (make install). Tout est dans /usr/local/sbin|etc|share|... désinstaller par "make uninstall"
- copier le tarball dans ~/rpmbuild/SOURCES/
### pour versions antérieures à 1.2.5 de coova ####
- récupérer le .spec de la version 1.2.5 et l'adaptater (version, packager, commentaires, etc.) + commenter
- la ligne 104 ('--with-openssl \') : on n'a pas besoin du support openssl (la compil avec openssl ne fonctionne pas. On supprime openssl car dans ALCASAR, on passe par apache pour le chiffrement)
- la ligne 171 (affectation des fichiers "header" dans le RPM coova-devel)
- Le patch d'origine de mandriva (1.0.12-linkage_fix.diff) n'est plus nécessaire. Cependant un nouveau doit être appliqué :
- le but est de supprimer l'option de compilation "-Werror" de la ligne "AM CFLAGS" du fichier src/makefile.am (directive spécifiant au compilateur de traiter les warning comme des erreurs).
- copier le makefile.am d'origine en makefile.am.patch et modifier la ligne AM CFLAGS (vers la ligne 15)
- créer le fichier patch unifié en lançant "diff -u makefile.am makefile.am.patch > mon_patch.diff
- copié ce fichier sous rpmbuild/SOURCES avec le nom spécifié dans le .spec
- se positionner dans rpmbuild/SPEC et lancer la génération du RPM (rpmbuild -ba coova-chilli.spec)
### pour version supérieures ou égales à 1.2.6 de coova ####
- copier et adapter le .spec utilisé précédement. Les modifs ont été les suivantes :
- ajouter en première ligne "%define _disable_ld_no_undefined 1"
- pour la version 64b, ajouter 2 lignes intégrant le répertoire "lib64" lors de la suppression des binaires statiques (rm -rf $RPM_BUILD_ROOT/usr/lib/*.la)
- se positionner dans rpmbuild/SPEC et lancer la génération du RPM en supprimant le support ssl (rpmbuild -ba coova-chilli.spec --without ssl)
 
**** HAVP ****
- récupérer le tarball de la dernière version d'HAVP. Le décompresser dans un répertoire et tester la compilation traditionnelle (./configure + make)
- copier ce tarball dans ~/rpmbuild/SOURCES/
- adaptation du fichier .spec (version, packager, commentaires, etc.)
/conf/rpms/rpm-build-howto
1,31 → 1,26
By Rexy
 
Création des RPM spécifiques pour Alcasar
ALCASAR need the following programs that don't be included as RPM in Mageia :
- coovachilli
- havp
- ulogd
 
**** préparation de la structure de création de RPM ***
- installer le paquetage rpm-build
- récupérer le "RPM Source" de la dernière version 'packagée' par mandriva de coova-chilli (dans le répertoire SRPMS du dépôt 'contrib' de la cooker ftp.free.fr/pub/Distributions_Linux/MandrivaLinux/devel/cooker/SRPMS/contrib/release/)
- en tant que root, lancer "urpmi" du paquetage récupéré. Cela permet d'installer les dépendances en terme de biliothèques de développment (*-devel.rpm)
- en tant qu'utilisateur, lancer rpm -i du paquetage récupéré afin d'installer la structure de création du RPM dans ~/rpmbuild
- pour tester cette structure, se positionner dans le répertoire ~/rpmbuild/SPEC/ et lancer la génération du RPM (rpmbuild -ba coova-chilli.spec)
- si tout est ok, les RPMs sont créés dans le répertoire ~/rpmbuild/RPMS. Supprimer ces RPM
This howto explain how to build RPM of these programs in order to keep clean the distribution
 
**** Prepare the RPM creation structure ***
- install the "rpm-build" paquage
- create directories structure in your user home : mkdir -p ~/rpm/{BUILD,BUILDROOT,RPMS/i586,RPMS/x86_64,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
- copy the .rpmmacros file from the ALCASAR archive to your home directory
 
**** Coova-chilli *****
- récupérer le 'tarball' de la dernière version de coova-chilli.
- retrieve the last tarball of coova-chilli. Copy it in the directory ~/rpm/SOURCES/.
- retrieve the last rpm source of coova (coova.src.rpm) from the ALCASAR archive. Install it with the command "rpm -i". This action will retrieve all the devel package need to compile coova (openssl-devel, pcap-devel, etc.)
- copy the SPEC file from the ALCASAR archive to the directory ~/rpm/SPEC
 
- Le décompresser dans un répertoire et lancer la compilation traditionnelle (./configure + make). Cela permet de s'assurer que tout les pré-requis sont bien présents.
- tester l'install en tant que root (make install). Tout est dans /usr/local/sbin|etc|share|... désinstaller par "make uninstall"
- copier le tarball dans ~/rpmbuild/SOURCES/
### pour versions antérieures à 1.2.5 de coova ####
- récupérer le .spec de la version 1.2.5 et l'adaptater (version, packager, commentaires, etc.) + commenter
- la ligne 104 ('--with-openssl \') : on n'a pas besoin du support openssl (la compil avec openssl ne fonctionne pas. On supprime openssl car dans ALCASAR, on passe par apache pour le chiffrement)
- la ligne 171 (affectation des fichiers "header" dans le RPM coova-devel)
- Le patch d'origine de mandriva (1.0.12-linkage_fix.diff) n'est plus nécessaire. Cependant un nouveau doit être appliqué :
- le but est de supprimer l'option de compilation "-Werror" de la ligne "AM CFLAGS" du fichier src/makefile.am (directive spécifiant au compilateur de traiter les warning comme des erreurs).
- copier le makefile.am d'origine en makefile.am.patch et modifier la ligne AM CFLAGS (vers la ligne 15)
- créer le fichier patch unifié en lançant "diff -u makefile.am makefile.am.patch > mon_patch.diff
- copié ce fichier sous rpmbuild/SOURCES avec le nom spécifié dans le .spec
- se positionner dans rpmbuild/SPEC et lancer la génération du RPM (rpmbuild -ba coova-chilli.spec)
### pour version supérieures ou égales à 1.2.6 de coova ####
 
- copier et adapter le .spec utilisé précédement. Les modifs ont été les suivantes :
- ajouter en première ligne "%define _disable_ld_no_undefined 1"
- pour la version 64b, ajouter 2 lignes intégrant le répertoire "lib64" lors de la suppression des binaires statiques (rm -rf $RPM_BUILD_ROOT/usr/lib/*.la)
/scripts/sbin/alcasar-bl.sh
1,4 → 1,5
#/bin/bash
 
# $Id$
 
# alcasar-bl.sh
14,30 → 15,38
private_ip_mask=${private_ip_mask:=192.168.182.1/24}
PRIVATE_IP=`echo $private_ip_mask | cut -d"/" -f1` # ALCASAR LAN IP address
DIR_tmp="/tmp/blacklists"
FILE_tmp="/tmp/fileFilter.txt"
FILE_tmp="/tmp/filesfilter.txt"
FILE_ip_tmp="/tmp/filesipfilter.txt"
DIR_DG="/etc/dansguardian/lists"
DIR_DG_BL="$DIR_DG/blacklists"
BL_CATEGORIES="$DIR_CONF/alcasar-bl-categories"
WL_CATEGORIES="$DIR_CONF/alcasar-wl-categories"
BL_CATEGORIES_ENABLED="$DIR_CONF/alcasar-bl-categories-enabled"
DIR_DNS_FILTER_AVAILABLE="$DIR_CONF/alcasar-dnsfilter-available"
DIR_DNS_FILTER_ENABLED="$DIR_CONF/alcasar-dnsfilter-enabled"
BL_CATEGORIES="$DIR_CONF/alcasar-bl-categories" # list of names of the BL categories
WL_CATEGORIES="$DIR_CONF/alcasar-wl-categories" #' ' WL '
BL_CATEGORIES_ENABLED="$DIR_CONF/alcasar-bl-categories-enabled" # ' ' BL enabled categories
WL_CATEGORIES_ENABLED="$DIR_CONF/alcasar-wl-categories-enabled" # ' ' WL enabled categories
DIR_SHARE="/usr/local/share"
DIR_DNS_BL="$DIR_SHARE/dnsmasq-bl" # all the BL in the DNSMASQ format
DIR_DNS_WL="$DIR_SHARE/dnsmasq-wl" # all the WL ' ' '
DIR_IP_BL="$DIR_SHARE/iptables-bl" # all the IP addresses of the BL
DIR_DNS_BL_ENABLED="$DIR_SHARE/dnsmasq-bl-enabled" # symbolic link to the dnsmasq BL (only enabled categories)
DIR_DNS_WL_ENABLED="$DIR_SHARE/dnsmasq-wl-enabled" # ' ' ' WL ' ' '
DIR_IP_BL_ENABLED="$DIR_SHARE/iptables-bl-enabled" # ' ' ip BL (only enabled categories)
BL_SERVER="dsi.ut-capitole.fr"
SED="/bin/sed -i"
 
# Permet d'activer/désactiver les catégories de la BL
# enable/disable the BL categories
function cat_choice (){
# un peu de ménage
rm -rf $DIR_DNS_FILTER_ENABLED/*
$SED "/\.Include/d" $DIR_DG/bannedsitelist $DIR_DG/bannedurllist
# on adapte le fichier $BL_CATEGORIES au choix de catégorie
$SED "s?^[^#]?#&?g" $BL_CATEGORIES # on commente ce qui ne l'est pas
for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED` # on affecte les catégories à dansguardian et dnsmasq
rm -rf $DIR_DNS_BL_ENABLED $DIR_DNS_WL_ENABLED $DIR_IP_BL_ENABLED # cleaning for dnsmasq and iptables
$SED "/\.Include/d" $DIR_DG/bannedsitelist $DIR_DG/bannedurllist # cleaning for DG
$SED "s?^[^#]?#&?g" $BL_CATEGORIES # cleaning categories file (comment all lines)
mkdir $DIR_DNS_BL_ENABLED $DIR_DNS_WL_ENABLED $DIR_IP_BL_ENABLED
# process the file $BL_CATEGORIES with the choice of categories
for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED`
do
$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
$SED "1i\/etc\/dansguardian\/lists\/blacklists\/$ENABLE_CATEGORIE" $BL_CATEGORIES
ln -s $DIR_DNS_FILTER_AVAILABLE/$ENABLE_CATEGORIE.conf $DIR_DNS_FILTER_ENABLED/$ENABLE_CATEGORIE
echo ".Include<$DIR_DG_BL/$ENABLE_CATEGORIE/domains>" >> $DIR_DG/bannedsitelist # dansguardian s'occupe du contournement par proxy http ;-)
ln -s $DIR_DNS_BL/$ENABLE_CATEGORIE.conf $DIR_DNS_BL_ENABLED/$ENABLE_CATEGORIE
ln -s $DIR_IP_BL/$ENABLE_CATEGORIE $DIR_IP_BL_ENABLED/$ENABLE_CATEGORIE
echo ".Include<$DIR_DG_BL/$ENABLE_CATEGORIE/domains>" >> $DIR_DG/bannedsitelist # we let DG filters domain in order to prevent bypass by proxy http vpn ;-)
echo ".Include<$DIR_DG_BL/$ENABLE_CATEGORIE/urls>" >> $DIR_DG/bannedurllist
done
sort +0.0 -0.2 $BL_CATEGORIES -o $FILE_tmp
53,7 → 62,7
fi
}
function bl_disable (){
rm -rf $DIR_DNS_FILTER_ENABLED/*
rm -rf $DIR_DNS_BL_ENABLED/*
$SED "s/^reportinglevel =.*/reportinglevel = -1/g" /etc/dansguardian/dansguardian.conf
if [ "$PARENT_SCRIPT" != "/usr/local/bin/alcasar-conf.sh" ] # don't launch on install stage
then
83,18 → 92,18
echo "$usage"
exit 0
;;
# activation du filtrage
# enable the filtering
-on | --on)
cat_choice
$SED "s?^DNS_FILTERING.*?DNS_FILTERING=on?g" $CONF_FILE
bl_enable
;;
# désactivation du filtrage
# disable the filtering
-off | --off)
$SED "s?^DNS_FILTERING.*?DNS_FILTERING=off?g" $CONF_FILE
bl_disable
;;
# Récupération de l'archive de la BL Toulouse
# Retrieve Toulouse BL
-download | --download)
rm -rf /tmp/con_ok.html
`/usr/bin/curl $BL_SERVER -# -o /tmp/con_ok.html`
109,8 → 118,9
chown -R apache:apache $DIR_tmp
fi
;;
# Adaptation de la BL de Toulouse à notre structure (dnsmasq + DG)
# Adapt Toulouse BL to our structure (dnsmasq + DG)
-adapt | --adapt)
echo -n "Toulouse BlackList migration process. Please wait : "
if [ -f $DIR_tmp/blacklists.tar.gz ]
then
[ -d $DIR_DG_BL/ossi ] && mv -f $DIR_DG_BL/ossi $DIR_tmp
122,61 → 132,74
chown -R dansguardian:apache $DIR_DG
chmod -R g+w $DIR_DG
fi
rm -f $BL_CATEGORIES $WL_CATEGORIES $DIR_DNS_FILTER_AVAILABLE/*
rm -f $BL_CATEGORIES $WL_CATEGORIES
rm -rf $DIR_DNS_BL $DIR_DNS_WL $DIR_IP_BL
touch $BL_CATEGORIES $WL_CATEGORIES
find $DIR_DG_BL/ -type f -name domains > $FILE_tmp # On récupère le nom des répertoire (catégories)
$SED "s?\/domains??g" $FILE_tmp # On supprime le suffixe "/domains"
for categorie in `cat $FILE_tmp` # creation des deux fichiers de categories (BL / WL)
mkdir $DIR_DNS_BL $DIR_DNS_WL $DIR_IP_BL
find $DIR_DG_BL/ -type f -name domains > $FILE_tmp # retrieve directory name where a domain file exist
$SED "s?\/domains??g" $FILE_tmp # remove "/domains" suffix
for dir_categorie in `cat $FILE_tmp` # create the blackist and the whitelist files
do
if [ -e $categorie/usage ]
categorie=`echo $dir_categorie|cut -d "/" -f6`
categorie_type=`grep -A1 ^NAME:[$' '$'\t']*$categorie $DIR_DG_BL/global_usage | grep ^DEFAULT_TYPE | cut -d":" -f2 | tr -d " \t"`
if [ "$categorie_type" == "white" ]
then
is_whitelist=`grep white $categorie/usage|wc -l`
echo "$dir_categorie" >> $WL_CATEGORIES
echo "$dir_categorie" >> $WL_CATEGORIES_ENABLED # by default all WL are enabled
else
is_whitelist=0 # si le fichier 'usage' n'existe pas, on considère que la catégorie est une BL
echo "$dir_categorie" >> $BL_CATEGORIES
fi
if [ $is_whitelist -eq "0" ]
then
echo "$categorie" >> $BL_CATEGORIES
else
echo "$categorie" >> $WL_CATEGORIES
fi
done
rm -f $FILE_tmp
echo -n "Toulouse BlackList migration process. Please wait : "
for PATH_FILE in `cat $BL_CATEGORIES` # pour chaque catégorie
# Creation of DNSMASQ BL and WL
for LIST in $BL_CATEGORIES $WL_CATEGORIES # for each list (bl and wl)
do
echo -n "."
if [ ! -f $PATH_FILE/urls ] # on crée le fichier 'urls' s'il n'existe pas
then
touch $PATH_FILE/urls
chown dansguardian:apache $PATH_FILE/urls
fi
# suppression des @IP, de caractères acccentués et des lignes commentées
egrep -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $PATH_FILE/domains > $FILE_tmp
$SED "/[äâëêïîöôüû]/d" $FILE_tmp
$SED "/^#.*/d" $FILE_tmp
$SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp # Mise en forme dnsmasq
DOMAINE=`basename $PATH_FILE`
mv $FILE_tmp $DIR_DNS_FILTER_AVAILABLE/$DOMAINE.conf
for PATH_FILE in `cat $LIST` # for each category
do
DOMAINE=`basename $PATH_FILE`
echo -n "$DOMAINE, "
if [ ! -f $PATH_FILE/urls ] # create 'urls' file if it doesn't exist
then
touch $PATH_FILE/urls
chown dansguardian:apache $PATH_FILE/urls
fi
$SED "s/\.\{2,10\}/\./g" $PATH_FILE/domains $PATH_FILE/urls # correct some syntax errors
# retrieve the ip addresses for iptables
egrep "([0-9]{1,3}\.){3}[0-9]{1,3}" $PATH_FILE/domains > $FILE_ip_tmp
# for dnsmask, remove IP addesses, accented characters and commented lines.
egrep -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $PATH_FILE/domains > $FILE_tmp
$SED "/[äâëêïîöôüû]/d" $FILE_tmp
$SED "/^#.*/d" $FILE_tmp
# adapt to the dnsmasq syntax
$SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp
if [ "$LIST" == "$BL_CATEGORIES" ]
then
mv $FILE_tmp $DIR_DNS_BL/$DOMAINE.conf
mv $FILE_ip_tmp $DIR_IP_BL/$DOMAINE
else
mv $FILE_tmp $DIR_DNS_WL/$DOMAINE.conf
fi
done
done
rm -f $FILE_tmp $FILE_ip_tmp
echo
;;
# regénération suite à modification du choix des catégories
# reload when categories are changed
-reload | --reload)
# pour Dansguardian
# for DG
chown -R dansguardian:apache $DIR_DG_BL/ossi
chmod -R g+w $DIR_DG_BL/ossi
cat_choice
# pour dnsmasq (noms de domaine réhabilités)
# for dnsmasq (noms de domaine réhabilités)
if [ `wc -w $DIR_DG/exceptionsitelist|cut -d " " -f1` != "0" ]
then
for i in `cat $DIR_DG/exceptionsitelist`
do
$SED "/$i/d" $DIR_DNS_FILTER_AVAILABLE/*
$SED "/$i/d" $DIR_DNS_BL/*
done
fi
cp -f $DIR_DG_BL/ossi/domains $DIR_DNS_FILTER_AVAILABLE/ossi.conf
$SED "s?.*?address=/&/$PRIVATE_IP?g" $DIR_DNS_FILTER_AVAILABLE/ossi.conf
cp -f $DIR_DG_BL/ossi/domains $DIR_DNS_BL/ossi.conf
$SED "s?.*?address=/&/$PRIVATE_IP?g" $DIR_DNS_BL/ossi.conf
DNS_FILTERING=`grep DNS_FILTERING $CONF_FILE|cut -d"=" -f2` # DNS and URLs filter (on/off)
DNS_FILTERING=${DNS_FILTERING:=off}
if [ $DNS_FILTERING = on ]; then
/scripts/alcasar-conf.sh
192,6 → 192,8
# la catégorie de sites filtrés "ip" n'existe plus
$SED "/\/ip\/urls/d" $DIR_UPDATE/bannedurllist; $SED "/\/ip\/domains/d" $DIR_UPDATE/bannedsitelist
$SED "/blacklists\/ip/d" $DIR_UPDATE/etc/alcasar-bl-categories; $SED "/^ip/d" $DIR_UPDATE/etc/alcasar-bl-categories-enabled
# les bl et wl de dnsmasq sont reconstruites dynamiquement dans /usr/local/share
rm -rf $DIR_UPDATE/etc/alcasar-dnsfilter-enabled $DIR_UPDATE/etc/alcasar-dnsfilter-available
# bing et Youtube sont ajoutés au safesearching
Bing=`grep bing $DIR_UPDATE/urlregexplist | wc -l`
if [ $Bing -ne "1" ]; then