Servidores

Plugin para imprimir en impresora térmica usando navegador web y JavaScript

El título es totalmente correcto: en este post te mostraré a imprimir tickets, recibos o facturas en una impresora térmica usando JavaScript del lado del cliente incluso si tu página web o aplicación está en un servidor en la nube.

Como sabemos, imprimir un ticket con JavaScript es posible, pero difícil para el usuario final, pues tiene que seleccionar la impresora y confirmar la impresión.

Otra desventaja de imprimir con JavaScript sin plugin es que no podemos cortar el papel, abrir el cajón o cosas de esas.

Por eso es que he creado la solución al problema y vengo a exponerla. Y no, no es una broma ni un post engañoso.

Continue reading…

Instalar servidor SSH sobre Termux en Android

Servidor SSH en Termux usando OpenSSH

En este post te mostraré cómo instalar un servidor SSH en Termux para que puedas iniciar sesión de forma remota.

La ventaja de esto es que podrás conectarte desde una PC u otro lugar en donde puedes conectar un teclado (ya que con el teclado del teléfono es complicado)

Vamos a usar el servidor openssh y veremos la forma de autenticar usando contraseña, o usando claves públicas y privadas.

Nota: recuerda configurar e instalar Termux, y no olvides ejecutar termux-setup-storage como en el tutorial que cito.

Instalar OpenSSH y herramientas

Comenzamos actualizando los repositorios, e instalando el paquete openssh:

pkg upgrade

pkg install openssh

En ambos casos, si pregunta, elegimos que sí escribiendo la letra Y.

También es necesario instalar net-tools y procps con:

pkg install net-tools (averiguar IP)

pkg install procps (matar procesos)

pkg install nano (para editar archivos)

Ajustes de OpenSSH

La configuración de OpenSSH está en $PREFIX/etc/ssh/sshd_config y podemos verla navegando con cd $PREFIX/etc/sshd y después usar cat sshd_config:

Autenticación con contraseña activa

El parámetro PasswordAuthentication está en yes, así que podemos ingresar con un usuario y contraseña en lugar de claves públicas y privadas.

Más adelante vamos a ver cómo cambiar este parámetro, ya que la autenticación con contraseña no es recomendada.

Iniciar y detener demonio SSH

Para iniciar el demonio, es decir, escuchar conexiones, se ejecuta:

sshd

Para matarlo o detenerlo, se usa:

pkill sshd

pkill viene con procps, por eso era necesario instalarlo.

Nota: se escucharán conexiones en el puerto 8022.

Conexión a servidor SSH en Android

Ya estamos escuchando conexiones SSH, pero todavía no sabemos nuestro usuario, contraseña e IP.

Averigua tu usuario escribiendo:

whoami

Ahora ponle una contraseña segura ejecutando:

passwd

Mostrar usuario con whoami y cambiar contraseña usando passwd

Finalmente mira cuál IP tienes, escribiendo:

ifconfig

(este comando viene con las net-tools)

Cuando tengas esos datos ya puedes conectarte desde otro lugar. Si usas linux en el terminal cliente ejecuta:

ssh TU_IP -p 8022

En caso de que uses Putty, rellena los campos y listo.

Cualquiera de los dos métodos, te llevará al proceso de autenticación, escribe el usuario y la contraseña y ya está.

Conexión a servidor SSH en Termux, usando Putty en Windows

Ya puedes administrar tu “servidor” de Linux sobre Android de manera remota.

Si muestra un aviso sobre “the server’s host key” haz click en

Nota: no se recomienda para nada usar autenticación con usuario y contraseña, lo mejor y más seguro es usar claves públicas y privadas.

Autenticación con clave pública y privada

Este método es el que se recomienda, pues agrega más seguridad y evita ataques de fuerza bruta.

Comenzamos preparando nuestro dispositivo creando el folder .ssh y el archivo authorized_keys; además de darles permiso.

Esto lo puedes hacer desde tu dispositivo o usando un cliente SSH (es decir, vamos a configurar las claves, pero por el momento, antes de configurarlas, podemos usar todavía la autenticación no segura)

Los comandos son:

El siguiente paso es generar un par de claves usando Putty como se ve en este tutorial detallado.

