Archivos de la categoría Linux

Firewall – Router de código abierto (ZeroShell, PfSense, etc.)

Preparando una red con VirtualBox, busque dispositivos Firewall, router y balanceador que pudiera virtualizar y ademas como era para pruebas y ejercicios que fuera de libre distribución y me encontré varios pero hablare de los que más me llamaron la atención y el porque.

Zeroshell

Basado en Linux con kernel 4.4, aunque se puede gestionar desde consola lo genial es que con una instalación muy sencilla con pocos recursos(1 CPU, 512 Mb de RAM y  un disco de 1 Gb por ir sobrados) el resto se configura de forma sencilla desde navegador, incluso más sencillo con un pequeño cambio (solo necesario en casos concretos pero no siempre necesario) desde el Shell el resto incluso la instalación en disco se realiza desde un navegador. Dispone de las siguientes características entre otras:

  • Balanceador de linea que nos permite disponer de varias conexiones a internet y utilizar la más adecuada.
  • Portal cautivo para que el usuario deba validarse antes de disponer de acceso a internet.
  • Servidor DHCP
  • QoS (Calidad de servicio) de forma que nos permite limitar trafico entre los usuarios, incluso en capa 7 lo que permite que lo controlemos por aplicación.
  • VPN, tanto Cliente “Host2LAN” como entre servidores “LAN2LAN”
  • Servidor proxy de HTTP que es capaz de bloquear las páginas web
  • Analisis de antivirus  ClamAV
  • Firewall, traductor NAT, redirección
  • Y muchas otras como Sylog, DNS dinamico

Su primera instalación muy sencilla, nos decargamos el ISO de http://www.zeroshell.org/download/ iniciamos la maquina y nos saldra la pantalla inicial, que nos permitirá la instalación (opción A) pero lo único que haremos reconfigurar la IP de acceso que por defecto es 192.168.0.75. Después desde el navegador crearemos el nuevo perfil,  indicando el disco, cambiaremos la clave que por defecto es “admnin/zeroshell “y la activaremos y después de reiniciarse comenzaremos a configurarlo y activar servicios pero esto lo dejamos para otro POST.

pfSense

Es una distribución basada en FreeBSD y se adaptado para dar la utilidad de Firewall, router y otras funcionalidades que ahora describimos, al igual que nuestro anterior ZeroShell su configuración es sencilla desde una interfaz web. Al igual que antes con una sola CPU, 512 MB de RAM.

Las principales caracteristicas son:

  • Firewall, es un firewall de estado, no solo los tipicos filtros de fuente y origen sino limitar el número de conexiones y mediante su tecnología de huella digital podría impedir la conexión de sistemas operativos.
  • Traducción de direcciones NAT.
  • Balanceo de carga de múltiples redes WAN (acceso a internet)
  • Balanceador de servidores.
  • VPNs
  • Informes, portal caututivo y DHCP, como el anterior y muchas más características.

La configuración incial, al igual que antes muy sencilla, definimos las redes y luego desde el interfaz web “System->Setup Wizard” y no empieza a preguntar.

 

Ahora solo nos queda probar y ver cual es el que más nos gusta, así en principio ZeroShell me parece mas pequeñito y es Linux (si trabajo con Linux no es malo que mi software de seguridad sea en otra tecnología no Windows claro esta :-)) luego de pfsense me ha gustado su sistema de actualización y el interfaz parece más amigable pero claro esto requiere algo más de recursos. Conclusión sobre gustos no hay nada escrito y os dejo los dos para que probéis e incluso descubráis otros que pueden serviros para vuestros sistemas virtuales o aprobechar PCs antiguos y montaros vuestros Firewall.

 

Hasta el próximo POST.

DNI Electronico en LINUX

Una vez más (pues no es la primera vez) publico como instalarnos el DNI-e en Linux, en MATE o Ubuntu) pero que se puede adaptar a cualquier otro. En este caso es que como perdí la información anterior y ahora vuelvo a necesitarlo  para poder usarlo porque no reconstruir la información.

