]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/unbound/contrib/drop2rpz
Fix multiple vulnerabilities in unbound.
[FreeBSD/FreeBSD.git] / contrib / unbound / contrib / drop2rpz
1 #!/usr/bin/perl
2
3 # usage: curl --silent https://www.spamhaus.org/drop/drop.txt | $0 > /path/to/spamhaus-drop.rpz.local
4 #
5 # unbound.conf:
6 #  rpz:
7 #    name: "spamhaus-drop.rpz.local."
8 #    zonefile: "/path/tp/spamhaus-drop.rpz.local"
9 #    rpz-log: yes
10 #    rpz-log-name: "spamhaus-drop"
11 #
12
13 use strict;
14 use vars qw{$o1 $o2 $o3 $o4 $m};
15
16 # trailing dots required
17 my $origin = 'drop.spamhaus.org.rpz.local.';
18 my $mname  = 'localhost.';
19 my $rname  = 'root.localhost.';
20 my $ns     = $mname;
21
22 my  $rpz_action = '.';         # return NXDOMAIN
23 #my $rpz_action = '*.';        # return NODATA
24 #my $rpz_action = 'rpz-drop.'; # drop the query
25
26 print "$origin SOA $mname $rname 1 43200 7200 2419200 3600\n";
27 print "$origin NS  $ns\n";
28 while(<>) {
29   if(($o1, $o2, $o3, $o4, $m) = m{(\d+)\.(\d+)\.(\d+)\.(\d+)/(\d+)}) {
30     print "$m.$o4.$o3.$o2.$o1.rpz-ip.$origin CNAME $rpz_action\n";
31   } else {
32     print "$_";
33   }
34 }
35
36 # add a testpoint: ask for "dns.google"
37 # print "32.8.8.8.8.rpz-ip.$origin CNAME $rpz_action\n";
38
39 exit;