Codetech Blog

Las últimas noticias y anuncios sobre nuestra infraestructura.

SSH

Reiniciar servidor Linux por SSH

  • SSH

Se puede reiniciar un Servidor Cloud desde la consola de comandos de Linux lanzando alguno de los siguientes comandos:

  • shutdown -r nowEl comando shutdown -r now envía la señal SIGTERM a los procesos que se encuentren funcionando. En caso de que estos no se cierren enviará un SIGKILL. Una vez los procesos han finalizado, sincroniza el sistema de archivos (filesystem), y desmonta las unidades de disco, de forma que en el siguiente arranque no haya errores en los sistemas de archivos por un "unclean shutdown".
  • rebootIgual que el comando shutdown -r now
  • echo 1 > /proc/sys/kernel/sysrq
    echo b > /proc/sysrq-trigger
    Estos dos comandos, hacen reset directo a nivel de interrupción de hardware, es decir que sería lo mismo que apretar el botón de reset del equipo, con todo lo que ello conlleva.

     

    Advertencia

    Con este comando el sistema no espera a que los procesos se cierren, no sincroniza el sistema de archivos y no se desmontan las unidades de disco. Por lo tanto te arriesgas a que en el siguiente inicio del sistema tengas que ejecutar un chequeo de disco (fsck) con lo que ello comporta.

Leer más

Eliminar archivos con más de X días en Linux

  • SSH

El comando find en Linux tiene muchas opciones y argumentos que se pueden utilizar, y entre ellos está poder ejecutar otro comando para cada archivo. Partiendo de esta base, es posible encontrar que archivos tienen más de un cierto número de días, y por ejemplo, utilizar el comando rm para eliminarlos.

La sintaxis para encontrar y eliminar, por ejemplo, archivos que tengan más de 5 días:

find /ruta/de/los/archivos* -mtime +5 -type f -exec rm {} \;

Explicación de código:

  • El primer argumento "/ruta/de/los/archivos*" es la ruta de acceso a los archivos. Nosotros recomendamos usar la ruta absoluta, y antes de utilizar el comando probarlo sin el comando rm para asegurarte de que estás obteniendo los resultados deseados.
  • El segundo argumento "-mtime", se utiliza para especificar el número de días que debe tener el archivo para que se ejecute la segunda parte. En este caso, con el “+5” estarías indicando que quieres encontrar archivos que tengan más de 5 días.
  • El tercer argumento "-type", se utiliza para especificar lo que estamos buscando, en este caso “f” indica que buscamos solo archivos (Files en inglés).
  • El cuarto argumento "-exec", te permite lanzar un comando sobre los resultados, como por ejemplo “rm“.
  • Por último, para cerrar el comando se especifica "{} \;".

Leer más

Bloquear o deshabilitar el acceso de root por SSH

  • SSH

Es posible proteger de intentos de acceso externos un servidor VPS Linux estableciendo una contraseña segura para el usuario root, sin embargo sigue siendo posible el acceso mediante fuerza bruta.

Para evitar en la medida de lo posible este tipo de ataques, una de las prácticas recomendadas es bloquear el acceso del usuario root, realizar los accesos con algún usuario que no sea habitual, y una vez dentro cambiar al usuario root si fuera necesario.

Para poder hacer estos cambios es necesario acceder mediante SSH al servidor con el usuario root:

En este ejemplo vamos a emplear el usuario tester para realizar las conexiones una vez deshabilitado el usuario root para el acceso directo por SSH, pero es posible indicar cualquier nombre. Los pasos a seguir serían los siguientes:

  1. Crear el usuario tester con el comando
    adduser:# adduser tester 
  2. Especificar una contraseña para el usuario tester con el comando
    passwd.
    # passwd tester
    Nota: Cuando se solicite tendrás que teclear la contraseña deseada

     

    Nota

    Es posible probar que la conexión es correcta mediante el comando sshdesde el mismo servidor:

    # ssh tester@ip.del.servidor

  3. Modificar la variable de PermitRootLogin yes a PermitRootLogin no en el archivo de configuración de SSH. Este está ubicado normalmente en /etc/ssh/sshd_config:
    # vi /etc/ssh/sshd_config 
  4. Reiniciar el servicio para aplicar los cambios.
    Para CentOS:
    # /etc/init.d/sshd restart 
    Para Debian:
    # /etc/init.d/ssh restart 

