<?php //http://cri.univ-tlse1.fr/blacklists/index_en.php require_once('config.inc'); require("guiconfig.inc"); include("head.inc"); //set the config as a global variable global $config; //create a category blacklist array $category['abortion'] = 'Abortion information excluding when related to religion'; $category['ads'] = 'Advert servers and banned URLs'; $category['adult'] = 'Sites containing adult material such as swearing but not porn'; $category['aggressive'] = 'Similar to violence but more promoting than depicting'; $category['antispyware'] = 'Sites that remove spyware'; $category['artnudes'] = 'Art sites containing artistic nudity'; $category['astrology'] = 'Astrology websites'; $category['audio-video'] = 'Sites with audio or video downloads'; $category['banking'] = 'Banking websites'; $category['beer'] = 'Sites with information on beer or liquors'; $category['blog'] = 'Journal/Diary websites'; $category['cellphones'] = 'Stuff for mobile/cell phones'; $category['chat'] = 'Sites with chat rooms etc'; $category['childcare'] = 'Sites to do with childcare'; //$category['cleaning'] = 'Sites to do with cleaning'; //$category['clothing'] = 'Sites about and selling clothing'; $category['contraception'] = 'Information about contraception'; //$category['culinary'] = 'Sites about cooking et al'; $category['dating'] = 'Sites about dating'; $category['desktopsillies'] = 'Sites containing screen savers, backgrounds, cursers, pointers, and themes'; $category['dialers'] = 'Sites with dialers such as those for pornography or trojans'; $category['drugs'] = 'Drug related sites'; $category['ecommerce'] = 'Sites that provide online shopping'; $category['entertainment'] = 'Sites that promote movies, books, magazine, humor'; $category['filehosting'] = 'Sites to do with filehosting'; //$category['frencheducation'] = 'Sites to do with french education'; $category['gambling'] = 'Gambling sites including stocks and shares'; $category['games'] = 'Game related sites'; //$category['gardening'] = 'Gardening sites'; $category['government'] = 'Military and schools etc'; //$category['guns'] = 'Sites with guns'; $category['hacking'] = 'Hacking/cracking information'; //$category['homerepair'] = 'Sites about home repair'; //$category['hygiene'] = 'Sites about hygiene and other personal grooming related stuff'; $category['instantmessaging'] = 'Sites that contain messenger client download and web-based messaging sites'; //$category['jewelry'] = 'Sites about and selling jewelry'; $category['jobsearch'] = 'Sites for finding jobs'; $category['kidstimewasting'] = 'Sites kids often waste time on'; $category['mail'] = 'Webmail and email sites'; $category['marketingware'] = 'Sites about marketing products'; $category['medical'] = 'Medical websites'; $category['mixed_adult'] = 'Mixed adult content sites'; $category['mobile-phone'] = 'Sites to do with mobile phones'; $category['naturism'] = 'Sites that contain nude pictures and/or promote a nude lifestyle'; $category['news'] = 'News sites'; $category['onlineauctions'] = 'Online auctions'; $category['onlinegames'] = 'Online gaming sites'; $category['onlinepayment'] = 'Online payment sites'; $category['personalfinance'] = 'Personal finance sites'; //$category['pets'] = 'Pet sites'; $category['phishing'] = 'Sites attempting to trick people into giving out private information.'; $category['porn'] = 'Pornography'; $category['proxy'] = 'Sites with proxies to bypass filters'; $category['radio'] = 'non-news related radio and television'; $category['ringtones'] = 'Sites containing ring tones, games, pictures and other'; $category['searchengines'] = 'Search engines such as google'; $category['sect'] = 'Sites about religious groups'; $category['sexuality'] = 'Sites dedicated to sexuality, possibly including adult material'; $category['shopping'] = 'Shopping sites'; $category['socialnetworking'] = 'Social networking websites'; $category['sportnews'] = 'Sport news sites'; $category['sports'] = 'All sport sites'; $category['spyware'] = 'Sites who run or have spyware software to download'; $category['updatesites'] = 'Sites where software updates are downloaded from including virus sigs'; $category['vacation'] = 'Sites about going on holiday'; $category['violence'] = 'Sites containing violence'; $category['virusinfected'] = 'Sites who host virus infected files'; $category['warez'] = 'Sites with illegal pirate software'; $category['weather'] = 'Weather news sites and weather related'; //$category['weapons'] = 'Sites detailing or selling weapons'; $category['webmail'] = 'Just webmail sites'; //get line count for domains list function line_number ($file) { $result = trim(exec("wc -l $file")); $result_array = explode (" ", $result); return $result_array[0]; } //print_r($_POST); //$x = 0; //foreach($_POST['blacklist'] as $value) { //$blacklist[$x]['name'] = $val; //$blacklist[$value] = 'zzz'; //echo "\$category[\$x]['name'] = '$val';<br>"; //echo "\$category['$value'] = 'zzz'; <br/>\n"; //$x++; //} //unset($x); //echo "<pre>"; //print_r($_POST["blacklist"]); //echo "</pre>"; //foreach($_POST["blacklist"] as $key => $value) { //echo "name: ".$value."<br />"; //$x++; //} if (count($_POST)>0) { $dnsmasqfile = "/usr/local/etc/dnsmasq.conf"; $targetfile = "/usr/local/etc/dnsmasq.blacklist.conf"; $includestring = "conf-file=/usr/local/etc/dnsmasq.blacklist.conf"; $dnsmasqconf = "/usr/local/etc/dnsmasq.conf"; //clear previous values foreach($category as $key => $value) { $config['installedpackages']['dnsblacklist']['config'][0][$key] = ''; } if ($_POST['enable'] == 1) { //echo "enabled"; $config['installedpackages']['dnsblacklist_settings']['config'][0]['enable'] = 1; } else { //echo "disabled"; $config['installedpackages']['dnsblacklist_settings']['config'][0]['enable'] = 0; } //add the include entry for dnsmasq.blacklist.conf to dnsmasq.conf if (file_exists($dnsmasqfile)) { $getdnsmasq = file_get_contents($dnsmasqfile); if(stristr($getdnsmasq,'conf-file=/usr/local/etc/dnsmasq.blacklist.conf') === TRUE) { //include found no need to add it } else { $myfhandle = fopen($dnsmasqconf, 'r+'); fwrite($myfhandle, $includestring); fclose($myfhandle); } } else { $my2fhandle = fopen($dnsmasqconf, 'x+'); fwrite($my2fhandle, $includestring); fclose($my2fhandle); } //truncate the dnsmasq.blacklist.conf file if (file_exists($targetfile)) { $fh = fopen($targetfile, 'w'); fclose($fh); } //build the dnsmasq.blacklist.conf if (count($_POST["blacklist"]) > 0) { foreach($_POST["blacklist"] as $value) { //set the current selected values $blackfile = "blacklists/$value/domains"; $config['installedpackages']['dnsblacklist']['config'][0][$value] = 1; //if enabled write the selected categories to the dnsmasq.blacklist.conf if ($config['installedpackages']['dnsblacklist_settings']['config'][0]['enable'] == 1) { $fh2 = fopen($targetfile, 'a'); $fh = fopen($blackfile,'r'); while($line=fgets($fh)) { fwrite($fh2, "address=/" .trim($line). "/74.125.45.100". "\n"); } fclose($fh); fclose($fh2); } } } write_config(); services_dnsmasq_configure(); sleep(1); $savemsg_dnsb = "DNS Blacklist settings have been saved."; } ?> <?php include("fbegin.inc"); ?> <p class="pgtitle">Services: DNS Blacklist</p> <form method=POST action=""> <?php if ($config['installedpackages']['dnsblacklist_settings']['config'][0]['enable'] == 1) { echo "<input name='enable' type='checkbox' value='1' checked>\n"; } else { echo "<input name='enable' type='checkbox' value='1'>\n"; } ?> <strong>Enable DNS Blacklist</strong><br><br> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td class="tabcont" > <?php if ($savemsg_dnsb) print_info_box($savemsg_dnsb); ?> Below is a scroll-box filled with categories you can select to be added to your blacklist. <br><br> Each category has a list of known domains/sites that will be denied access by users of this network. <br><br><i>(Note: Using all categories at once will require 300Mb of free memory. The <b>adult</b> and <b>porn</b> categories are rather memory intensive, requiring 200Mb together.)</i> <br><br><br> function ListFiles($dir) { if($dh = opendir($dir)) { $files = Array(); $inner_files = Array(); while($file = readdir($dh)) { if($file != "." && $file != ".." && $file[0] != '.') { if(is_dir($dir . "/" . $file)) { array_push($files, $dir); //$inner_files = ListFiles($dir . "/" . $file); //if(is_array($inner_files)) $files = array_merge($files, $inner_files); } else { //array_push($files, $dir . "/" . $file); } } } closedir($dh); return $files; } } foreach (ListFiles('/usr/local/www/packages/dnsblacklist/') as $key=>$file){ echo $file ."<br />\n"; } <div style="height:340px;width:680px;overflow:scroll;"> <?php /* echo "<table>\n"; foreach($category as $key => $value) { $domain_count = line_number("blacklists/$key/domains"); //echo "name: ".$key."<br />"; echo "<tr>\n"; if ($config['installedpackages']['dnsblacklist']['config'][0][$key] == 1) { // echo "<td><input type='checkbox' name='blacklist[]' value='$key' checked /></td><td><strong>$key<strong></td><td>$value</td><td><i>($domain_count domains)</i></td>\n"; } else { // echo " <td><input type='checkbox' name='blacklist[]' value='$key' /></td><td><strong>$key</strong></td><td>$value</td><td><i>($domain_count domains)</i></td>\n"; } echo "</tr>\n"; $x++; } echo "</table>\n"; */ ?> </div> <br /> <br /> <!-- Select a category to edit: --> <?php ////$tmp_category = array(1=> "Edit Category", ); ////$tmp_category = str_replace(" ", " ", $category); //echo "<SELECT name=category>\n"; //foreach($category as $key => $value) { // echo "<OPTION value='".$key."'>".$key."</option>\n"; // $x++; //} //echo "</select>\n"; ?> <!-- or <u>Add your own domains</u> <i>(Coming Soon)</i> <br /> <br /> --> <input type="submit" value="Save"> </td> </tr> </table> </form> <?php include("fend.inc"); ?> </body> </html>