Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    PfSense 2.3.x – Obtener lista de Pike project para bloquear Tor con pfBlockerNG

    Scheduled Pinned Locked Moved Español
    3 Posts 2 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      javcasta
      last edited by

      Hola

      El proyecto Pike project, provee una lista de nodos Tor activos las últimas 48hrs y actualizada cada 10 minutos (entre otras listas, como de proxies anonimos, etc).

      Tor nodes list with the active nodes in the last 48h updated 10 minutes ago.

      Para implementar esta lista en una lista IPv4 de pfBlockerNG, hay que descargarla y “parsearla” al formato del paquete pfBlockerNG.

      El proyecto Pike brinda un código en PhP para bajarse la lista en formato Json y pasarla a un array . He modificado ese código para que se pueda ejecutar como un cli php script en pfSense 2.3.x (testeado en 2.3.1_5), se baje la lista, la parsee y la aloje en /usr/local/www/pikeTor.dat .

      Alojandoo el script pikeTor.php en un directorio, como por ejemplo /scripts ( /scripts/pikeTor.php ), y definiendo un Cron para que ejecute ese script, por ejemplo, cada x horas, tendremos la lista actualizada cada x horas.

      Simplemente habrá que añadir en pfBlockerNG en su IPv4 una lista con la ruta :

      /usr/local/www/pikeTor.dat

      Y efectuar un Update en pfBlockerNG.

      El código: download: http://www.javcasta.com/?smd_process_download=1&download_id=33230

      //ref http://pike.hqpeak.com/
      // Tor nodes list with the active nodes in the last 48h updated 10 minutes ago.
      // Code modified to pfSense 2.3.1_5
      // by Javier Castañon - 2016 - https://javcasta.com/
      // ------------------------------------------------
      // add cron every hour exec: /usr/local/bin/php /scripts/pikeTor.php
      // In pfBlockerNG add IPv4 list: /usr/local/www/pikeTor.dat or https://127.0.0.1/pikeTor
      // ------------------------------------------------
      $url = "http://pike.hqpeak.com/api/tor";
      $ch = curl_init();
      $timeout = 15;
      /*
      //in case you need to use corporate proxy
      curl_setopt($ch,CURLOPT_VERBOSE,1);
      curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
      curl_setopt($ch,CURLOPT_PROXY,'http://proxy.address:port');
      curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
      //*/
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      $data = curl_exec($ch);
      $ce = curl_errno($ch);
      curl_close($ch);
      if ( $ce != 0 ) die("error oppening service");
      //decode output as array
      $service_data = json_decode($data, true);
      $j = 0;
      foreach ($service_data as $sec) $j++;
      unlink("/usr/local/www/pikeTor.dat");
      $size = $j;
      //print_r($size);
      if ( is_array($service_data) && $size > 0 ){   	
      	for ( $i=0; $i<=$size; $i++  ){
      		if (preg_match("/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}/", $service_data[$i])){
      			//$service_data[$i] to pikeTor.dat
            //print_r($service_data[$i] . "\n");
            file_put_contents("/usr/local/www/pikeTor.dat", $service_data[$i] . "\r\n", FILE_APPEND | LOCK_EX);
      		}
      	}
      }else{
      	die("bad output");
      }
      ?>
      

      Salu2

      –-

      Referencias:
          pfSense 2.3.x – Obtener lista de Pike project para bloquear Tor con pfBlockerNG
          https://www.javcasta.com/pfsense-2-3-x-obtener-lista-de-pike-project-para-bloquear-tor-con-pfblockerng/

      Download pikeTor.php: http://www.javcasta.com/?smd_process_download=1&download_id=33230
          pfSense – Bloqueando Tor con pfBlockerNG: https://www.javcasta.com/pfsense-bloqueando-tor-con-pfblockerng/
          Pike project: http://pike.hqpeak.com/

      Javier Castañón
      Técnico de comunicaciones, soporte y sistemas.

      Mi web: https://javcasta.com/

      Soporte scripting/pfSense https://javcasta.com/soporte/

      1 Reply Last reply Reply Quote 0
      • belleraB
        bellera
        last edited by

        Reported by ernanijr on Today at 09:48:21 am. They left the following message:

        Sempre da um erro na line 5 ao executar o php

        1 Reply Last reply Reply Quote 0
        • J
          javcasta
          last edited by

          Hola.

          La linea 5 es un comentario // …

          1 2 //ref http://pike.hqpeak.com/
          3 // Tor nodes list with the active nodes in the last 48h updated 10 minutes ago.
          4 // Code modified to pfSense 2.3.1_5
          5 // by Javier Castañon - 2016 - https://javcasta.com/
          6 // ------------------------------------------------
          7 // add cron every hour exec: /usr/local/bin/php /scripts/pikeTor.php
          8 // In pfBlockerNG add IPv4 list: /usr/local/www/pikeTor.dat or https://127.0.0.1/pikeTor
          9 // ------------------------------------------------
          10 $url = "http://pike.hqpeak.com/api/tor";
          11 $ch = curl_init();
          12 $timeout = 15;
          13 /*
          14 //in case you need to use corporate proxy
          15 curl_setopt($ch,CURLOPT_VERBOSE,1);
          16 curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
          17 curl_setopt($ch,CURLOPT_PROXY,'http://proxy.address:port');
          18 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
          19 //*/
          20 curl_setopt($ch, CURLOPT_URL, $url);
          21 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          //....
          

          El script funciona (testeado en pfSensense 2.3.1_5 amd64)

          Yo que ernanijr , adjuntaria pantallazo de la shell al ejecutar el script con el error y postearia el código php del script que esté ejecutando. a ver si hay alguna pequeña diferencia (a veces los detalles son el diablo :) )

          Salu2

          Javier Castañón
          Técnico de comunicaciones, soporte y sistemas.

          Mi web: https://javcasta.com/

          Soporte scripting/pfSense https://javcasta.com/soporte/

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.