Mostrando entradas con la etiqueta firewall. Mostrar todas las entradas
Mostrando entradas con la etiqueta firewall. Mostrar todas las entradas

martes, 9 de diciembre de 2014

Python Script: Probably useless but functional IPv6 Network scanner

Below is the code of what is probably useless but a functional IPv6 host scanner written in Python using threading.

To perform a regular (brute force) network scans in an IPv6 Network is almost impossible and it can take over 5.000 years to finish.

This project was purely academic and I just wanted to learn about threading in Python.

This software is not recommended for general usage.....

This  script  will call the OS to actually perform the ping

This software receives two parameters:
a) Prefix to scan in the format 2001:db8::/64 (subnet, not host)
b) Number of simultaneous processes it can run (MAXPINGS)

One more time it was purely academic stuff but hopefully it can make your day

Finally, AFAIK nmap does not yet support IPv6 network scan.

The code was written in python3:

--- cut here ---

#!/usr/bin/python3

import threading
import sys
import ipaddress
import subprocess
import time

CURRENTPINGS=0 # Number of simultaneous ping at a time

def DOPING6(IPv6ADDRESS):
  global MAXPINGS, CURRENTPINGS
  CURRENTPINGS+=1
  CMD="ping6 -c 3 "+str(IPv6ADDRESS) + " 2> /dev/null > /dev/null"
  return_code = subprocess.call(CMD, shell=True)
  if return_code == 0:  #If ping was succesful
    print (IPv6ADDRESS," is alive")

  CURRENTPINGS-=1

def main():
  global MAXPINGS, CURRENTPINGS
  if len(sys.argv) != 3: #Validate how many parameters we are receiving
    print("  Not enough or too many parameter")
    print("  Usage: ./scanipv6.py IPv6Prefix/lenght MAXPINGS")
    print("  Example: ./scanipv6.py 2001:db8::/64 20")
    print("  Prefix lenght can be between 64-128")
    print("  MAXPINGS corresponds to how many pings will be running at the same time")
    exit()

  SUBNET,MASK=sys.argv[1].split("/")
  MAXPINGS=int(sys.argv[2])

  for addr in ipaddress.IPv6Network(sys.argv[1]):  #Let's loop for each address in the Block
    ping_thread=threading.Thread(target=DOPING6,args=(addr,))

    while CURRENTPINGS >= MAXPINGS: # With this while we make it possible to run max simultaneous pings
      time.sleep(1)  # Let's wait one second before proceeding
      #print ("Interrumping...., CURRENTPINGS > MAXPINGS") #Uncomment this line just for debugging

    ping_thread.start()

main()

martes, 14 de octubre de 2014

La mala idea de bloquear Internet

Toda mi vida lo que siempre he querido es un Internet libre, sin bloqueos, rápido que ayude al mundo a comunicarse, a educarse, a estar informado. En mi humilde opinión el internauta tiene acceso a visitar la pagina que quiera y cuando quiera, sin importar el contenido lo que diga, lo que vea, lo
que escuche. No se nada de leyes pero creo que debe verse como un derecho del ciudadano a leer, ver y escuchar en Internet lo que la persona desee.

Bloquear paginas no es una solución, es mas un problema, no se llega a nada, la solución a los problemas esta en otra dirección muy lejana a bloquear las paginas y contenidos.

Supongamos un caso donde alguien realiza una publicación indicando que el cielo es rojo, las nubes anaranjadas o que esta lloviendo para arriba, ¿van a bloquear ese contenido?. ¿Tú no tienes derecho a poner esa información en una pagina Web?.

Ahora bien, imaginemos otro caso donde en la esquina de tu urbanización esta ocurriendo algo ilegal (y tu lo ves desde tu apartamento) ¿puedes o no publicar lo que esta ocurriendo en Internet?, ¿tomar fotos?, ¿realizar un artículo al respecto?. ¿Puedes ponerlas en Internet?, ¿te lo bloquean?, ¿tu pierdes la libertad de expresión y yo pierdo el acceso a tu informacion?. Peor aún, en segundos un familiar tuyo va a pasar por esa esquina..... gracias a la NO libertad de expresión y al NO acceso a
la información algo indeseado ocurrió que honestamente no quiero describir.

En los últimos meses (en realidad años) he visto como algunos países han decidido bloquear su acceso a Internet imposibilitando a sus habitantes a acceder a contenido legitimo a la información, pero peor aun dañando poco a poco la super autopista de la información.

