miércoles, 30 de diciembre de 2020

Conectar a un FTP desde SUSE Linux 15 o superior



Cómo conectar a un servidor vía FTP desde SUSE Linux Enterprise Server 15 o superior.



Hoy he tenido que conectar hacia un servidor usando FTP, ya que en el otro lado no quieren usar SFTP. Cuál ha sido mi sorpresa que al tratar de realizar la conexión como he hecho toda la vida, es decir:

HOST# ftp 192.168.1.1

El comando ftp me ha devuelto:

If 'ftp' is not a typo you can use command-not-found to lookup the package that contains it, like this: cnf ftp

Al usar SUSE Linux Enterprise Server 15, he ido a software.opensuse.org para buscar el binario 'ftp', pero no he encontrado el paquete. Tras darle vueltas al asunto, me he decantado por instalar lftp para poder conectar a un servidor remoto usando el protocolo ftp, ya que el programa lftp permite usar múltiples protocolos para iniciar una conexión (FTP, FTPS, HTTP, HTTPS, FISH, SFTP...).

He instalado lftp con zypper:

HOST# zypper install lftp

Tras instalar lftp, he ejecutado el comando 'ftp' y he visto lo siguiente:

HOST# ftp Wrapper for lftp to simulate compatibility with lukemftp lftp :~>

Es decir, una vez instalado, lftp actúa como wrapper al usar el comando ftp.

Visto esto, me he conectado al servidor como he venido haciendo toda la vida:

HOST# ftp 192.168.1.1 Wrapper for lftp to simulate compatibility with lukemftp Name (root): user Password: lftp user@192.168.1.1:~>

Listo, ya podemos volver a usar el comando ftp desde la terminal o ejecutarlo de forma desatendida dentro de nuestros scripts al usar un SUSE Linux Enterprise Server 15 o superior.
0

miércoles, 23 de diciembre de 2020

NGINX: 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