Si seguiste bien el tutorial de generación de claves públicas y privadas, tu conexión de Putty debe verse así (fíjate en la parte superior, dice Authenticating with public key):

Usar Putty y clave pública para una nueva sesión SSH en Android

Desactivar autenticación con contraseña

Ahora que ya tienes autenticación por clave pública y privada, desactiva (lo recomiendo altamente, por la seguridad) la autenticación por contraseña.

Navega hasta $PREFIX/etc/ssh/ y modifica el archivo sshd_config usando si quieres nano sshd_config; en donde dice PasswordAuthentication escribe no.

Guarda los cambios (CTRL + O, luego ENTER si usas nano) y reinicia el servidor SSH; esto hazlo desde la app de Termux pues si lo haces por SSH la conexión se romperá (obviamente)

Detén el servidor con pkil sshd y después vuelve a iniciarlo con sshd.

Así es como termina este tutorial; recuerda que tengo más material interesante sobre Termux, Linux y Android en mi blog.

Finalmente, dejo una referencia a la wiki de Termux.

¿Qué es JSONP? definición, diferencia, ejemplos y usos

En este post te voy a explicar qué es JSONP, para qué usarlo, cuál es la diferencia entre JSONP y JSON, algunos ejemplos y por qué fue creado.

Recuerda que JSONP está ligado a JavaScript del lado del cliente, y que la programación del lado del servidor puede ser con cualquier lenguaje, pero del lado del servidor se maneja de igual manera; justo como las peticiones AJAX.

Continue reading…

3 - Elegir root

Resetar contraseña de Ubuntu

Hoy, al intentar iniciar una máquina virtual con Linux Ubuntu que usé hace tiempo para unos ejercicios de la escuela me di cuenta de que había olvidado la contraseña.

No me costaba nada reinstalar el sistema, pues solo lo usaba para fines didácticos, pero la pereza pudo conmigo y preferí resetear la contraseña del usuario, además de documentar el proceso.

Recomendado: mira la administración de usuarios en Ubuntu para que entiendas cómo obtenemos la lista de usuarios y reseteamos la contraseña.

Continue reading…

Migrando un sitio de WordPress a otro servidor

Hoy voy a mostrar mi experiencia y una guía al migrar un sitio de WordPress de un servidor a otro. Concretamente de un servidor compartido a un VPS.

Pero antes, un poco de historia…

Era un sábado tranquilo por la mañana (no había escuela), desperté y revisé el correo para encontrarme con el siguiente mensaje:

Notificación disco duro lleno

Al parecer, tenía demasiados archivos en mi hosting y por lo tanto debía eliminarlos o actualizar mi plan.

El hosting funcionaba perfecto, era rápido y confiable, pero no me gustaban sus límites. Además, tenía un VPS para cosas que no tenían que ver con PHP y para un bot de Telegram personal, así que estaba desperdiciando su poder.

Por otro lado, al rentar el hosting compartido compré un dominio que no me hacía falta y quería deshacerme de él pero no podía porque tenía que cambiar el dominio principal y en fin, se iba a armar una cosa espantosa así que decidí mover mi sitio al VPS.

Continue reading…

Renombrar ejecutable de python3 a python en Linux Ubuntu

Renombrar comando python3 a python en Linux Ubuntu

En las versiones de Linux Ubuntu más recientes Python 3 ya viene preinstalado en la versión 2 y 3 (pues la versión 2, aunque es antigua, es usada por múltiples paquetes).

El problema se ve cuando queremos ejecutar un simple script de Python usando:

python script.py

(ya sé que también se puede con el Shebang pero eso es otra historia)

Si lo ejecutamos así se tomará a Python 2, y nosotros queremos Python 3; si lo queremos escribimos:

python3 script.py

Solo que es engorroso estar escribiendo “python3” cuando deberíamos escribir simplemente “python”.

Por ello es que hoy veremos cómo renombrar el ejecutable “python3” a “python” usando un alias; evitando así conflictos.

Continue reading…

6 - Crear tablas, insertar y listar datos

Instalar PostgreSQL en Linux Ubuntu

En este tutorial voy a explicar cómo instalar y configurar el gestor de base de datos Postgres 9.5 también conocido como PostgreSQL en Ubuntu 16.04; aunque es para esta versión de Linux, podría funcionar en otras distribuciones parecidas.

