Exploitation du fichier de logs de Unbound

Je me sers de Unbound comme cache DNS. Ce logiciel Open Source qui s’exécute aussi bien sous Linux que sous Windows offre la possibilité de gérer une blacklist. Toutes les machines de mon réseau local passent par ce serveur DNS et, du coup, nous économisons beaucoup de notre bande passante !

Loguer l’activité de Unbound

Depuis plusieurs mois, j’ai décidé de loguer l’activité de Unbound, de manière à enrichir ma blacklist et gérer mes containers dans Firefox. J’ai ajouté à la section server du fichier de configuration unbound.conf les directives suivantes :

verbosity: 0
logfile: "E:\unbound.log"
log-replies: yes
log-time-ascii: yes
log-queries: yes

Exploiter les logs de Unbound

Comme ma station de travail est sous Windows, j’ai fait un script PowerShell pour extraire les noms de domaines de ce fichier :

Clear
#Récupération du contenu du fichier de log
$fic=Get-Content -Path 'E:\unbound.log'|Select-String -Pattern 'A{1,4} IN NOERROR 0.[0-9]{6} 0 [0-9]{1,3}'
#Extraction des noms de domaines et chargement des données dans le tableau $res
$res=@()
ForEach($line in $fic)
{
  If($line -match "[a-z0-9\.\-]+\.[a-z]+\.")
  {
    $tmp=$Matches[0]
    $res+=[PSCustomObject] @{domaine=$tmp.Substring(0,$tmp.Length-1)}
  }
}
$res=$res|Sort -Property domaine -Unique
$res|Out-GridView

Exploitation du fichier de logs de Unbound

Scripting  / Cache Dns Dns Unbound 

Commentaires

Bonjour,

Je suis sous debian 9 ( distrib bunsenlabs ).

j’ai configuré unbound avec une liste de sites que je « refuse », ainsi, j’ai le « num.answer.rcode.REFUSED » dans les stats, avec le total refusé.

J’ai configuré les stats en « cumulative » et avec les détails. ( statistics-cumulative: yes et log-replies: yes et log-queries: yes )

Je souhaite exploiter ces informations pour connaître le total par site afin d’alléger la liste, en ôtant ceux qui ne sont quasiment pas exploités, car ma machine est vétuste et encaisse mal la charge.

Auriez-vous une idée ou une piste de recherche à me suggérer ?

Pour l’instant, je ne parviens pas à trouver la trace de ces sites refusées. J’ai cherché la mention « refused » dans le log, sans succès …

J’ai mis verbosity: 3 pour voir. Toujours rien …

Sinon, connaissez-vous un autre outil que ce « unbound » qui pourrait combler les attentes en terme de statistiques, afin d’exploiter les fruits de son travail en vue d’alléger la charge mémoire ?

Je vous remercie pour le partage de vos connaissances.

Cordialement.

Exemple de domaine bloqué dans les logs de unbound :

20/10/2018 13:34:45 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d xiti.com. A IN
20/10/2018 13:34:45 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d xiti.com. A IN NXDOMAIN 0.000000 1 26
20/10/2018 13:34:45 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d xiti.com. AAAA IN
20/10/2018 13:34:45 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d xiti.com. AAAA IN NXDOMAIN 0.000000 1 26
20/10/2018 13:34:46 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d www.xiti.com. A IN
20/10/2018 13:34:46 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d www.xiti.com. A IN NXDOMAIN 0.000000 1 30
20/10/2018 13:34:46 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d www.xiti.com. AAAA IN
20/10/2018 13:34:46 C:\Program Files\Unbound\unbound.exe[5020:2] info: fe80::d19a:961b:2342:4f3d www.xiti.com. AAAA IN NXDOMAIN 0.000000 1 30

Le nombre après NXDOMAIN est à 0.

Bonjour et merci pour votre réponse.

ma liste de blocage est de la forme suivante :
————————-

local-zone: « platform.twitter.com » refuse
local-zone: « 122.2o7.net » refuse
local-zone: « 168logger.com » refuse
local-zone: « 2mdn.net » refuse
local-zone: « 360yield.com » refuse
local-zone: « 3gl.net » refuse
local-zone: « a2dfp.net » refuse

————————-

J’ai mis « refuse » car je pensais pouvoir exploiter plus facilement le rcode « REFUSED » dans les logs, mais c’est sans succès. Pourtant , les stats m’indiquent :  » num.answer.rcode.REFUSED=516  » .

J’ai cherché dans le log  » NXDOMAIN 0″ comme vous l’indiquez, et je n’ai aucune réponse.
Or, j’ai aussi  » num.answer.rcode.NXDOMAIN=35″ dans les stats, donc je devrais trouver  » NXDOMAIN 0″ dans le log …

J’avoue être perdu.

Pour info., voici la forme de mon log avec verbosity à 1

———————

