Page 1 sur 1

[réseau] adsuck, un DNS filtrant.

Publié : jeu. 25 févr. 2010, 23:14
par mimas
Mon paquet pour adsuck. Les md5sums sont à changer car des fichiers sont perso. (fichier hosts et filter) ou non fournis (cf hosts qui fait plusieurs mégas).

Il y a du travail à fournir pour que le PKGBUILD soit opérationnel sans interventions de la part de l'utilisateur (/etc/resolv.conf devant utiliser 127.0.0.1 et modification ad-hoc du resolv.conf utilisé par adsuck). Je poste ça comme réponse possible à http://forums.archlinux.fr/topic5570.html

Si le cœur vous en dit de le perfectionner...

---
Adsuck peut aussi être utilisé en liste blanche.

Ça fonctionne pour l'ensemble des programmes installés sur la machine,
---
PKGBUILD

Code : Tout sélectionner

# Mimas <mimasgpc+pkgbuild@free.fr>
pkgname=adsuck
pkgver=1.7
pkgrel=1
pkgdesc="DNS filter"
arch=('i686' 'x86_64')
url=http://www.peereboom.us/adsuck/
license=('BSD')
depends=('ldns')
install=adsuck.install
source=(http://www.peereboom.us/adsuck/snapshot/$pkgname-$pkgver.tgz
        filter hosts resolv.conf adsuck.rc)
md5sums=('b1a0b138409ed7fad37ddefc583e7ff4'
         'b73333fe7bc2f92280fd30cbca179e43'
         '7f5f2402d41dda50f013bd309159eb8c'
         '5e8fa98c37069eccde9765b7e3457bd9'
         '773708e7108c490671840fb39d71f157')

build() {
  cd $srcdir/$pkgname-$pkgver
  make || return 1
  install -D -m700 adsuck $pkgdir/usr/sbin/adsuck

  install -D -m644 ../filter $pkgdir/var/adsuck/filter
  install -D -m644 ../hosts $pkgdir/var/adsuck/hosts
  install -D -m644 ../resolv.conf $pkgdir/var/adsuck/resolv.conf
  install -D -m755 ../adsuck.rc $pkgdir/etc/rc.d/adsuck
}
adsuck.rc

Code : Tout sélectionner

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID=$(pidof -o %PPID /usr/sbin/adsuck)
PARAM="-c /var/adsuck -f /resolv.conf -r /filter /hosts"

case $1 in
start)
	stat_busy "Starting Adsuck Daemon"

	if [[ -z $PID ]] && /usr/sbin/adsuck $PARAM; then
		PID=$(pidof -o %PPID /usr/sbin/adsuck)
		echo "$PID" > /var/run/adsuck.pid
		add_daemon adsuck
		stat_done
	else
		stat_fail
		exit 1
	fi
	;;

stop)
	stat_busy "Stopping Adsuck Daemon"
	if [[ ! -z $PID ]]  && kill "$PID" &>/dev/null; then
		rm_daemon adsuck
		stat_done
	else
		stat_fail
		exit 1
	fi
	;;

restart)
	$0 stop
	$0 start
	;;

*)
	echo "Usage: $0 {start|stop|restart}" >&2
	exit 1

esac
adsuck.install

Code : Tout sélectionner

post_install() {
  if [ ! `egrep '^_adsuck:' /etc/group` ]; then
    echo "Adding adsuck group"
    groupadd _adsuck
  fi

  if [ ! `egrep '^_adsuck:' /etc/passwd` ]; then
    echo "Adding adsuck user"
    useradd -g _adsuck -s /bin/false _adsuck
  fi
}

post_upgrade() {
  post_install $1
}

pre_remove() {
  echo "Removing adsuck user and group"
  userdel _adsuck &> /dev/null
  groupdel _adsuck &> /dev/null
}

op=$1
shift

$op $*
filters (à personnaliser)

Code : Tout sélectionner

# computer names
^count(er)?[0-9]+?\.
^banners?[0-9]+?\.
^ad(s|srv|serv|serve|server|v|vert)?[0-9]+?\.
^clicks?\.
^[a-z][0-9]+\.[a-z]\.akamaiedge\.net
^[a-z][0-9]+\.[a-z]\.akastream\.net
^[a-z][0-9]+\.[a-z]\.akamaitech\.net
^[a-z][0-9]+\.[a-z]\.a\.yimg\.com
^[a-z][0-9]+\.[a-z]\.ak\.nbci\.com
^pub[0-9]\.
^stats\.
^s[0-9]\.sitemeter\.com
^s[0-9]\.cnzz\.com
^track(er|ing)?\.
^u.*\.spylog\.com
# domains
247realmedia\.com
\.2o7\.net
advserv
adbrite
adbureau\.net
adultfriendfinder\.com
adtech\.com$
casalemedia
clickbank
clickzs\.com$
cybermonitor\.com
cqcounter\.com
liveadvert
dynamic\.dol\.ru
doubleclick
erasercash
fastclick
google-analytics.com
googleadservices\.com
googlesyndication.com
hit-parade\.com
hitbox
hittail\.com
justcounter\.com
netaffiliation\.com
paycount
promobenef\.com
\.seekmo\.com
statcounter
smartadserver
thecounter
tradedoubler
valuead\.com$
valueclick
sex-?tracker
sexbank
weborama
xclicks
\.xiti\.com
xxxcounter
\.zango\.com
\.zedo\.com
resolv.conf (à adapter)

Code : Tout sélectionner

nameserver 192.168.0.1
hosts (à adapter)

Un fichier hosts récupéré sur un de ces sites fournissant des fichiers hosts antipub.

Re: [réseau] adsuck, un DNS filtrant.

Publié : ven. 26 févr. 2010, 09:53
par gyo
Ah, intéressant ça, une solution bien KISS et plus puissante qu’un gros host statique redondant.

Quoique, en regardant de plus près je n'ai pas très bien compris pourquoi, en plus des filtres, il faut aussi un hosts antipub, le fichier filters n'est pas suffisant ?

Sinon, je crois que le dump de ton fichier adsuck.install est celui de adsuck.rc…

Re: [réseau] adsuck, un DNS filtrant.

Publié : ven. 26 févr. 2010, 12:27
par mimas
Voilà, c'est corrigé. En plus j'aurais dû poster dans la section packages. Pas vraiment réveillé pour le coup.

Oui, on pourrait se contenter des filtres d'expressions régulières, à mon avis c'est le plus pertinent si on utilise adsuck pour gérer une liste blanche. Pour un dns filtrant, ça me semble important d'avoir les deux types de filtres. J'ai écrit un petit programme qui teste si les entrées du fichier host téléchargé correspondent à une exp. reg. et donne un fichier host allégé.

Re: [réseau] adsuck, un DNS filtrant.

Publié : mar. 27 avr. 2010, 00:51
par rafmav
ça tourne ou c'est adaptable avec pdns ?

Re: [réseau] adsuck, un DNS filtrant.

Publié : sam. 29 mai 2010, 12:21
par barikoh
salut,

tu pourrais mettre ton paquet adsuck sur AUR , s'il te plait ? Merci ! :o :D