diff --git a/net/dansguardian/Makefile b/net/dansguardian/Makefile new file mode 100644 index 000000000..eefefaa37 --- /dev/null +++ b/net/dansguardian/Makefile @@ -0,0 +1,78 @@ +# +# Copyright (C) 2008-2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=dansguardian +PKG_VERSION:=2.12.0.3 +PKG_RELEASE:=1 + +PKG_LICENSE:=GPL-2.0 +PKG_MAINTAINER:=Luka Perkov + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=@SF/dansguardian +PKG_MD5SUM:=2a88d0392cd28eaec02b7ee727b2e253 + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/uclibc++.mk +include $(INCLUDE_DIR)/package.mk + +define Package/dansguardian + SECTION:=net + DEPENDS:=+libpthread $(CXX_DEPENDS) +zlib + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=DansGuardian + URL:=http://dansguardian.org +endef + +define Package/dansguardian/conffiles +/etc/dansguardian/dansguardianf1.conf +/etc/config/dansguardian +endef + +CONFIGURE_VARS += \ + INCLUDES="" \ + CXXFLAGS="$$$$CXXFLAGS -fno-rtti" \ + LIBS="-lpthread" \ + +define Build/Configure + $(call Build/Configure/Default,\ + --disable-clamav \ + --with-sysconfsubdir=dansguardian \ + --with-proxyuser=root \ + --with-proxygroup=root \ + --disable-pcre \ + ) +endef + +define Package/dansguardian/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dansguardian $(1)/usr/sbin/ + + $(INSTALL_DIR) $(1)/etc + $(CP) $(PKG_INSTALL_DIR)/etc/dansguardian $(1)/etc/ + $(INSTALL_CONF) ./files/dansguardianf1.conf $(1)/etc/dansguardian/dansguardianf1.conf + + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_CONF) ./files/dansguardian.config $(1)/etc/config/dansguardian + + $(INSTALL_DIR) $(1)/usr/share/dansguardian + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/dansguardian/transparent1x1.gif $(1)/usr/share/dansguardian/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/dansguardian/blockedflash.swf $(1)/usr/share/dansguardian/ + + $(INSTALL_DIR) $(1)/usr/share/dansguardian/languages/ukenglish + $(CP) $(PKG_INSTALL_DIR)/usr/share/dansguardian/languages/ukenglish/* $(1)/usr/share/dansguardian/languages/ukenglish/ + + $(INSTALL_DIR) $(1)/etc/init.d/ + $(INSTALL_BIN) ./files/dansguardian.init $(1)/etc/init.d/dansguardian +endef + +$(eval $(call BuildPackage,dansguardian)) diff --git a/net/dansguardian/files/dansguardian.config b/net/dansguardian/files/dansguardian.config new file mode 100644 index 000000000..339a97cf0 --- /dev/null +++ b/net/dansguardian/files/dansguardian.config @@ -0,0 +1,71 @@ +config dansguardian 'dansguardian' + option config_file '/etc/dansguardian/dansguardianf1.conf' + option accessdeniedaddress 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl' + option bannediplist '/etc/dansguardian/lists/bannediplist' + option contentscanexceptions 'off' + option contentscannertimeout '60' + option createlistcachefiles 'on' + option custombannedflashfile '/usr/share/dansguardian/blockedflash.swf' + option custombannedimagefile '/usr/share/dansguardian/transparent1x1.gif' + option deletedownloadedtempfiles 'on' + option downloadmanager '/etc/dansguardian/downloadmanagers/default.conf' + option exceptioniplist '/etc/dansguardian/lists/exceptioniplist' + option filecachedir '/tmp' + option filtergroups '1' + option filtergroupslist '/etc/dansguardian/lists/filtergroupslist' + option filterip '' + option filterports '8080' + option forcequicksearch 'off' + option forwardedfor 'off' + option hexdecodecontent 'off' + option initialtrickledelay '20' + option ipcfilename '/tmp/.dguardianipc' + option ipipcfilename '/tmp/.dguardianipipc' + option languagedir '/usr/share/dansguardian/languages' + option language 'ukenglish' + option logadblocks 'off' + option logchildprocesshandling 'off' + option logclienthostnames 'off' + option logconnectionhandlingerrors 'on' + option logexceptionhits '2' + option logfileformat '1' + option loglevel '2' + option loglocation '/dev/null' + option logsyslog 'on' + option loguseragent 'off' + option maxagechildren '500' + option maxchildren '120' + option maxcontentfilecachescansize '20000' + option maxcontentfiltersize '256' + option maxcontentramcachescansize '2000' + option maxips '0' + option maxsparechildren '32' + option maxuploadsize '-1' + option minchildren '8' + option minsparechildren '4' + option nodaemon 'off' + option nologger 'off' + option nonstandarddelimiter 'on' + option perroomblockingdirectory '/etc/dansguardian/lists/bannedrooms/' + option phrasefiltermode '2' + option prefercachedlists 'off' + option preforkchildren '6' + option preservecase '0' + option proxyip '127.0.0.1' + option proxyport '3128' + option proxytimeout '20' + option recheckreplacedurls 'off' + option reportinglevel '3' + option reverseaddresslookups 'off' + option reverseclientiplookups 'off' + option scancleancache 'on' + option showweightedfound 'on' + option softrestart 'off' + option trickledelay '10' + option urlcacheage '900' + option urlcachenumber '1000' + option urlipcfilename '/tmp/.dguardianurlipc' + option usecustombannedflash 'on' + option usecustombannedimage 'on' + option usexforwardedfor 'off' + option weightedphrasemode '2' diff --git a/net/dansguardian/files/dansguardian.init b/net/dansguardian/files/dansguardian.init new file mode 100644 index 000000000..b23a7fe76 --- /dev/null +++ b/net/dansguardian/files/dansguardian.init @@ -0,0 +1,190 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2015 OpenWrt.org + +START=90 +STOP=10 + +USE_PROCD=1 +PROG=/usr/sbin/dansguardian +CONFIGFILE="/tmp/dansguardian/dansguardian.conf" + +validate_dansguardian_section() { + uci_validate_section dansguardian dansguardian "${1}" \ + 'config_file:string' \ + 'accessdeniedaddress:string' \ + 'bannediplist:string' \ + 'contentscanexceptions:string' \ + 'contentscannertimeout:uinteger' \ + 'createlistcachefiles:string' \ + 'custombannedflashfile:string' \ + 'custombannedimagefile:string' \ + 'deletedownloadedtempfiles:string' \ + 'downloadmanager:string' \ + 'exceptioniplist:string' \ + 'filecachedir:string' \ + 'filtergroups:uinteger' \ + 'filtergroupslist:string' \ + 'filterip:ipaddr' \ + 'filterports:port:8080' \ + 'forcequicksearch:string' \ + 'forwardedfor:string' \ + 'hexdecodecontent:string' \ + 'initialtrickledelay:uinteger' \ + 'ipcfilename:string' \ + 'ipipcfilename:string' \ + 'languagedir:string' \ + 'language:string' \ + 'logadblocks:string' \ + 'logchildprocesshandling:string' \ + 'logclienthostnames:string' \ + 'logconnectionhandlingerrors:string' \ + 'logexceptionhits:range(0,2)' \ + 'logfileformat:range(1,4)' \ + 'loglevel:range(0,3)' \ + 'loglocation:string' \ + 'loguseragent:string' \ + 'maxagechildren:uinteger' \ + 'maxchildren:uinteger' \ + 'maxcontentfilecachescansize:uinteger' \ + 'maxcontentfiltersize:uinteger' \ + 'maxcontentramcachescansize:uinteger' \ + 'maxips:uinteger' \ + 'maxsparechildren:uinteger' \ + 'maxuploadsize:integer' \ + 'minchildren:uinteger' \ + 'minsparechildren:uinteger' \ + 'nodaemon:string' \ + 'nologger:string' \ + 'nonstandarddelimiter:string' \ + 'perroomblockingdirectory:string' \ + 'phrasefiltermode:range(0,3)' \ + 'prefercachedlists:string' \ + 'preforkchildren:uinteger' \ + 'preservecase:range(0,2)' \ + 'proxyip:ipaddr' \ + 'proxyport:port:3128' \ + 'proxytimeout:range(20,30)' \ + 'recheckreplacedurls:string' \ + 'reportinglevel:range(-1,3)' \ + 'reverseaddresslookups:string' \ + 'reverseclientiplookups:string' \ + 'scancleancache:string' \ + 'showweightedfound:string' \ + 'softrestart:string' \ + 'trickledelay:uinteger' \ + 'urlcacheage:uinteger' \ + 'urlcachenumber:uinteger' \ + 'urlipcfilename:string' \ + 'usecustombannedflash:string' \ + 'usecustombannedimage:string' \ + 'usexforwardedfor:string' \ + 'weightedphrasemode:range(0,2)' +} + +start_service() { + local config_file accessdeniedaddress bannediplist contentscanexceptions contentscannertimeout \ + createlistcachefiles custombannedflashfile custombannedimagefile deletedownloadedtempfiles \ + downloadmanager exceptioniplist filecachedir filtergroups filtergroupslist filterip filterports \ + forcequicksearch forwardedfor hexdecodecontent initialtrickledelay ipcfilename ipipcfilename \ + language languagedir logadblocks logchildprocesshandling logclienthostnames logconnectionhandlingerrors \ + logexceptionhits logfileformat loglevel loguseragent maxagechildren maxchildren maxcontentfilecachescansize \ + maxcontentfiltersize maxcontentramcachescansize maxips maxsparechildren maxuploadsize minchildren minsparechildren \ + nodaemon nologger nonstandarddelimiter perroomblockingdirectory phrasefiltermode prefercachedlists preforkchildren \ + preservecase proxyip proxyport proxytimeout recheckreplacedurls reportinglevel reverseaddresslookups \ + reverseclientiplookups scancleancache showweightedfound softrestart trickledelay urlcacheage urlcachenumber \ + urlipcfilename usecustombannedflash usecustombannedimage usexforwardedfor weightedphrasemode + + validate_dansguardian_section dansguardian || { + echo "validation failed" + return 1 + } + + mkdir -p $(dirname $CONFIGFILE) + ln -sf $config_file $(dirname $CONFIGFILE) + + echo "accessdeniedaddress = " $accessdeniedaddress >> $CONFIGFILE + echo "bannediplist = " $bannediplist >> $CONFIGFILE + echo "contentscanexceptions = " $contentscanexceptions >> $CONFIGFILE + echo "contentscannertimeout = " $contentscannertimeout >> $CONFIGFILE + echo "createlistcachefiles = " $createlistcachefiles >> $CONFIGFILE + echo "custombannedflashfile = " $custombannedflashfile >> $CONFIGFILE + echo "custombannedimagefile = " $custombannedimagefile >> $CONFIGFILE + echo "deletedownloadedtempfiles = " $deletedownloadedtempfiles >> $CONFIGFILE + echo "downloadmanager = " $downloadmanager >> $CONFIGFILE + echo "exceptioniplist = " $exceptioniplist >> $CONFIGFILE + echo "filecachedir = " $filecachedir >> $CONFIGFILE + echo "filtergroups = " $filtergroups >> $CONFIGFILE + echo "filtergroupslist = " $filtergroupslist >> $CONFIGFILE + echo "filterip = " $filterip >> $CONFIGFILE + echo "filterports = " $filterports >> $CONFIGFILE + echo "forcequicksearch = " $forcequicksearch >> $CONFIGFILE + echo "forwardedfor = " $forwardedfor >> $CONFIGFILE + echo "hexdecodecontent = " $hexdecodecontent >> $CONFIGFILE + echo "initialtrickledelay = " $initialtrickledelay >> $CONFIGFILE + echo "ipcfilename = " $ipcfilename >> $CONFIGFILE + echo "ipipcfilename = " $ipipcfilename >> $CONFIGFILE + echo "language = " $language >> $CONFIGFILE + echo "languagedir = " $languagedir >> $CONFIGFILE + echo "logadblocks = " $logadblocks >> $CONFIGFILE + echo "logchildprocesshandling = " $logchildprocesshandling >> $CONFIGFILE + echo "logclienthostnames = " $logclienthostnames >> $CONFIGFILE + echo "logconnectionhandlingerrors = " $logconnectionhandlingerrors >> $CONFIGFILE + echo "logexceptionhits = " $logexceptionhits >> $CONFIGFILE + echo "logfileformat = " $logfileformat >> $CONFIGFILE + echo "loglevel = " $loglevel >> $CONFIGFILE + echo "loglocation = " $loglocation >> $CONFIGFILE + echo "loguseragent = " $loguseragent >> $CONFIGFILE + echo "maxagechildren = " $maxagechildren >> $CONFIGFILE + echo "maxchildren = " $maxchildren >> $CONFIGFILE + echo "maxcontentfilecachescansize = " $maxcontentfilecachescansize >> $CONFIGFILE + echo "maxcontentfiltersize = " $maxcontentfiltersize >> $CONFIGFILE + echo "maxcontentramcachescansize = " $maxcontentramcachescansize >> $CONFIGFILE + echo "maxips = " $maxips >> $CONFIGFILE + echo "maxsparechildren = " $maxsparechildren >> $CONFIGFILE + echo "maxuploadsize = " $maxuploadsize >> $CONFIGFILE + echo "minchildren = " $minchildren >> $CONFIGFILE + echo "minsparechildren = " $minsparechildren >> $CONFIGFILE + echo "nodaemon = " $nodaemon >> $CONFIGFILE + echo "nologger = " $nologger >> $CONFIGFILE + echo "nonstandarddelimiter = " $nonstandarddelimiter >> $CONFIGFILE + echo "perroomblockingdirectory = " $perroomblockingdirectory >> $CONFIGFILE + echo "phrasefiltermode = " $phrasefiltermode >> $CONFIGFILE + echo "prefercachedlists = " $prefercachedlists >> $CONFIGFILE + echo "preforkchildren = " $preforkchildren >> $CONFIGFILE + echo "preservecase = " $preservecase >> $CONFIGFILE + echo "proxyip = " $proxyip >> $CONFIGFILE + echo "proxyport = " $proxyport >> $CONFIGFILE + echo "proxytimeout = " $proxytimeout >> $CONFIGFILE + echo "recheckreplacedurls = " $recheckreplacedurls >> $CONFIGFILE + echo "reportinglevel = " $reportinglevel >> $CONFIGFILE + echo "reverseaddresslookups = " $reverseaddresslookups >> $CONFIGFILE + echo "reverseclientiplookups = " $reverseclientiplookups >> $CONFIGFILE + echo "scancleancache = " $scancleancache >> $CONFIGFILE + echo "showweightedfound = " $showweightedfound >> $CONFIGFILE + echo "softrestart = " $softrestart >> $CONFIGFILE + echo "trickledelay = " $trickledelay >> $CONFIGFILE + echo "urlcacheage = " $urlcacheage >> $CONFIGFILE + echo "urlcachenumber = " $urlcachenumber >> $CONFIGFILE + echo "urlipcfilename = " $urlipcfilename >> $CONFIGFILE + echo "usecustombannedflash = " $usecustombannedflash >> $CONFIGFILE + echo "usecustombannedimage = " $usecustombannedimage >> $CONFIGFILE + echo "usexforwardedfor = " $usexforwardedfor >> $CONFIGFILE + echo "weightedphrasemode = " $weightedphrasemode >> $CONFIGFILE + + procd_open_instance + procd_set_param command $PROG -N -c "$CONFIGFILE" + procd_set_param file $CONFIGFILE + procd_set_param respawn + procd_close_instance +} + +stop_service() +{ + dansguardian -s | awk -F':' '{ print $2}' | xargs kill -9 +} + +service_triggers() +{ + procd_add_reload_trigger "dansguardian" + procd_add_validation validate_dansguardian_section +} diff --git a/net/dansguardian/files/dansguardianf1.conf b/net/dansguardian/files/dansguardianf1.conf new file mode 100644 index 000000000..3cf53af1e --- /dev/null +++ b/net/dansguardian/files/dansguardianf1.conf @@ -0,0 +1,348 @@ +# DansGuardian filter group config file for version 2.12.0.0 + + +# Filter group mode +# This option determines whether members of this group have their web access +# unfiltered, filtered, or banned. This mechanism replaces the "banneduserlist" +# and "exceptionuserlist" files from previous versions. +# +# 0 = banned +# 1 = filtered +# 2 = unfiltered (exception) +# +# Only filter groups with a mode of 1 need to define phrase, URL, site, extension, +# mimetype and PICS lists; in other modes, these options are ignored to conserve +# memory. +# +# Defaults to 0 if unspecified. +# Unauthenticated users are treated as being in the first filter group. +groupmode = 1 + +# Filter group name +# Used to fill in the -FILTERGROUP- placeholder in the HTML template file, and to +# name the group in the access logs +# Defaults to empty string +#groupname = '' + +# Content filtering files location +bannedphraselist = '/etc/dansguardian/lists/bannedphraselist' +weightedphraselist = '/etc/dansguardian/lists/weightedphraselist' +exceptionphraselist = '/etc/dansguardian/lists/exceptionphraselist' +bannedsitelist = '/etc/dansguardian/lists/bannedsitelist' +greysitelist = '/etc/dansguardian/lists/greysitelist' +exceptionsitelist = '/etc/dansguardian/lists/exceptionsitelist' +bannedurllist = '/etc/dansguardian/lists/bannedurllist' +greyurllist = '/etc/dansguardian/lists/greyurllist' +exceptionurllist = '/etc/dansguardian/lists/exceptionurllist' +exceptionregexpurllist = '/etc/dansguardian/lists/exceptionregexpurllist' +bannedregexpurllist = '/etc/dansguardian/lists/bannedregexpurllist' +picsfile = '/etc/dansguardian/lists/pics' +contentregexplist = '/etc/dansguardian/lists/contentregexplist' +urlregexplist = '/etc/dansguardian/lists/urlregexplist' + +# Filetype filtering +# +# Blanket download blocking +# If enabled, all files will be blocked, unless they match the +# exceptionextensionlist or exceptionmimetypelist. +# These lists do not override virus scanning. +# Exception lists defined above override all types of filtering, including +# the blanket download block. +# Defaults to disabled. +# (on | off) +# +blockdownloads = off +exceptionextensionlist = '/etc/dansguardian/lists/exceptionextensionlist' +exceptionmimetypelist = '/etc/dansguardian/lists/exceptionmimetypelist' +# +# Use the following lists to block specific kinds of file downloads. +# The two exception lists above can be used to override these. +# +bannedextensionlist = '/etc/dansguardian/lists/bannedextensionlist' +bannedmimetypelist = '/etc/dansguardian/lists/bannedmimetypelist' +# +# In either file filtering mode, the following list can be used to override +# MIME type & extension blocks for particular domains & URLs (trusted download sites). +# +exceptionfilesitelist = '/etc/dansguardian/lists/exceptionfilesitelist' +exceptionfileurllist = '/etc/dansguardian/lists/exceptionfileurllist' + +# Categorise without blocking: +# Supply categorised lists here and the category string shall be logged against +# matching requests, but matching these lists does not perform any filtering +# action. +#logsitelist = '/etc/dansguardian/lists/logsitelist' +#logurllist = '/etc/dansguardian/lists/logurllist' +#logregexpurllist = '/etc/dansguardian/lists/logregexpurllist' + +# Outgoing HTTP header rules: +# Optional lists for blocking based on, and modification of, outgoing HTTP +# request headers. Format for headerregexplist is one modification rule per +# line, similar to content/URL modifications. Format for +# bannedregexpheaderlist is one regular expression per line, with matching +# headers causing a request to be blocked. +# Headers are matched/replaced on a line-by-line basis, not as a contiguous +# block. +# Use for example, to remove cookies or prevent certain user-agents. +headerregexplist = '/etc/dansguardian/lists/headerregexplist' +bannedregexpheaderlist = '/etc/dansguardian/lists/bannedregexpheaderlist' + +# Weighted phrase mode +# Optional; overrides the weightedphrasemode option in dansguardian.conf +# for this particular group. See documentation for supported values in +# that file. +#weightedphrasemode = 0 + +# Naughtiness limit +# This the limit over which the page will be blocked. Each weighted phrase is given +# a value either positive or negative and the values added up. Phrases to do with +# good subjects will have negative values, and bad subjects will have positive +# values. See the weightedphraselist file for examples. +# As a guide: +# 50 is for young children, 100 for old children, 160 for young adults. +naughtynesslimit = 50 + +# Search term blocking +# Search terms can be extracted from search URLs and filtered using the +# bannedphraselist, weightedphraselist and exceptionphraselist, with a separate +# threshold for blocking than that used for normal page content. +# To do this, the first two options below must be enabled. +# +# Search engine regular expression list +# List of regular expressions for matching search engine URLs. It is assumed +# that the search terms themselves will be contained within the first submatch +# of each expression. +#searchengineregexplist = '/etc/dansguardian/lists/searchengineregexplist' +# +# Search term limit +# The limit over which requests will be blocked for containing search terms +# which match the weightedphraselist. This should usually be lower than the +# 'naughtynesslimit' value above, because the amount of text being filtered +# is only a few words, rather than a whole page. +# This option must be uncommented if searchengineregexplist is uncommented. +# A value of 0 here indicates that search terms should be extracted, +# for logging/reporting purposes, but no filtering should be performed +# on the resulting text. +#searchtermlimit = 30 +# +# Search term lists +# If the three lines below are uncommented, search term blocking will use +# the banned, weighted & exception phrases from these lists, instead of using +# the same phrase lists as for page content. This is optional but recommended, +# as weights for individual phrases in the "normal" lists may not be +# appropriate for blocking when those phrases appear in a much smaller block +# of text. +# Please note that all or none of the below should be uncommented, not a +# mixture. +#bannedsearchtermlist = '/etc/dansguardian/lists/bannedsearchtermlist' +#weightedsearchtermlist = '/etc/dansguardian/lists/weightedsearchtermlist' +#exceptionsearchtermlist = '/etc/dansguardian/lists/exceptionsearchtermlist' + +# Category display threshold +# This option only applies to pages blocked by weighted phrase filtering. +# Defines the minimum score that must be accumulated within a particular +# category in order for it to show up on the block pages' category list. +# All categories under which the page scores positively will be logged; those +# that were not displayed to the user appear in brackets. +# +# -1 = display only the highest scoring category +# 0 = display all categories (default) +# > 0 = minimum score for a category to be displayed +categorydisplaythreshold = 0 + +# Embedded URL weighting +# When set to something greater than zero, this option causes URLs embedded within a +# page's HTML (from links, image tags, etc.) to be extracted and checked against the +# bannedsitelist and bannedurllist. Each link to a banned page causes the amount set +# here to be added to the page's weighting. +# The behaviour of this option with regards to multiple occurrences of a site/URL is +# affected by the weightedphrasemode setting. +# +# NB: Currently, this feature uses regular expressions that require the PCRE library. +# As such, it is only available if you compiled DansGuardian with '--enable-pcre=yes'. +# You can check compile-time options by running 'dansguardian -v'. +# +# Set to 0 to disable. +# Defaults to 0. +# WARNING: This option is highly CPU intensive! +embeddedurlweight = 0 + +# Enable PICS rating support +# +# Defaults to disabled +# (on | off) +enablepics = off + +# Temporary Denied Page Bypass +# This provides a link on the denied page to bypass the ban for a few minutes. To be +# secure it uses a random hashed secret generated at daemon startup. You define the +# number of seconds the bypass will function for before the deny will appear again. +# To allow the link on the denied page to appear you will need to edit the template.html +# or dansguardian.pl file for your language. +# 300 = enable for 5 minutes +# 0 = disable ( defaults to 0 ) +# -1 = enable but you require a separate program/CGI to generate a valid link +bypass = 0 + +# Temporary Denied Page Bypass Secret Key +# Rather than generating a random key you can specify one. It must be more than 8 chars. +# '' = generate a random one (recommended and default) +# 'Mary had a little lamb.' = an example +# '76b42abc1cd0fdcaf6e943dcbc93b826' = an example +bypasskey = '' + +# Infection/Scan Error Bypass +# Similar to the 'bypass' setting, but specifically for bypassing files scanned and found +# to be infected, or files that trigger scanner errors - for example, archive types with +# recognised but unsupported compression schemes, or corrupt archives. +# The option specifies the number of seconds for which the bypass link will be valid. +# 300 = enable for 5 minutes +# 0 = disable (default) +# -1 = enable, but require a separate program/CGI to generate a valid link +infectionbypass = 0 + +# Infection/Scan Error Bypass Secret Key +# Same as the 'bypasskey' option, but used for infection bypass mode. +infectionbypasskey = '' + +# Infection/Scan Error Bypass on Scan Errors Only +# Enable this option to allow infectionbypass links only when virus scanning fails, +# not when a file is found to contain a virus. +# on = enable (default and highly recommended) +# off = disable +infectionbypasserrorsonly = on + +# Disable content scanning +# If you enable this option you will disable content scanning for this group. +# Content scanning primarily is AV scanning (if enabled) but could include +# other types. +# (on|off) default = off. +disablecontentscan = off + +# Enable Deep URL Analysis +# When enabled, DG looks for URLs within URLs, checking against the bannedsitelist and +# bannedurllist. This can be used, for example, to block images originating from banned +# sites from appearing in Google Images search results, as the original URLs are +# embedded in the thumbnail GET requests. +# (on|off) default = off +deepurlanalysis = off + +# reportinglevel +# +# -1 = log, but do not block - Stealth mode +# 0 = just say 'Access Denied' +# 1 = report why but not what denied phrase +# 2 = report fully +# 3 = use HTML template file (accessdeniedaddress ignored) - recommended +# +# If defined, this overrides the global setting in dansguardian.conf for +# members of this filter group. +# +#reportinglevel = 3 + +# accessdeniedaddress is the address of your web server to which the cgi +# dansguardian reporting script was copied. Only used in reporting levels +# 1 and 2. +# +# This webserver must be either: +# 1. Non-proxied. Either a machine on the local network, or listed as an +# exception in your browser's proxy configuration. +# 2. Added to the exceptionsitelist. Option 1 is preferable; this option is +# only for users using both transparent proxying and a non-local server +# to host this script. +# +# If defined, this overrides the global setting in dansguardian.conf for +# members of this filter group. +# +#accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl' + +# HTML Template override +# If defined, this specifies a custom HTML template file for members of this +# filter group, overriding the global setting in dansguardian.conf. This is +# only used in reporting level 3. +# +# The default template file path is //template.html +# e.g. /usr/share/dansguardian/languages/ukenglish/template.html when using 'ukenglish' +# language. +# +# This option generates a file path of the form: +# // +# e.g. /usr/share/dansguardian/languages/ukenglish/custom.html +# +#htmltemplate = 'custom.html' + +# Email reporting - original patch by J. Gauthier + +# Use SMTP +# If on, will enable system wide events to be reported by email. +# need to configure mail program (see 'mailer' in global config) +# and email recipients +# default usesmtp = off +#!! Not compiled !!usesmtp = off + +# mailfrom +# who the email would come from +# example: mailfrom = 'dansguardian@mycompany.com' +#!! Not compiled !!mailfrom = '' + +# avadmin +# who the virus emails go to (if notify av is on) +# example: avadmin = 'admin@mycompany.com' +#!! Not compiled !!avadmin = '' + +# contentdmin +# who the content emails go to (when thresholds are exceeded) +# and contentnotify is on +# example: contentadmin = 'admin@mycompany.com' +#!! Not compiled !!contentadmin = '' + +# avsubject +# Subject of the email sent when a virus is caught. +# only applicable if notifyav is on +# default avsubject = 'dansguardian virus block' +#!! Not compiled !!avsubject = 'dansguardian virus block' + +# content +# Subject of the email sent when violation thresholds are exceeded +# default contentsubject = 'dansguardian violation' +#!! Not compiled !!contentsubject = 'dansguardian violation' + +# notifyAV +# This will send a notification, if usesmtp/notifyav is on, any time an +# infection is found. +# Important: If this option is off, viruses will still be recorded like a +# content infraction. +#!! Not compiled !!notifyav = off + +# notifycontent +# This will send a notification, if usesmtp is on, based on thresholds +# below +#!! Not compiled !!notifycontent = off + +# thresholdbyuser +# results are only predictable with user authenticated configs +# if enabled the violation/threshold count is kept track of by the user +#!! Not compiled !!thresholdbyuser = off + +#violations +# number of violations before notification +# setting to 0 will never trigger a notification +#!! Not compiled !!violations = 0 + +#threshold +# this is in seconds. If 'violations' occur in 'threshold' seconds, then +# a notification is made. +# if this is set to 0, then whenever the set number of violations are made a +# notifaction will be sent. +#!! Not compiled !!threshold = 0 + +#SSL certificate checking +# Check that ssl certificates for servers on https connections are valid +# and signed by a ca in the configured path +sslcertcheck = off + +#SSL man in the middle +# Forge ssl certificates for all sites, decrypt the data then re encrypt it +# using a different private key. Used to filter ssl sites +sslmitm = off + diff --git a/net/dansguardian/patches/001-compile.patch b/net/dansguardian/patches/001-compile.patch new file mode 100644 index 000000000..db8efa43a --- /dev/null +++ b/net/dansguardian/patches/001-compile.patch @@ -0,0 +1,29 @@ +--- a/configure ++++ b/configure +@@ -827,7 +827,7 @@ sysconfdir='${prefix}/etc' + sharedstatedir='${prefix}/com' + localstatedir='${prefix}/var' + includedir='${prefix}/include' +-oldincludedir='/usr/include' ++oldincludedir='${prefix}/usr/include' + docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' + infodir='${datarootdir}/info' + htmldir='${docdir}' +@@ -5265,7 +5265,7 @@ $as_echo_n "checking for zlib... " >&6; + # Check whether --with-zlib was given. + if test "${with_zlib+set}" = set; then : + withval=$with_zlib; # check for header & func (in library) in given prefix +- CPPFLAGS="${CPPFLAGS} -I${withval}/include" ++ CPPFLAGS="${CPPFLAGS}" + if test "x$staticzlib" = "xtrue"; then + LIBS="-Bstatic -L${withval} -lz -Bdynamic ${LIBS}" + else +@@ -7095,7 +7095,7 @@ $as_echo "#define ENABLE_NTLM /**/" >>co + if test "${with_libiconv+set}" = set; then : + withval=$with_libiconv; # check for header & func (in library) in given prefix + if test "x$withval" != "x"; then +- CPPFLAGS="${CPPFLAGS} -I${withval}/include" ++ CPPFLAGS="${CPPFLAGS}" + LIBS="-L${withval}/lib -liconv ${LIBS}" + else + LIBS="-liconv ${LIBS}"