Solo por mencionar algunos países con historial por bloquear -al menos un poco- su acceso a Internet (tomado de http://www.usatoday.com/story/news/world/2014/02/05/top-ten-internet-censors/5222385/  y http://en.wikipedia.org/wiki/Internet_censorship: ):
- Irán
- Egipto
- Coreo del Norte
- Venezuela
- Cuba
- China
- Turquía
Arabia Saudita
- Siria
- Vietman

Antes de proseguir, quiero indicar que por más de un año me he tomado la libertad de averiguar que manera utilizan para bloquear paginas Web u otros servicios a los usuarios, he recibido básicamente dos respuestas:

- Bloqueos por DNS
- Bloqueos por dirección IP destino

(claro, por detrás puede haber un montón de cosas que complican el escenario como firewalls, IDS, IDP, etc, etc)

Muchas personas, principalmente los técnicos dirán que ambos métodos son ineficientes y que se pueden evitar utilizando una VPN y/o cambiando los servidores DNS que utilizan los usuarios. Es muy cierto este pensamiento sin embargo en la realidad y en la practica son MUY pocas personas las que tienen conocimiento de DNS, muchos menos de VPN y a su vez este ultimo en algunas situaciones hay opciones pagas ($$) lo que reduce aun mas la poblacion dispuesta a realizar estos cambios. Por lo anterior pienso que bloquear contenido por DNS e/o IP destino es BASTANTE eficiente.

El objetivo de este post es indicar porque pienso que es mala idea bloquear Internet para un país:

1) Rompemos el Internet poco a poco y luego armarlo puede ser muy complicado
Esta razón es fatal para Internet y el país. Al estar constantemente creando y modificando rutas en los routers va a ir creando una especie de "agujeros parciales" a ciertas direcciones IP destino. Pero el problema no es solo este, sino la persecución de bloquear sitios trae consigo el bloqueo "actual" del destino sin nuevamente "permitir" el anterior. Esto ultimo conlleva a ir rompiendo poco a poco muchas direcciones IP legítimas en Internet que no pueden ser accedidas.
Multiplicando el efecto anterior, un caso similar ocurre en el mundo DNS.

2) Los inocentes pagan como pecadores
Siguiendo un poco con lo anterior supongamos el siguiente escenario de ejemplo: Un ciudadano común tiene un blog de cocina. Por cosas del destino su página web esta alojada en un virtualhosting bajo la misma dirección IP que una pagina que quiere ser bloqueada. ¿Qué va a ocurrir?. No puede ser accedida la pagina del blog de cocina. Para el ciudadano común y para el proveedor del virtualhosting identificar esta situación y solventar el caso seria muy complicado.

3) Teletrabajo
Hoy en día es normal trabajar, compartir y jugar de manera remota con diferentes personas en el mundo. Lamentablemente el bloqueo de IPs y de nombres DNSs obstaculiza el Teletrabajo; un ejemplo es que la persona con la que nos encontramos laborando remotamente quisiera compartir información/contenido utilizando medios que se encuentren bloqueados en uno de los países. Lo anterior es un entorpecimiento explícito que siendo antagónico me atrevo a decir que convierte al ciudadano en una persona menos productiva.

4) Dudas a los ciudadanos
Caso a) En el supuesto que una persona en el país bloqueado no pueda acceder a un sitio ¿qué va a pasa?: Quizás llame a su proveedor de servicio (perdiendo tiempo, dinero, creando molestias). Es muy probable que la persona que atienda el teléfono sencillamente no sepa revisar los DNS y rutas en los enrutadores, haya que escalar el caso y mucho mas. Para los proveedores esto es un costo que tiene que ser trasladado a alguien, por supuesto que al cliente. Es decir, el servicio de Internet se encarece.
Caso b) El ciudadano probablemente llame directamente a un amigo con conocimientos en informática, una vez mas: perdiendo tiempo, dinero y creando molestias
Caso c) Las dos anteriores

5) Perspectiva ante un bloqueo _nuevo_ del ciudadano:
Cuando un ciudadano no puede entrar a un sitio Web (o servicio) no sabe si fue bloqueado por el gobierno, por el ISP, el sitio web caído o si es algo temporal. Esto conlleva a una serie de molestias directas e indirectas que a su vez más trae problemas colaterales.

6) El error humano
Los administradores de red son personas como cualquiera, son propensos a cometer errores al igual que todos nosotros.
Es bien sabido que ____ % de errores en red son causados por errores humanos, ahora traslademos esta estadística a los administradores red que deben estar manipulando los servidores DNS y los routers creando rutas frecuentemente con el objetivo de bloquear algunos sitios y contenidos. Lastimosamente el resultado es un peor Internet para el ciudadano.

7) Históricos + falsos positivos (negativos?)
Este punto lo describiré con un ejemplo: Un proveedor de Internet contrata a un nuevo administrador de red; este último observa gran cantidad de direcciones IPs bloqueadas en los routers, es muy complicado que el nuevo administrador NO sepa si estos IPs fueron bloqueados momentáneamente por defenderse de un ataque de red anterior o corresponde a un bloqueo solicitado por el regulador del país (o el ente respectivo)

