msgbartop
¡Mano de milenio y gamba!
msgbarbottom

31 jul 20 Acceso a través de OpenVPN a equipos de la red local del servidor VPN

La configuración por defecto de OpenVPN permite acceder sólo al equipo servidor de VPN cuando estableces la conexión desde el cliente. Sin embargo, es posible extender el acceso al resto de equipos de la red local de dicho servidor, en caso de necesitar acceso a otras máquinas. La receta es la siguiente:

  • Configurar el servidor para que advierta al cliente de las rutas a las que puede acceder: Para que el cliente sepa que se puede conectar a más redes además de al propio servidor de VPN es preciso advertirle de ello. Se puede hacer fácilmente añadiendo la directiva “push” en el fichero de configuración del servidor. Para permitir acceso a una red de tipo 192.168.0.0/24, bastaría con lo siguiente: push “route 192.168.0.0 255.255.255.0″, y reiniciar el servicio.
  • Permitir que nuestro servidor haga forwarding de paquetes: Se habrá de modificar el fichero /etc/sysctl.conf, y quitar el comentario de la línea # net.ipv4.ip_forward=1. Posteriormente habrá que reiniciar el servicio con sudo sysctl -p.
  • Activar el enmascaramiento de paquetes en nuestro servidor: Este último paso va en función de nuestra arquitectura. Si nuestro servidor de OpenVPN no es la puerta de enlace por defecto de nuestra red, dado que las peticiones de los clientes OpenVPN llegarán al servidor de destino con una IP del tipo 10.8.0.x (o como sea que lo tengamos configurado en nuestro servidor OpenVPN), a la hora de responder a dichas peticiones, enviarán las respuestas a la puerta de enlace por defecto, con lo que se perderán las respuestas, ya que la puerta de enlace por defecto no tendrá constancia de la emisión de las mismas (enrutado asimétrico), y éstas no llegarán al cliente OpenVPN (este problema no se daría con el servidor OpenVPN actuando como puerta de enlace, ya que tendría constancia de los paquetes, y podría enrutarlos adecuadamente). Para evitar el problema, es posible activar el enmascaramiento de paquetes. Bastaría con añadir la siguiente regla a nuestro iptables: iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE… siempre que la interfaz de la red sea la eth0, y que nuestra red de clientes OpenVPN sea la 10.8.0.0/24 (si no, hay que modificar estos valores según correspondan). Para hacer que la configuración sea persistente, recomiendo usar el servicio iptables-persistent, existente en Debian y otras distribuciones.

Referencias:

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Etiquetas: , , , ,

29 jul 20 Canción del día (XL)

Lo de hoy es algo que me he encontrado en Youtube, cuando programaba en Arduino un software para acceder por Bluetooth a los códigos OBD-II del coche (esa otra historia de la que hablaré a su debido tiempo):


The War On Drugs – Thinking Of A Place

Además del tema en sí, me ha llamado la atención este comentario, de un tal Lacerta:

fun fact: the first time i heard this song was on a roadtrip along the west coast of ireland on the only channel that had signal.
we were all quiet and just listened to it. honestly, that was a feeling i still have no words for.

Apropiado, ¿verdad?

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Etiquetas: , ,

07 jul 20 Uso de diskpart para eliminar particiones en Windows 10

¿Nunca te ha pasado que, tras utilizar una memoria USB para realizar una instalación de Linux, quieres volver a formatearla en Windows para darle otro uso distinto, y sólo te aparece una pequeña partición que apenas es una fracción del espacio que realmente tiene la memoria? Es algo bastante fastidioso, ya que Windows no tiene una buena capacidad para gestionar particiones de otros sistemas operativos. Por supuesto, este problema no se da en Linux, donde se puede resolver el problema fácilmente con GParted o similar, eliminando las particiones existentes, y creando una nueva partición FAT32. Pero con el administrador de discos de Windows el realizar esta tarea se hace poco menos que imposible.