Lo primero y aunque no es realmente de la instalación de las librerías y programas del DNI-e, deberemos instalar el java ya que muchas páginas usan applet, la experiencia me indica lo mejor es instalar Oracle-Java ya que algunos con las otras versiones me han dado problemas. El java “Openjdk” me va bien pero basta que tenga prisas en un tramite para que esa página no lo quiera por lo que si queréis estar siempre listos yo pasaría por el aro de Oracle e instalaría Oracle-Java.

Así que de forma muy rápida para instalar Oracle-Java o vamos a la página de Oracle y nos lo descargamos o realizamos estos sencillos pasos:

  1. Añadimos y actualizamos repositorio
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
  2. Instalamos y lo ponemos con alternativa, por si tenemos otros
    sudo apt-get install oracle-java8-installer
    sudo update-java-alternatives -s java-8-oracle

    Yo instalo 8, aunque tenga disponible la 9, pero me marca un error con el plugin de mozilla, que voy a necesitar.

  3. Ponemos las variables como recomienda al instalarse.
    sudo apt-get install oracle-java8-set-default

Y ya tenemos nuestro Java, lo confirmamos con “java -version” y “https://www.java.com/es/download/installed.jsp“, así que ahora si empezamos con la instalación y configuración de todo lo necesario para nuestro DNI-e.

Lo primero que realizaremos es instalar la libreria “libccid” que implementa el controlador con protocolo CCID(si tu lector usa otro protocolo deberas buscarlo, pero este es el más utilizado) y que le permite comunicarse con el DNI-e o tarjeta inteligente.

sudo apt-get install libccid pcscd opensc

Después los programas:

  • pinentry-gtk2: Para la entrada del PIN del DNI.
  • pcsc-tools: Herramientas del lector.
  • libpcslite1 y pcslite-dev
  • coolkey: para las claves PKI.
sudo apt-get install pinentry-gtk2 pcsc-tools libpcsclite1 
      libpcsclite-dev libreadline6 libreadline-dev coolkey

Ya tenemos el lector así que ha probarlo, ejecutamos pcs_scan (aplicación que se encuentra en las herramientas instaladas con pcs-tools) y que en un principio dira que no tiene tarjeta, al introducir el DNI-e no solo la detectara sino que sabra que tarjeta hemos introducido.

Con el Lector configurado y listo procederemos a instalar los certificados y configuraciones en los navegadores y lectores de correos si lo deseamos que son necesarias.

Descargamos los certificados de:”https://www.dnielectronico.es/PortalDNIe/PRF1_Cons02.action?pag=REF_076” y nos descargamos de “AC Raíz” (pkcs1-sha256WithRSAEncryption) que es la autoridad certificadora de la policia y de “AV DNIE FNMT” el ( pkcs1-sha256WithRSAEncryption ) que es la autoridad de validación del DNI-e y que es la Fabrica de Moneda y Timbre. Desempaquetamos los ficheros descargados y sacamos los archivos “.crt”.

Configuramos el navegador, en mi caso Firefox pues el Chrome me ha dado problemas con los certificados.

En preferencias->Avanzado y Certificados vamos a ver certificados y en “Autoridades” damos a importar “AC RAIZ DNIE 2” y confiamos en todo. Y ya podremos ver que esta la “DIRECCION GENERAL DE LA POLICIA” en nuestras autoridades de certificación.

Instalamos el lector en dispositivos de seguridad, damos cargar y ponemos el enlace a la libreria en mi caso “/usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so”

Y ya lo tenemos listo para probarlo en algún banco nuestro, aunque estos me dan muchos problemas o van muy lentos debe ser que Linux no les gusta :-), sedes electronicas como Hacienda o DGTque funcionan muy bien, probar la firma (así podremos firmar nuestros correos, por ejemplo  con Thunderbird) en https://valide.redsara.es/valide

 

Hasta la próxima.

VirtualBox (configurando la red)

Hoy vamos a ver todas las posibilidades que tenemos en la configuración de redes de VirtualBox, que nos son pocas, según nuestras necesidades.

Antes de nada comentar en pocas palabras que es VirtualBox, y es tan sencillo como decir que es un software de virtualización del tipo hosted (debe instalarse sobre un sistema operativo que llamaremos anfitrion)  con muchas características de configuración ya sean RAM, vCPU, USB, audio, puerto serie y el tema que nos ocupa hoy las tarjetas de red con sus redes asociadas y con licencia GPL.