8) Daños colaterales:
Es común que muchas organizaciones realicen eventos 1,2 ó 3 veces al año y roten su sede en diferentes países. Es bien sabido que estas organizaciones evitaran los países con bloqueos a Internet.



9) Se rompe el acceso a sitios legítimos:
Un caso que he visto en varias oportunidades es el bloqueo por DNS apuntando a direcciones IP, quizás www.example.com a 1.1.1.1. Luego: supongamos que por asegurar el bloqueo a nivel de routing se enruta 1.1.1.1 a un hoyo negro (null 0) el ciudadano no podrá entrar ni al sitio que se bloqueo ni al sitio legítimo que se encuentre en la dirección IP bloqueada


Iba a colocar otras razones y puntos negativos de pasar a través de una VPN y cambiar los DNS en las máquinas tales como enlentecimiento de Internet, lentitud en la VPN y problemas de geolocalizacion  pero lo dejaré para otra oportunidad.


Mi conclusión:
Si existe algo que yo quisiera y pudiera bloquear en Internet seria: pornografía infantil y ventas ilegales de armas (algo realizado por un pais en Latino América). He llegado a ver países que bloquean contenido de sus propios ciudadanos, esto a mi parecer deja mucho que desear.

Lo he dicho mil veces, un Internet 100% libre tendrá unas MUY pocas cosas malas pero tiene MUCHAS mas ventajas que desventajas. Ir bloqueando poco a poco Internet en los países a la larga trae desventajas competitivas, subdesarrollo, imagen ante el mundo poco amigable y muchas otras cosas. Lo anterior repercute entre otros en los ámbitos económico y social. Internet debe ser utilizado como una herramienta para el desarrollo.

Antes de terminar; un Internet debe ser sin bloqueos, Internet debe ser con banda ancha de buena velocidad, acceso a nivel nacional, decirle NO al throttling y lógicamente seguro y con privacidad.


Reciban un saludo,


zcodesystemexclusive

domingo, 2 de septiembre de 2012

Deshabilitar/bajar iptables en Linux

Introduccion:
   En algunas ocasiones es necesario "bajar"  o deshabilitar iptables en nuestro Linux, el procedimiento depende de la distribución de Linux que estes utilizando. Aquí te dejo los más conocidos.

1) Procedimiento si estas utilizando Redhat, Fedora core, Mandriva/Mandrake o Centos, solo debes  ejecutar lo siguiente:
# service iptables save
# service iptables stop
# chkconfig iptables off
o
# /etc/init.d/iptables stop


2) Procedimiento para deshabilitar iptables en Debian o Ubuntu

  a) Crea un script llamado fw.stop con el siguiente contenido:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

  b) Dale permiso de ejecución a dicho script:

# chmod +x /root/fw.stop
o
# chmod 755 fw.stop

  c) Puedes ejecutar el scritp con el siguiente comando:
# fw.stop

Mas info en:
http://sources68.com/linux-disable-remove-the-iptables-firewall-1fa67761.html




sábado, 1 de enero de 2011

Deshabilitar IPtables en Ubuntu

Situacion:
IPtables y UFW estan dando dolores de cabeza.
Deseo permitir todo el trafico con IPtables

Solucion:
Ejecuta los siguientes comandos como root:

iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -L -n

Suerte, espero haya sido util,

viernes, 8 de enero de 2010

Permitir determinado URL en Juniper Firewall. Bypass webfiltering

Problema:
Tengo webfiltering habilitado en mi Firewall Juniper (SSG-5) y necesito permitir cierto URL

Solución:
Supongamos que el url http://acostanetwork.blogspot.com se encuentra bloqueado por el webfiltering del FW. El procedimiento a seguir es el siguiente:

1) Entrar al Firewall vía Web
2) Selecciona Security > Web Filtering > Categories > Custom > click sobre NEW en la parte superir > coloca un nombre al profile > ( Recomendado el nombre del URL o el URL en si ) click OK. Por ejemplo: acostanetwork.blogspot.com
3) Luego de lo anterior, ir otra vez a Security > Web Filtering > Profiles > Custom > Click sobre el Edit del profile utilizado en la politica > Selecciona White List y el profile que hayas creado anteriormente
4) Apply

Eso es todo, posteriormente ya se debe poder entrar a la página que anteriormente no podias.

viernes, 10 de julio de 2009

Como activar las licencias dentro de un firewall Juniper

Objetivo:
Activar las diferentes licencias adquiridad (por ejemplo Antivirus) dentro de una caja Juniper SSG5

Problema:
Luego de que recibí la caja no tenía la menor idea de como activar el Antivirus (AV) dentro del mismo

