Website not available with Sophos XG

Este error, es un dolor de cabezas que suele dar el UTM de Sophos. La implementación del mismo permite filtrar el tráfico, y controlar ataques indeseados, entre otras cosas. Sin embargo en la panacea que promete, presenta a veces errores que son dificiles de detectar, sobre todo porque sus logs no quedan del todo accesible, y toca ingresar siempre por consola para intentar encontrar el meollo del asunto.

En concreto, muchas veces al intentar ingresar a sitios «https», suelen haber problemas al no cargar correctamente los scripts, certificados, u otros motivos extraños que terminan provocando errores 50x. Sin embargo los mismos al probarlo esquivando al Sophos XG funcionan correctamente. Por ello es que empiezas a dudar del causante del problema.

Ante esto encontré una solución ( no elegante) que funciona para arreglar el error, sin embargo aún no está claro el motivo que se soluciona. Lo que hacemos es reiniciar el servicio de awarrenhttp, que es el proxy web encargado del filtro del tráfico.

No se hable mas!!!. Les dejo la guía:

You enabled debug logging for the web proxy, reviewed the service status and log contents, then disabled debug logging.

OpenPuTTY from the desktop connect to Sophos XG
Open the Advanced Shell4 and run:
service -S
This command shows you the status of all of the services on the XG Firewall.

service–S | grep http


You can filter this output using grep.
Run:
service awarrenhttp:debug–ds nosync
This command will put the service in-it is not synchronized across a HA cluster.
Run:
service–S | grep http
You can see that the service is nowrunning and is in debug mode.
Run:
tail–f /log/awarrenhttp.log
command you can see the debuglogging.
PressCtrl + C
Run:
service awarrenhttp:debug–ds nosync
Running this command again will takethe service out of debug.
Run:
service–S | grep http
Confirm that the service is no longer indebug mode.
You enabled debug logging for the web proxy, reviewed the service status and log contents, then disabled debug logging.

Consejos para asegurar tu MS SQL Server

Microsoft SQL Server es un sistema de administración de bases de datos relacionales (RDBMS) que contiene pocos componentes y subcomponentes. Cada componente en SQL Server tiene su propio mecanismo de seguridad que está casi separado el uno del otro. La seguridad de Database Engine incluye la cuenta de servicio, la instancia y la seguridad de las bases de datos.

Como DBA y Sysadmin debes pensar en diferentes mecanismo para asegurar tus motores de bases de datos. No solo por la criticidad de la información, sino por el costo de no estar en producción.