Y como esta bien conocer los origenes diremos que VirtualBox nació de la empresa Innotek como un producto de pago y una versión reducida gratuita, en el 2.008 Sun Microsystems la compro y dos años más tarde SUN es comprada por Oracle. Oracle paso el producto a licencia GPL a excepción de los componentes (USB, VRDP, PXE y PCI) que se deben instalar con el paquete extension Pack

Antes de empezar vamos a definir una serie de términos que nos ayudaran a comprender el resto del articulo.

  • SO anfitrión o maquina anfitrión: Es la maquina donde se ejecuta el VirtualBox .
  • SO o maquina invitada o huesped: es la maquina que se virtualiza.
  • Maquina virtual “MV: La maquina virtualizada en el VirtualBox.
  • Red Publica: La red que saldrá a internet.
  • Red Local: La red donde se encuentro anfitrion, y estará cableada o por WIFI.
  • Red Interna: Es una red que se crea dentro de nustras maquinas virtuales.
  • NIC: Tarjeta de red Ethernet virtual de las que disponen las maquinas virtuales.

La configuración de VirtualBox se puede realizar con su interfaz gráfico, es el que comentaremos por su facilidad ya que hoy nos interesa quedarnos con los conceptos de lo que podemos hacer en lo que a redes de comunicación se refiere, o por comando “VBoxManage”.

Una MV puede tener hasta 8 NIC (Tarjetas de red Ethernet) aunque con el interfaz gráfico solo podremos definir 4, pudiendo indicar por separado el tipo de Hardware a emular y la red a la que se conecta. Para configurar la red nos vamos a configuración y luego a red.

red

Como vemos disponemos de 4 adaptadores (NICs) aunque en realidad podamos definir 8, estas tarjetas se conectaran a una red especifica (modos de red) que hablaremos más adelante pues es el grueso de este POST y son: No conectado, NAT, Red NAT, Adaptador puente, Red interna, solo anfitrión, controlador genérico.

Una vez que hemos definido el modo de red(más adelante los comentamos y ponemos ejemplos) pondremos el adaptador de red o hardware de red que simulara VirtualBox y por lo tanto vera la MV y pueden ser:

  • AMD PCNet PCI II (Am79C970A)
  • AMD PCNet FAST III (Am79C973) Es el valor por defecto ya que es el más compatible, si el SO invitado no soporta este hardware seguro que podremos usar Intel PRO / 1000
  • Intel PRO/1000 MT de Desktop (82540EM), Intel PRO/1000 T Server (82543GC),  Intel PRO/1000 MT Server (82545EM);
  • Red paravirtualizada (virtio-net). En este caso VirtualBox no virtualiza el hardware (lo que puede mejorar el rendimiento) y se usa un interfaz por Software que es parte del proyecto KVM. Esta opción se usa en entornos virtualizados.

Modo promiscuo, nos permite ver por ese adaptador de red todo el trafico que circula por la red no solo el que va a la tarjeta, debe activarse si vamos a poner un sniffer, y salvo en los modos de red NAT y controlador generico lo podemos activar en los otros. Las opciones son denegar, MV o todo el trafico.

Direcciones MAC: Esta claro como en una misma red no podemos tener tarjetas con la misma MAC la cambiaremos para que no se repita.

Cable conectado: Nos permite emular la desconexión del cable de la maquina virtual.

Y pasamos a lo realmente interesante que es los

Modos de red

No conectado: Es lo mismo que no tener conectado el cable, esto lo tendremos cuando no sepamos el modo en el que pondremos la tarjeta, ya que una vez que lo tengamos y lo configuremos si queremos desconectar el cable lo mejor es la opción anterior.

NAT: No permite el modo promiscuo y es la opción más sencilla y logramos que nuestra MV se pueda conectar a Internet, siempre que el anfitrión pueda, pero no se podrá conectar al anfitrión ni a otras maquinas. La visión a nivel red seria como si pusiéramos un router entre la maquina virtual y la salida a internet.

nat

