/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 |