Sin embargo, para casos como este tenemos la interfaz de línea de comandos en Windows 10, con una interesante aplicación llamada “diskpart”. Permite crear, extender o eliminar particiones, pero yo me voy a centrar en el caso del borrado. Los pasos para eliminar todas las particiones serían los siguientes:

  • En una ventana de comandos, teclear diskpart.exe.
  • En diskpart teclear list disk
  • Seleccionar el disco del que queremos eliminar la partición (por ejemple, el 1): select disk 1
  • Introducir el comando clean all para eliminar todas las particiones.
  • Salir del programa con el comando exit

¡Y listos! Una vez terminado, Windows detectará una nueva unidad sin particiones, y nos ofrecerá la posibilidad de formatear la memoria USB, creando una nueva partición que haga uso de todo el espacio de la misma.

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Etiquetas: , , ,

03 jul 20 Cómo encontrar la clave de una WiFi guardada en Windows 10

Este pequeño tutorial viene muy bien para encontrar la clave de una WiFi a la que nos hemos conectado en Windows 10, pero de la que no recordamos la clave: Find the WiFi Password in Windows 10 Using CMD. En español, la receta:

  • Abrir una ventana de comando con “cmd”
  • Obtener la lista de conexiones WiFi almacenadas en el sistema operativo: “netsh wlan show profile”
  • Una vez identificada la WiFi en cuestión, obtener la contraseña: “netsh wlan show profile <nombrewifi> key=clear”
Captura de clave de WiFi

Captura de clave de WiFi

…y de esta manera, nos aparecerá la clave de la WiFi seleccionada.

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Etiquetas: , , ,

29 jun 20 Uso de la cabecera X-Forwarded-For en un WordPress tras un proxy inverso

En fechas recientes he realizado un cambio de arquitectura en mi sitio web: he pasado de un servidor con WordPress colgado directamente en Internet a utilizar un frontal NGNIX como proxy inverso a la hora de acceder al sitio web. Hay diversas razones para ello, pero la principal está centrada en la seguridad. Sin embargo, esta arquitectura tiene una contrapartida: dado que el proxy inverso realiza una conversión SNAT de la dirección IP, el servidor WordPress interpreta que todas las peticiones vienen del proxy -lo que en realidad es rigurosamente cierto-, perdiéndose la información relativa a la IP real del equipo desde el que el usuario final accede.

Registros de WordPress mostrando la IP del servidor proxy inverso

Registros de WordPress mostrando la IP del servidor proxy inverso

Por suerte, este comportamiento se puede manipular. La idea general es incrustar la IP del cliente final en un campo cabecera (X-Forwarded-For), y luego modificar el comportamiento de WordPress para que haga uso de la IP contenida en esta cabecera como la IP del usuario. La receta para ello es la siguiente:

  • Configurar el proxy inverso que actúa de frontal para que incruste la IP del cliente en la cabecera X-Forwarded-For: En el caso de un servidor NGINX se realiza añadiendo la siguiente entrada al fichero nginx.conf:
    proxy_set_header X-Forwarded-For $remote_addr;
  • Verificar que la cabecera se inserta adecuadamente: En este caso, se puede realizar mediante una captura tcpdump en el servidor WordPress. Aquí dejo una pequeña guía de cómo realizarlo: TCPDump Capture HTTP GET/POST requests – Apache, Weblogic & Websphere
  • Indicar a WordPress que haga uso de la IP contenida en el campo X-Forwarded-For: Por último, hay que modificar el fichero wp-config.php del servidor WordPress, para reemplazar el valor del campo REMOTE_ADDR, que normalmente es la IP que realiza la petición a WordPress, por la IP contenida en la cebecera X-Forwarded-For. Se realiza incrustando este fragmento de código:
    // Use X-Forwarded-For HTTP Header to Get Visitor's Real IP Address

    if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
    $http_x_headers = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );

    $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
    }

Et voilà! A partir de este momento, nuestro WordPress pasa a mostrar de nuevo correctamente las IPs con la que se accede por parte de los usuarios del sitio a nuestro contenido.

Registro de WordPress mostrando correctamente la IP del usuario final

Registro de WordPress mostrando correctamente la IP del usuario final

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

Etiquetas: , , ,