cada MV tendra su propio router con router NAT tendrá la dirección de red y por defecto sera 10.0.X.2 la del router y 10.0.X.15 la de la MV, DHCP en la 10.0.X.3 y la 10.0.X.4 un servidor TFTP que usa VirtualBox , dependiendo X del NIC al que se asocie siendo la primera tarjeta el 2, la segunda el 3 y así sucesivamente, esto nos indica que este router NAT es tambien un servidor DHCP.

Si se quisiera cambiar este direccionamiento, no lo podriamos realizar por el interfaz gráfico y se realizaría por comando “VBoxManage modifyvm “nombre de máquina virtual” –natnet1 “Direccionamiento / Rang“.

Aunque la MV en modo NAT decimos que es una isla y ni el anfitrión puede verla, no es del todo cierto pues podemos hacerla visible por maquinas de la red publica gracias al router NAT y la redirección de puertos que realizaremos esta vez si por el interfaz gráfico u”Reenvío de puertos” del adaptador correspondiente.

redireccion

Esto permitirá que VirtualBox escuche estos puertos y reenvié estos paquetes a la dirección del invitado e incluso a un puerto diferente, ojo no ejecutar mismos servicios en el anfitrión y la MV o entre distintas MV. Esta opción podría ser interesante para que un servicio que se ejecuta en una MV no comprometa la seguridad del anfitrión, así podría tener un telnet abierto pero no en el anfitrión sino en una MV aislada.

Red NAT: Es más avanzada que la anterior ya que este router NAT nos permite conectar a el otras maquinas de forma que todas las MV que estén en esta red se podrán ver. Este router seria similar al que tenemos en casa pero para una red de VirtualBox

Por lo tanto lo primero que deberemos crear son estas redes y para eso vamos a “Archivos->Preferencias” y en esa ventana Red y definimos las redes NAT.

redprefeencias

Dando al “+” nos crea una red y en la llave podemos configurarla incluso inhabilitarla.

  • Nombre de la red.
  • Red CIDR: Tan simple como la red que asignamos por ejemplo 192.50.0.0/16
  • Soporte DHP
  • Soporte de IPV6
  • Reenvió de puertos

La puerta de enlace o router sera sera 192.50.0.1,

rednat

Luego tan sencillo como indicar que es una red NAT y decidir a que red NAT se conecta ese NIC.

Adaptador Puente: En este caso se crea un Switch virtual de forma que tanto la tarjeta virtual (NIC) de la MV y la tarjeta física del anfitrión se conectan a el de forma que tanto las MV como el anfitrión estan en la misma red. Los paquete se intercambian directamente sin pasar por la pila de red del sistema operativo.

adaptadorpuente

Si en el anfitrión disponemos de varias tarjetas de red fisicas, ya sean de cable o WIFI, se deberá indicar a cual de ellas se conecta de forma que si nos conectamos a la tarjeta de WIFI y cortamos esta la MV también se quedara sin conexión.

La configuración en la MV debera de ser una configuración igual a la realizada en el anfitrión y deberemos darle una dirección de la red del anfitrión que este libre.

Red interna: Nos permite crear una red en la que solo son visibles las MVirtuales que están en esa red. Cuando definimos una tarjeta como red interna nos pedirá el nombre de esta red, que seleccionaremos en el desplegable y que por defecto es “intnet”.

Si queremos que esta red interna tenga salida a internet alguno de las MV deberán tener una de las NIC configurada como NAT o como adaptador puente y así servirá de  router.

ri_nat

RedInterna – NAT

ri_puente

Red Interna con Puente

Solo anfitrión: Podemos que decir que es un hibrido en el que tenemos una red interna en la cual las MVs se ven entre ellas y a la vez podemos tener acceso al anfitrión, la ventaja es que no es necesario un puente el cual obliga a la red a estar conectada en el anfitrión ya que se crea una tarjeta virtual en el anfitrión.

 

Lo próximo es poner un ejemplo con diversas maquinas (físicas y virtuales) y distintas redes con sus router y FW físicos y virtuales, pero esto lo dejamos para otro momento.

Realizar los comentarios que queráis y  que os gustaría que apareciese en el Ejemplo que desarrollaremos otro día.