Home | History | Annotate | Line # | Download | only in contrib
      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: "drop.spamhaus.org.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;
     40