Lo primero que debes pensar es a nivel de networking que medidas tomar

  • Cambia el puerto predeterminado de tu SQL Server (https://maurobernal.com.ar/blog/mssql/cambiar-el-puerto-del-ms-sql-server)
  • SQL Server puede encriptar el protocolo TDS con protocolo SSL. Para habilitar el protocolo SSL, SQL Server necesita un certificado auto firmado o un certificado autorizado de los proveedores de certificados.
  • Revisa y crea las reglas en tu firewall en base a tu puerto
    • Por ejemplo: limita las conexiones entrantes solo a tu segmento de red permitido
netsh advfirewall firewall add rule name="SQL Access" ^
dir=in action=allow ^
program="%programfiles%\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" ^
remoteip=LOCAL_SUBNET

Seguido a este puedes tener en cuenta estas recomendaciones a nivel de sistema operativo:

  • De forma predetermina el servicio del MS SQL Server corre con su propio usuario que tiene permisos limitados a los archivos, a la red y al registro. Mi consejo es que trabajes siempre dentro de un entorno de directorio activo (DC) y que crees un usuario nuevo, único para cada instancia de SQL Server
  • Este usuario debe ser extremadamente limitado, solo para correr el servicio.
  • Recuerda que complementario al servicio del SQL Server, tendrás el del agente, encargado entre otras cosas de efectuar tu backup. Haz lo mismo y limita su ambito solo al directorio de backups, el cúal no debería estar disponible para usuarios normales del directorio activo

A nivel de aplicación, ten tu información encriptada y cifrada

  • Puedes encriptar la información almacenada en tus tablas, limitándose a campos extremadamente sensibles (como tarjetas de crédito, cuentas bancarias, etc)
  • Pero también puedes cifrar toda la base de datos.

Mas adelante te mostraré como hacer estos dos últimos puntos…

Cambiar el puerto del MS SQL Server

Primero que nada recordemos que el motor de Microsoft corre bajo los siguientes puertos:

TCP:1433

UDP:1433

Seguido a este te dejamos este post donde te contamos como funciona la seguridad de MS SQL (https://maurobernal.com.ar/blog/consejos-para-asegurar-tu-ms-sql-server/)

Entendiendo esta ya podemos empezar a cambiar la configuración de nuestro motor, para cambiar su puerto predeterminado. Lo primero que debes hacer es buscar el «SQL Server Configuration Manager» (o administrador de configuración de SQL Server) y buscar la opción de «SQL Server Network Configuration» (Configuración de Red) \ Protocols for MOTOR ,

y una vez seleccionado buscas la configuración de TCP/IP y le das doble clic. En la nueva ventana emergente ya puedes cambiar el puerto como te mostramos en la imagen.

Con esto sería suficiente. Solo toca ahora reiniciar el servicio. Puedes hacerlo también desde la misma aplicación.:

PD: No te olvides de abrir el puerto en tu firewall. Te dejo una ayuda para hacerlo desde CMD. Por ejemplo si elegiste el 11433:

netsh advfirewall firewall add rule name="SQL Puerto alternativo" dir=in localport="11433" protocol=tcp action=allow

Si quieres verificar, puedes usar tu SQL Management Studio ( https://maurobernal.com.ar/blog/mssql/como-especificar-el-puerto-en-el-sql-server-management-studio)

Deja tus comentarios si te son útiles estos consejos…

Actualizar Grandstream GXW4104

Tocó trabajar con este Gateway para convertir 4 líneas analógicas de Telefónica de Argentina y digitalizarlas para trabajar sobre un Asterisk, con distro de Issabel 4.5

http://www.grandstream.com/products/gateways-and-atas/voip-gateways/product/gxw4104/4108

La primer dificultad es tener el GXW con la última versión del firmware. Para ello debes tener las diferentes versiones para irlo actualizando de forma gradual.

La recomendación es que hagas un reset factory, para borrar la cache, y luego comenzar con la actualización, sino puedes recibir el siguiente error:

ERROR Failed to write firmware /hm/gxw410x/1_0_1_10/load64b.bin to Flash: Data MD5 fail(4105)

Luego puedes comenzar con la actualización cambiando el URL de Firmware.

A continuación te dejo un server privado de Grandstream en donde podremos obtener las versiones ya descontinuadas.

http://173.254.235.113/hm/gxw410x

– 1.0.1.25

http://173.254.235.113/hm/gxw410x/1_0_1_25/

– 1.3.4.9

http://173.254.235.113/hm/gxw410x/1_3_4_9/GXW410x_R_1_3_4_9/

– 1.4.1.4

http://173.254.235.113/hm/gxw410x/1_4_1_4/

– 1.4.1.5

http://firmware.grandstream.com

Cualquier duda deja tus comentarios. Ya hoy tenemos este esquema funcionando!!!

CRUD con Entity Framework en ASP.NET MVC con NET Framework

Primero te cuento que he creado una serie de videos en mi canal de youtube ( https://www.youtube.com/c/maurobernal) para explicar como armar una aplicación en .NET MVC desde 0.

En esta oportunidad vemos como crear el CRUD con Entity Framework y Linq

Aqui veremos como pasar del resultado de una query (Iqueryable) a nuestro modelo (List<ofT>) y como crear el crud

-Create (Crear un registro nuevo)
-Read (Select – Leer los registros de la tabla)
-Update (Actualizar los registros de la tabla)
-Delete(Eliminar los registrode la tabla)

https://github.com/maurobernal/Portal… – Proyecto en GitHub

Finalmente espero que te sirva, y apoyes este nuevo emprendimiento que estamos tomando al subir contenidos a nuevos canales como Youtube y Twitch.

Error 0x80070422 con Flight Simulator 2020

Si estabas ansioso de instalar Flight Simulator 2020, y te encuentras con el bendito error 0x80070422 aquí te contamos como solucionarlo.

Primero ten en cuenta que puede darse el mismo error para otro juego, y es ocasionado por no poder loguearse correctamente la aplicación de XBOX APP frente a la tienda de Windows Store.

Primero debes verificar de tener dentro de Windows Store la aplicación de XBOX Beta. Luego revisar que estén arriba los siguientes servicios

  • Xbox Live Auth Manager (Administrador de autentificación de Xbox Live)

  • Xbox Live Game Save (Juegos guardados en Xbox Live) Xbox Live Networking Service (Servicio de red de Xbox Live)

En caso de que estén deshabilitados, debes pasarlo al tipo de inicio «automático» y luego «iniciar»

Y por último debes ingresar a la siguiente carpeta: 

En la barra del explorar escribe:

%appdata%  Una vez dentro sube un nivel y ve a la siguente ubicación: C:\Users\XXXXX\AppData\LocalPackages\Microsoft.XboxIdentityProvider_8wekyb3d8bbwe\AC\TokenBroker y borra las carpetas: Account y Cache

 

Eso es todo!!!

Cambiar Issabel a español

Te mostramos como cambiar en Issabel (o Elastix) los audios y los textos

Elastix logro convertirse en la PBX más utilizada por su fácil instalación y por su creciente comunidad. Con la venta del producto de Palo Santos quedó un vació que rápidamente pudo cubrir Issabel. Si bien aún no logra establecerse como su antecesor sigue siendo la primer opción al instalar nuestra PBX. Sin embargo luego de realizar la instalación podremos corroborar que los audios y textos de las interfaces web están en inglés. Hoy te mostramos como cambiar los audios y textos de Issabel PBX (aplica también a Elastix)

Por defecto vienen los idiomas alojados en  /var/lib/asterisk/sounds y cuenta con en:English, es:Español, fr:Francés, br:Portugués (Brasil)

Para cambiar el idioma de las voces, es necesario editar los archivo de configuración de asterisk dentro de /etc/asterisk:

  • sip_general_custom.conf para las extensiones SIP
  • iax_general_custom.conf para las extensiones IAX2

Solo se debe agregar la línea language=es y reiniciar el servicio de asterisk.

Para cambiar los textos de los menús debes ingresar por la interface web en SYSTEM / LANGUAGE

Cambiar idioma de Issabel a Español
Cambiar idioma de Issabel a Español
Cambiar idioma de issabel a Español 2
Cambiar idioma de Issabel a Español 2

Renovar certificado de Elastix o Issabel

La aparición de asterisk como alternativa a las centrales telefónicas pagas motivo la creación de diferentes aplicaciones que tomaran como base este servicio, y facilitarán su administración mediante interfaces web. Este es el caso de AsteriskNow, hoy FreePBX (https://www.freepbx.org/). Continuando con esta idea hubo empresas que aprovecharon esta idea, y crearon una aplicación que trabajara sobre el esquema anterior. Así fue que Palos Santos Solutions de la mano de Edgar Landivar fundaron Elastix.

Hoy Elastix ya desaparecido del mercado, y con la lenta continuación del proyecto a través de Issabel (https://www.issabel.org/) es que seguimos usando ambas distro de esta PBX. Lo que resulta muy común que luego de varios años de tener nuestras plantas en producción ya tendremos nuestros certificados SSL vencidos, y recibimos el molesto mensaje de advertencia por parte de nuestros navegadores.

Estos son los simples pasos para generar un nuevo certificado SSL para nuestra PBX con Elastix o Issabel

Crear un nuevo certificado

Lo primero que haremos es generar nuestro nueva key. En este punto nos solicitará un password.

openssl genrsa -des3 -out server.key 1024

A partir de este pediremos el certificado autoafirmado. Deberemos completar los datos de nuestra organización.

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 730 -in /root/server.csr -signkey /root/server.key -out /root/server.crt

Ahora podremos reemplazar nuestra key y certificado actual. Si tienes duda de donde están puedes verificar en: /etc/httpd/conf.d/ssl.conf

(opcional) hacemos un backup de la key y el certificado actual

 cp /etc/pki/tls/private/localhost.key /etc/pki/tls/private/localhost.key.bakcp /etc/pki/tls/certs/localhost.crt /etc/pki/tls/certs/localhost.crt.bak

Reemplazamos los mismos

cp server.key /etc/pki/tls/private/localhost.key
cp server.crt /etc/pki/tls/certs/localhost.crt
Reiniciamos el servicio. En este momento nos solicitará el password que usamos antes en la key
service httpd restart

Ya está listo.

Como restaurar una sola tabla en MYSQL

Desde MYSQL es posible excluír una tabla en el momento del backup, pero no es posible solo restaurar una sola tabla. A continuación te mostramos como:

Restaurar una sola tabla en MYSQL

En base a lo anterior en el momento de realizar nuestro backup con MYSQLDUMP podemos excluir o ignorar aquellas tablas que no deseamos realizar un backup mediante el parametro –ignore

--ignore-table=db_name.tbl_name Do not dump the given table, which must be specified using both the database and table names. To ignore multiple tables, use this option multiple times. This option also can be used to ignore views.

Sin embargo, en ambientes de producción es necesario restaurar una sola tabla (o varias) en una nueva ubicación. Para ello podemos hacer lo siguiente:

1- Desde nuestra consola Linux creamos el siguiente script:

touch restore.sh
nano restore.sh

2 – Colocamos en su interior lo siguiente:

#!/bin/bash

####
# Split MySQL dump SQL file into one file per table
# based on http://blog.tty.nl/2011/12/28/splitting-a-database-dump
####

if [ $# -lt 1 ] ; then
  echo "USAGE $0 DUMP_FILE [TABLE]"
  exit
fi

if [ $# -ge 2 ] ; then
  csplit -s -ftable $1 "/-- Table structure for table/" "%-- Table structure for table \`$2\`%" "/-- Table structure for table/" "%40103 SET TIME_ZONE=@OLD_TIME_ZONE%1"
else
  csplit -s -ftable $1 "/-- Table structure for table/" {*}
fi

[ $? -eq 0 ] || exit

mv table00 head

FILE=`ls -1 table* | tail -n 1`
if [ $# -ge 2 ] ; then
  mv $FILE foot
else
  csplit -b '%d' -s -f$FILE $FILE "/40103 SET TIME_ZONE=@OLD_TIME_ZONE/" {*}
  mv ${FILE}1 foot
fi

for FILE in `ls -1 table*`; do
  NAME=`head -n1 $FILE | cut -d$'\x60' -f2`
  cat head $FILE foot > "$NAME.sql"
done

rm head foot table*

Fuente: https://gist.github.com/jasny/1608062

3 – Le damos permiso para ejecutar el script

chmod +x restore.sh

4- Uso del script

El mismo permite limpiar un archivo de backup de MySQL y dejar la parte relevante a nuestra tabla. Su uso sería así:

  • Extraer todas las tablas en archivos individuales
./restore.sh mybackup.sql
  • Extraer una sola tabla específica en un archivo individual
restore.sh mybackup.sql table1

5-Restaurar la tabla en una base especifíca

mysql -D mydatabase < mytable1.sql

Espero que le sea útil

 

Error con mapsbrokers o OneSync en Win Server 2016

Lo primero que hago en un Windows Server 2016 o superior que trabaja como host de Hyper V es deshabilitar los servicios innecesarios.

Error con MapsBrokers o OneSync_

Hay una serie de servicios encargados de recopilar información, y/o actualizar la ofimática de Windows (maps, correos, contactos) que son innecesarios en un servidor de producción.

En una sesión de PowerShell con derechos de administrador deshabilitamos los siguientes servicios:

Set-Service -Name CDPUserSvc -StartupType Disabled
Set-Service -Name OneSyncSvc -StartupType Disabled
Set-Service -Name DiagTrack -StartupType Disabled
Set-Service -Name lfsvc -StartupType Disabled
Set-Service -Name MapsBroker -StartupType Disabled
Set-Service -Name Themes -StartupType Disabled
Set-Service -Name XblAuthManager -StartupType Disabled
Set-Service -Name XblGameSave -StartupType Disabled