miércoles, 23 de diciembre de 2020

Protocolos SSL y no SSL en el mismo puerto



Cómo ejecutar protocolos con SSL y sin SSL en el mismo puerto con NGINX.



NGINX tiene una característica llamada "$ssl_preread_protocol" que le permite distinguir entre SSL / TLS y otros protocolos al recibir tráfico en un puerto TCP determinado. Esto es útil para recibir dos aplicaciones distintas en un mismo puerto y evitar así las restricciones de un firewall en origen, ejecutando, por ejemplo, HTTPS y SSH en el mismo puerto pero enviándolo por detrás a distintos hosts.

NGINX inspecciona el mensaje ClientHello inicial en una conexión SSL o TLS y determina la versión de TLS. Por otro lado, si la conexión no usa SSL o TLS, la variable $ssl_preread_protocol permanecerá en blanco, lo que indica que la conexión está usando un protocolo que no es SSL / TLS, como SSH.

Veamos un ejemplo de esto:

stream { upstream ssh { server 192.0.2.1:22; } upstream web { server 192.0.2.2:443; } map $ssl_preread_protocol $upstream { default ssh; "TLSv1.2" web; } server { listen 443; proxy_pass $upstream; ssl_preread on; } }

En el ejemplo anterior, NGINX escucha por el puerto 443.

Si la conexión no es TLS, el tráfico va al puerto 22 del servidor 192.0.2.1.

Si, por el contrario, la conexión contiene TLS, el tráfico se envía al puerto 443 del host 192.0.2.2.


Fuentes:

https://www.nginx.com/blog/running-non-ssl-protocols-over-ssl-port-nginx-1-15-2/
0

miércoles, 16 de diciembre de 2020

Windows: averiguar origen de NTP



Averiguar donde realiza consultas NTP una máquina Windows.



Si queremos saber a qué servidor está realizando consultas NTP nuestra máquina Windows, podemos usar la utilidad de línea de comandos w32tm.

Para averiguar el orgien del NTP, abrir un cmd y ejecutar el siguiente comando:

w32tm /query /status

En un entorno real:

C:\Users\blai>w32tm /query /status Indicador de salto: 0(ninguna advertencia) Capa: 4 (referencia secundaria - sincronizada mediante (S)NTP) Precisión: -23 (119.209ns por tick) Demora de raíz: 0.0934627s Dispersión de raíz: 0.1888415s Id. de referencia: 0xC0A86E35 (IP de origen: 192.168.1.1) Última sincronización de hora correcta: 04/06/2021 15:32:08 Origen: DC01.dominio.local Intervalo de sondeo: 12 (4096s)

En el output, DC01.dominio.local y 192.168.1.1 son la dirección de origen de NTP.
0

miércoles, 9 de diciembre de 2020

Linux: conectarse a una carpeta en red con SMBv1



¿Cómo conectarse a una carpeta compartida desde Linux con Samba versión 1?



Samba usa por defecto la versión 2 para conectarse a un recurso compartido en red.

Por otro lado, el binario smbclient permite usar SMBv1 para conectarse a una carpeta especificándolo en el parámetro options de la línea de comandos. Esto es útil si queremos conectarnos a un dispositivo antiguo que solo acepte SMBv1.

Para conectarnos a un dispositivo vía línea de comandos usando SMBv1:

HOST# smbclient --option='client min protocol=NT1' 192.168.1.1

192.168.1.1 es la IP del dispositivo remoto.

Fuentes:

https://wiki.samba.org/index.php/Samba_4.11_Features_added/changed#SMB1_is_disabled_by_default
0

miércoles, 2 de diciembre de 2020

Instalar smbclient en SUSE Linux



Cómo instalar smbclient en SLES (SUSE Linux Enterprise Server).



Recientemente quise instalar smbclient en un SLES para conectarme a una carpeta compartida. La particularidad de este sistema es que ya tenía un servicio de samba corriendo a modo servidor, pero no tenía instalado el ejecutable smbclient, necesario par actuar como cliente:

HOST# smbclient -bash: smbclient: command not found

Tras probar varias cosas como "zypper install smbclient", "zypper install smb*", "zypper install smb-*" etc. logré dar en el clavo con "zypper install samba-client":

HOST# zypper install samba-client Refreshing service 'Basesystem_Module_15_SP2_x86_64'. Refreshing service 'Desktop_Applications_Module_15_SP2_x86_64'. Refreshing service 'Development_Tools_Module_15_SP2_x86_64'. Refreshing service 'Python_2_Module_15_SP2_x86_64'. Refreshing service 'SUSE_Linux_Enterprise_Server_15_SP2_x86_64'. Refreshing service 'SUSE_Package_Hub_15_SP2_x86_64'. Refreshing service 'Server_Applications_Module_15_SP2_x86_64'. Refreshing service 'Web_and_Scripting_Module_15_SP2_x86_64'. Loading repository data... Reading installed packages... Resolving package dependencies... The following 3 NEW packages are going to be installed: gvfs-backend-samba libsmbclient0 samba-client 3 new packages to install. Overall download size: 1.3 MiB. Already cached: 0 B. After the operation, additional 3.6 MiB will be used. Continue? [y/n/v/...? shows all options] (y): y

Una vez instalado, ya pude ejecutar smbclient:

HOST# smbclient Usage: smbclient [-?EgqBVNkPeC] [-?|--help] [--usage] [-R|--name-resolve=NAME-RESOLVE-ORDER] [-M|--message=HOST] [-I|--ip-address=IP] [-E|--stderr] [-L|--list=HOST] [-m|--max-protocol=LEVEL] [-T|--tar=IXFqgbNan] [-D|--directory=DIR] [-c|--command=STRING] [-b|--send-buffer=BYTES] [-t|--timeout=SECONDS] [-p|--port=PORT] [-g|--grepable] [-q|--quiet] [-B|--browse] [-d|--debuglevel=DEBUGLEVEL] [-s|--configfile=CONFIGFILE] [-l|--log-basename=LOGFILEBASE] [-V|--version] [--option=name=value] [-O|--socket-options=SOCKETOPTIONS] [-n|--netbiosname=NETBIOSNAME] [-W|--workgroup=WORKGROUP] [-i|--scope=SCOPE] [-U|--user=USERNAME] [-N|--no-pass] [-k|--kerberos] [-A|--authentication-file=FILE] [-S|--signing=on|off|required] [-P|--machine-pass] [-e|--encrypt] [-C|--use-ccache] [--pw-nt-hash] service <password>

Espero que este artículo ahorre tiempo a alguien :)
0