Una vez realizados los pasos anteriores, el acceso mediante root a SSH no será posible, y tendrás que acceder con el usuario creado para, una vez dentro, cambiar a root mediante el comando su –.

Leer más

Ver archivos y carpetas más grandes por SSH

  • SSH

Para comprobar que archivos ocupan más espacio en su servidor Linux existen diferentes métodos, uno de los más sencillos y que puede resultar de gran utilidad sería utilizando el siguiente comando desde SSH:

du -h / | grep ^[0-9].G

Este sencillo comando te mostrará en pantalla todos los archivos de mínimo 1GB de peso.

Explicación de los parámetros

    • -h: Hace que el tamaño de los archivos se muestre en formato humano (Kylobytes, Megabytes, etc.)
    • /: Este símbolo implica que la búsqueda se hace desde la raíz del servidor. Es posible incluir una ruta para que se busque dentro de “x” carpeta.

Por ejemplo, este comando te mostraría en pantalla todos los archivos de mínimo 1GB de peso desde la carpeta /var/www/vhost/tunombrededominio.com:

du -h /var/www/vhost/tunombrededominio.com | grep ^[0-9].G

  • |: Hace que el segundo comando tras este símbolo utilice los resultados del primer comando.
  • grep: Busca el patrón que se indica a continuación del comando
  • ^: Utilizado fuera de los corchetes indica que los resultados de la búsqueda deben empezar por el símbolo después de este carácter
  • [0-9]: Indica que en esta posición el carácter debe ser un número entre 0-9
  • .: Cada punto corresponde a un carácter (menos un salto de linea)
  • G: Representa la unidad de tamaño gigabyte. También es posible utilizar “K” para kilobyte o “M” para megabyte.

Para encontrar información detallada de todos los parámetros disponibles para “du” puedes utilizar el comando:

man du

Leer más

Comando TOP Linux

  • SSH

El comando top es muy útil ya que te puede ayudar a averiguar el estado de tu servidor, proporcionándote información sobre la carga actual, el número de días que lleva encendido sin reiniciarse, el número de usuarios conectados por SSH, y en definitiva, información sobre tu servidor en tiempo real.

Este comando se tiene que ejecutar desde SSH, por lo tanto tendrás que acceder a tu servidor por SSH para poder utilizarlo:

Una vez dentro, simplemente ejecuta el comando:

# top

Esto te mostrará información detallada como la que aparece en la imagen siguiente:

top

  • Linea 1: Proporciona información sobre la hora actualel tiempo que lleva encendido el servidor, el número de usuarios conectados y la carga del servidor en intervalos de 1, 5 y 15 minutos.
  • Linea 2: Muestra el número total de procesos, el número de procesos corriendo, el número de procesos “durmiendo”, el número de procesos parados y el número de procesos “zombie”.
  • Linea 3: Proporciona información sobre la carga de CPU.
    • Porcentaje de CPU usada por los procesos de usuarios ( 20.8%us )
    • Porcentaje de CPU usada para procesos del sistema ( 9.8%sy )
    • Porcentaje de CPU con prioridad de upgrade nice ( 0.0%ni )
    • Porcentaje de CPU que actualmente no se está usando ( 70.0%id )
    • Porcentaje de CPU esperando para las operaciones I/O ( 0.0%wa )
    • Porcentaje de CPU sirviendo interrupciones de hardware ( 0.0%hi )
    • Porcentaje de CPU sirviendo interrupciones de software ( 0.2%si )
    • La cantidad de CPU “robada” de esta máquina virtual por el hypervisor y otras tareas. Este proceso será de 0 en PCs de sobremesa y servidores sin máquinas virtuales ( 0.0%st )
  • Linea 4 y 5: Muestra información sobre el uso de la memoria y el swap.

Leer más

Usar WinSCP para subir archivos

  • SSH

Pasos a seguir para subir archivos a un Servidor por SSH utilizando WinSCP

    1. Descarga el programa WinSCP

Información adicional