Lo que haremos será:

  1. Instalar PostgreSQL en Ubuntu
  2. Crear un usuario para administrar el gestor
  3. Crear una base de datos
  4. Iniciar sesión en la CLI de Postgres
  5. Insertar y consultar datos usando las sentencias INSERT y SELECT

Si usas Windows te invito a ver cómo instalar PostgreSQL 11 en Windows. Ahora sí comencemos con el tutorial para instalar PotgreSQL en Linux Ubuntu.

Este tutorial funciona tanto para Ubuntu en el servidor como en el escritorio.

Continue reading…

Contraseña incorrecta con MySQL en Linux al entrar como root – Error 1698 (280000)

Hay un error (si se le puede llamar así) muy común en Linux, y es que al iniciar en MySQL con el usuario root se deniega el acceso aunque la contraseña esté bien.

Es decir, aunque las credenciales sean correctas, Linux no permite que entremos como usuario root en MySQL. Normalmente emite el siguiente error:

Error 1698 (280000): Access denied for user ‘root’@’localhost’

La razón es simple: no se permiten conexiones a MySQL como usuario root, pero en este post veremos cómo podemos solucionar eso de dos maneras.

Continue reading…

Conectar a servidor FTP con FileZilla: ejemplos y guía

FileZilla tiene dos modos: modo cliente y modo servidor. En el modo servidor crea un servidor FTP y en el modo cliente se conecta a un servidor FTP.

En este post vamos a ver cómo administrar un sitio web usando FileZilla a través de FTP para administrar el sitio, modificar código, descargar o subir archivos.

Todas las pruebas las haré con un hosting de prueba. Si quieres usar FileZilla como servidor mira este post.

Continue reading…

Cómo obtener un hosting gratuito con dominio, PHP 7, MySQL y cuentas FTP

Este post no es engañoso, realmente te voy a mostrar cómo obtener un hosting gratuito  de PHP, con espacio ilimitado y bases de datos de MySQL sin límite sin que tengas que pagar un solo centavo.

El hosting del que hablo, además de ser gratuito, proporciona lo siguiente:

  • Panel de control llamado Vista Panel (para administrar el sitio)
  • Espacio ilimitado en disco
  • PhpMyAdmin
  • PHP versión 7
  • MySQL
  • Certificado para que tengas HTTPS
  • Cuentas de FTP
  • Un dominio

En resumen proporciona todo lo necesario para montar una app web que utilice PHP y MySQL. Voy a explicarte cómo crear una cuenta y comenzar a usarlo.

Al finalizar tendrás un sitio como el siguiente:

http://parzibyte-tests.byethost7.com/

 

Continue reading…

Petición POST, GET, PUT y DELETE en Go con net/http

Golang es un lenguaje utilizado del lado del servidor debido a su simplicidad de uso, potencia y velocidad.

Sin embargo, con Go también se pueden hacer peticiones HTTP. Es decir, Go también puede funcionar como cliente HTTP, no solo como servidor.

Como sabemos, hay 4 métodos básicos para las peticiones HTTP: POST para enviar datos, GET para obtener, PUT para actualizar y DELETE para eliminar.

Peticiones HTTP con Go y net http

En este post veremos ejemplos de cómo hacer estas 4 peticiones con Go usando el paquete net/http para lograr hacer una petición GET, POST, PUT y DELETE usando Golang.

También vamos a ver cómo escribir y enviar encabezados o el código de respuesta (200 para OK, 500 de error, 405 de no permito, etcétera)

El sitio web que vamos a usar para probar será httpbin.org, el cual sirve como espejo para probar que realmente estamos haciendo las peticiones y enviando datos.

Continue reading…

Instalación de Microsoft SQL Server Management Studio en Windows 10

En el post anterior vimos cómo instalar el servidor de (valga la redundancia) SQL Server 2016 sobre Windows 10.

Como lo dije en el mismo, solo instalamos el servidor pero no el “cliente” o la herramienta de interfaz gráfica para administrarlo.

Por eso es que en este post voy a mostrar cómo instalar Microsoft SQL Server Management Studio que es la interfaz de administración de SQL Server que todos conocemos.

Continue reading…