Oct 20 13:42:04 unbound[1086:0] info: 127.0.0.1 feeding.cloud.geek.nz. A IN
Oct 20 13:42:04 unbound[1086:0] info: 127.0.0.1 fonts.googleapis.com. A IN
Oct 20 13:42:05 unbound[1086:0] info: 127.0.0.1 http://www.dsfc.net. A IN
Oct 20 13:42:05 unbound[1086:0] info: 127.0.0.1 www1.zonewebmaster.eu. A IN
Oct 20 13:42:05 unbound[1086:1] info: 127.0.0.1 assets.gentoo.org. A IN
Oct 20 13:42:06 unbound[1086:0] info: 127.0.0.1 ocsp.int-x3.letsencrypt.org. A IN
Oct 20 13:42:06 unbound[1086:1] info: 127.0.0.1 fmarier.org. A IN
Oct 20 13:42:06 unbound[1086:1] info: 127.0.0.1 http://www.gentoo.org. A IN
Oct 20 13:42:27 unbound[1086:0] info: 127.0.0.1 id.google.com. A IN
Oct 20 13:42:27 unbound[1086:1] info: 127.0.0.1 http://www.gstatic.com. A IN
Oct 20 13:42:38 unbound[1086:0] info: 127.0.0.1 apis.google.com. A IN
Oct 20 13:42:38 unbound[1086:0] info: 127.0.0.1 ogs.google.com. A IN
Oct 20 13:42:38 unbound[1086:1] info: 127.0.0.1 notifications.google.com. A IN
Oct 20 13:42:38 unbound[1086:1] info: 127.0.0.1 ssl.google-analytics.com. A IN

——————-

La version installée est :

unbound/stable,stable-updates,now 1.6.0-3+deb9u1 i386 [installé]

—————

Après 1 heure …

J’ai trouvé ! J’avais été contraint d’ôter  » log-replies=yes  » dans le fichier de configuration « unbound.conf » car lorsque j’avais testé le fichier de config avec la commande :

 » unbound-checkconf /etc/unbound/unbound.conf  »

j’obtenais 3 messages d’erreur comme suit :

/etc/unbound/unbound.conf:23: error: unknown keyword ‘log-replies’
/etc/unbound/unbound.conf:23: error: stray ‘:’
/etc/unbound/unbound.conf:23: error: unknown keyword ‘yes’

A priori, la fonctionnalité ne semble pas installée. J’ai installé unbound via le système de paquets debian.

Je crains de devoir abandonner.

Encore merci pour votre réponse et bonne continuation.

@Victor

Ce n’est pas « refuse », mais « static ». J’ai donné un exemple en lien dans l’article ! Cliquez ici.

Oui Denis, j’entends bien. J’ai bien vu que vous aviez paramétré avec « static », mais de toutes façons, je n’ai aucun retour détaillé concernant les réponses aux requêtes, comme vous pouvez le voir avec l’exemple de log que j’ai posté.

Par conséquent, quoi que je décide de paramétrer,  » static » ou « refuse » , je ne sais pas, comment sont traités les requêtes via le log, car je n’ai pas le retour de « log-replies » puisqu’il n’accepte pas que je le paramètre avec cette entrée.

Donc, je n’ai rien derrière la ligne :

Oct 20 13:42:04 unbound[1086:0] info: 127.0.0.1 feeding.cloud.geek.nz. A IN

Il n’y a jamais rien après « IN » qui pourrait me dire de quelle façon le site a été traité par unbound, quoi que je fasse, même avec « static ».

J’avais mis « static » avant car j’avais recopié exactement à l’identique votre liste, puis en parcourant plus avant la documentation, j’avais changé pour « refuse ». Ainsi, j’avais un résumé rapide grâce à la commande :

sudo unbound-control stats_noreset

entres autres, sous la suivantes :

num.answer.rcode.NOERROR=2433
num.answer.rcode.FORMERR=0
num.answer.rcode.SERVFAIL=12
num.answer.rcode.NXDOMAIN=149
num.answer.rcode.NOTIMPL=0
num.answer.rcode.REFUSED=0
num.answer.rcode.nodata=155

En passant de « static » à « refuse » dans le paramétrage de la liste de blocage, le log n’a pas évolué de façon à voir quoi que ce soit d’exploitable après la valeur  » IN « . Seules les stats sont plus parlantes grâce au total des sites bloqués. Dans l’exemple fourni ci-dessus, j’ai désactivé la liste, donc c’est normal d’avoir num.answer.rcode.REFUSED=0.

Mais vous voyez que j’ai aussi  » num.answer.rcode.NXDOMAIN=149 « .

Cela n’a rien à voir avec la façon dont j’ai décidé de configuré le traitement de la liste de blocage, mais c’est causé par l’impossibilité de paramétrer « log-replie: yes » dans « unbound.conf ».

Au mieux, mon log me dit le niveau d’autorité avec plusieurs AAAA ou un seul A, mais c’est tout.

J’ai parcouru la liste de diffusion et je n’ai rien trouvé. Apparemment, plusieurs intervenants étaient contre l’incorporation de stats au motif de garder l’outil le plus léger … Mais en l’état, je pense que je vais abandonner l’outil puisque je n’ai aucun moyen de contrôler ce qu’il fait réellement via le log.

Merci quand même. C’est sympa de m’avoir accordé du temps.

Bon week-end et bonne continuation.

Laisser un commentaire

(requis)

(requis)