Puedes encontrar el programa WinSCP en la web oficial del software en la URL:
http://winscp.net/eng/docs/lang:es.

    1. Una vez descargado, debes instalar el software en el ordenador desde que quieras acceder
    2. Una vez ejecutes el programa te aparecerá la siguiente pantalla
      winscp
      En este menú deberás indicar los siguientes datos:

       

      • IP o nombre del servidor: el nombre de tu servidor (p.ej. xxx.xxx.xxx.xxx o sunombrededominio.com)
      • Usuario: root
      • Contraseña: contraseña del usuario root
      • “Protocolo”->”Archivos de Protocolo”: aquí debes cambiar en el menú desplegable SFTP por SCP
    3. Haz clic en “Conectar” si quieres conectar directamente a la dirección que has escrito, o haz clic en “Guardar si prefieres guardar la configuración de conexión para futuros accesos
    4. Una vez el software conecte a tu servidor debería aparecer una pantalla como la siguiente:
      winscp2

Siguiendo estos pasos podrás subir y descargar archivos desde tu servidor Linux simplemente arrastrando o copiando carpetas / archivos de tu ordenador personal a tu servidor.

Leer más

Ver memoria libre en Linux

  • SSH

Si necesitas saber el uso actual de la memoria de tu servidor Linux, así como la memoria libre o total, bastará con utilizar el comando free.

Como para ejecutar cualquier otro comando de Linus, tendrás que acceder mediante SSH a tu servidor.

Una vez dentro de la consola del servidor, podrás ejecutar el siguiente comando:

free -m -t

Esto te mostrará información sobre la memoria RAM y swap del servidor, incluida la total y la que se encuentre actualmente libre, en Megabytes.

El Output de este comando debería ser similar a esta imagen:

freememory

En estas líneas podrás ver por orden, el total, el usado y la cantidad libre.

Es posible utilizar otras medidas de archivo, kilobytes, megabytes, gigabytes, y terabytes, con las siguientes opciones:

free -k

free -m

free -g

free –tera 

Esta imagen sería otro ejemplo de Output esta vez con la opción de mostrarlo en gigabytes:

freememory2

Leer más

Cómo acceder a SSH desde Windows con PuTTy y PuTTygen

  • SSH

Lo primero que tienes que hacer es descargar el programa PuTTygen para generar tu clave privada e introducirla en .ssh/authorized_keys.

Una vez descargado e iniciado el programa se te mostrará la siguiente imagen para poder proceder a generar la clave privada:

sshkeys1

 

Así, procederás a generar la clave privada:

 

sshkeys2

La cadena que se ha generado en este ejemplo es la siguiente:

ssh-rsa 
AAAAB3NzaC1yc2EAAAABJQAAAIBnERhIC5eDep7EYChfc6ENBX++mZzD3hjEeJrIV5sbIr9rpPkU0
VETXUyTMB59hAU1+U8tRBbvGQFoSH/5iallYKXAQmqMRyDAQw+BJ8BVGV8Ko2Ng2VZZ6p1I/DB
wMfhwMLv/uNfspwlCn2/G0GWy4zvv7VdSRp5jutrBEJMtGw== rsa-key-20130327
 

Una vez obtenida, deberás especificar la clave privada en tu servidor  Linux en el archivo .ssh/authorized_keys.

Por seguridad, deberás determinar unos permisos seguros, como 0400. El directorio .ssh debería tener permisos 0700, por ejemplo. Así:

mkdir -p $HOME/.ssh
chmod 0700 $HOME/.ssh
touch $HOME/.ssh/authorized_keys
chmod 0400 $HOME/.ssh/authorized_keys

Una vez creado el directorio y el fichero, tendrás que añadir la cadena generada en los pasos anteriores.

Tras esto, ya puedes acceder al servidor por PuTTy con tu clave privada haciendo uso de Pageant.

Pageant es un programa para Windows que permite un acceso temporal a tu clave privada. Programas como PuTTy oWinSCP, se sirven de Pageant para usar la clave privada generada de forma segura.

Pageant permite cargar una clave privada solicitando la contraseña y además da acceso indirecto a otros programas mediante PuTTy para acceder a conexiones SSH con tu clave privada.

Leer más