Procedimiento:
Procedí a abrir un ticket dentro del website de Juniper indicando mi problema

Solución:
* Conectar la caja a Internet y con navegación
* Asegurarse que el firewall pueda navegar. Recomiendo entrar a la caja por ssh y/o telnet y hacer un ping a yahoo.com o google.com
* Colocar fecha y hora de la caja (MUY importante)
* Posteriormente hay dos maneras de actualizar las licencias: Web y CLI

Vía Web:
Ir a: Configuration>update>screen OS/keys y hacer click en retrieve subscriptions

Vía CLI:
cst-1->exec license-key update
o
cst-1->exec license-key .

Luego la caja se conectará a lo que Juniper llama el Entitlement Server y traerá las licencias compradas y registradas dentro del Website de Juniper.

Eso es todo,

miércoles, 8 de julio de 2009

Firewall bueno, gratuito y configurable en Windows

Necesidad:
Quitar el acceso a Internet a 100 localidades y solo permitir DNS y FTP. De ser posible gratuito.
En cada localidad solo existe un PC conectado a Internet y dicho PC puede estar conectado de muchas maneras diferentes: Ethernet, Wireless; GSM, EVDO, UMTS, etc, etc.
Por ello, el firewall a utilizar debe de ser capaz de implementar las políticas en TODAS las interfaces del PC

Solución:

Luego de buscar mucho por Internet, incluso probar varios diferentes Firewall logré conseguir: WIPFW
Wipfw lo definen como un Firewall sencillo y eficiente para el mundo del sistema operativo Windows.

En fin, no voy a entrar en detalles de donde bajarlo y como instalarlo. Voy a indicar el procedimiento que seguí para unicamente permitir FTP Y DNS.

Procedimiento:

1) Luego de tener el software instalado en: c:\wipfw procedí a modificar el archivo: wipfw.conf y lo dejé de la siguiente manera:

# First flush the firewall rules
-f flush

# Localhost rules
add 100 allow all from any to any via lo*

# Mis politicas

add 101 allow tcp from me to any 53 out
add 102 allow udp from me to any 53 out
add 103 deny tcp from me to any 1863 out
add 104 allow tcp from me to any 20 out
add 105 allow tcp from me to any 21 out


# Prevent any traffic to 127.0.0.1, common in localhost spoofing
add 110 deny log all from any to 127.0.0.0/8 in
add 110 deny log all from 127.0.0.0/8 to any in

# Bloquear TODO el resto del tráfico. No quiero que naveguen y nada
add 115 deny log all from any to any out

add check-state
add pass all from me to any out keep-state
add count log ip from any to any

2) Posteriormente ejecutas el archivo: install.cmd ubicado en c:\wipfw

3) En caso de necesitar deshabilitar el firewall debes ejecutar: c:\wipfw\uninstall.cmd

Suerte!.

viernes, 8 de mayo de 2009

Upgrade de Screen OS en Netscreen/Juniper

El siguiente comentario fue algo que me ha sucedido dos veces con diferentes firewalls Juniper 5GT que necesitaba realizar el upgrade del sistema operativo (ScreenOS).

Tenía que realizar un upgrade de 5.2.0r1.0 a 5.4 y sencillamente el firewall a través de la interfaz Web no me dejaba subirla siempre devolviendo un error en la imagen.

La solución para lo anterior fue primero realizar un upgrade de 5.2 a 5.3 y luego a screenos 5.4. Voila!.., funcionó perfecto.

Luego, tuve la misma situación pero necesitaba hacer el upgrade de una versión 4.x a 5.x..., nuevamente hice un upgrade "poco a poco" y funcionó.

La moraleja es que no se puede cambiar de imagen a otra imagen de manera muy radical, es recomendable realizar el upgrade prudencialmente

Espero te ayude.

viernes, 3 de abril de 2009

Habilitar IPv6 en Firewall Juniper / Netscreen

Situación:
Tengo un Firewall Firewall Netscreen / Juniper 5 o 25 o 50 (seguramente tambien sirve en otros modelos) debes realizar lo siguiente para habilitar IPv6.

Procedimiento:

Por medio del CLI revisa las variables con el siguiente comando:

get envar

(debes buscar por ipv6=yes)

Aqui podras ver varias variables y entre ellas revisar si IPv6 se encuentra habilitado o no.

En caso de que no se encuentre;  debes habilitarlo con el siguiente comando:

set envar ipv6=yes
save (para grabar la configuracion)

Luego reiniciar el equipo y tanto el CLI como la interfaz Web tendran habilitado IPv6 y podras configurar interfaces, tuneles, routing, etc.

Suerte;

Una mejora práctica en el Transporte DNS sobre UDP en IPv6

Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...