Comandos básicos de Linux para gestión de procesos

Un tip rápido y práctico como el de los puertos del otro día (lo estoy haciendo para un compañero de trabajo) ¿Cuáles son los comandos básicos de Linux para la gestión de procesos del servidor?:

  • ps: muestra los procesos activos.
  • ps aux: ps pero con más detalle.
  • kill pid: mata los procesos con el pid pid
  • killall proc: mata todos los procesos llamados proc
  • bg: lista los procesos parados o en segundo plano, arranca procesos parados en segundo plano.
  • fg: trae el proceso más reciente a primer plano.
  • fg n: trae el proceso n a primer plano.
Anuncios

Conocer los datos de nuestra placa base en Windows

En su día vimos cómo ver los datos de nuestra memoria RAM en Windows. Hoy me preguntaba un compañero del curro si podía ver los de la placa base sin tener que abrir el ordenador. Le comenté que sí, que con wmic desde una consola de comandos es posible:

wmic baseboard

Pero claro, eso sacará un churro de texto que es cosa larga y casi ilegible. Por suerte podemos filtrar qué parámetros queremos:

wmic baseboard get product,Manufacturer,version,serialnumber

De esta forma sacamos producto, fabricante, modelo y número de serie, de forma ordenadita y clara.

wmic baseboard

También es posible sacar los resultados a un fichero de texto por si nos resulta más cómodo para trabajar.

wmic baseboard > ficherotexto.txt

Puertos por defecto más habituales

Vamos con un tip rápido sobre redes. Estos son los puertos de uso más habitual que uno suele tener que configurar

  • FTP -> Puerto 21
  • SSH -> Puerto 22
  • Telnet -> Puerto 23
  • SMTP -> Puerto  25 o Puerto 587
  • DNS -> Puerto  53
  • HTTP -> Puerto 80, aunque Tomcat por defecto usa el 8080
  • Kerberos -> Puerto 88
  • Telnet Remoto -> Puerto 107
  • POP3 -> Puerto 110
  • IMAP -> Puerto 143
  • HTTPS -> Puerto 443
  • Xbox Live -> Puerto 3074
  • RDP -> Puerto 3389
  • Configuración de routers de Movistar: Puerto 8000 (no en todos los modelos)

Cambiar el puerto de escucha para escritorio remoto en Windows 2k12

Si tienes un servidor Windows al que accedes a través del escritorio remoto es buena cosa cambiar el puerto de escucha para conexiones al escritorio remoto. Muchos ataques van contra el puerto 3389 y sobre el usuario Administrador, así que cambiar el nombre a dicho usuario y el puerto pondrá la cosa un poco más difícil al atacante. No es una garantía de seguridad, pero dificulta un poco la cosa.

Los pasos son los siguienes, válidos para Windows 2k12 y Windows 2k8:

  • Abrir el regedit (el editor de registro)
  • Navegar por él hasta llegar a esta ruta: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
  • Editar esa entrada y poner el puerto deseado (por defecto estará el número del puerto en formato hexadecimal, pero lo puedes poner en decimal marcando esa opción). Microsoft recomienda usar uno comprendido entre el 1025 y el 65535, y hay que fijarse que no sea uno que ya esté siendo usado por otra aplicación.
  • Reiniciar, como siempre en sistemas Windows.

Creo haber leído que cambiar el puerto puede dar problemas a los usuarios que intenten conectarse con el cliente de escritorio remoto para Mac, ya que este sólo permite usar el puerto por defecto.

Siete comandos de Linux básicos para la configuración de redes

Vamos con un articulillo técnico que os había prometido. Recopilamos una serie de comandos de Linux básicos para el trabajo y la configuración de redes. Nada complicado en exceso pero herramientas básicas y funcionales que son de uso habitual para quien ande trasteando en temas de redes.

  1. Ping: Envía un mensaje ICMP incrustado en un paquete IP, comprobando la conectividad entre dos nodos. El comando se ejecuta hasta que pulsemos las teclas Ctrl + c. ping ejemplo
  2. Netstat:  Es una herramienta que nos muestra las conexiones activas de un equipo. Esta herramienta acepta muchos parámetros: -r muestra la tabla de enrutamiento, netstat -r-p nos saca el nombre del programa para cada socket,netstat -p -a todos los puertos a la escuchanetstat -a
  3. Tcpdump: Es una herramienta que permite monitorizar el tráfico de red, mostrando en tiempo real los paquetes transmitidos y recibidos.tcpdump
  4. Tracepath: Traza los nodos a través de los que viajan nuestros paquetes en su camino hacia el destino que le definamos. tracepath
  5. Route: Es una herramienta que nos permite manipular las tablas de enrutamiento del sistema.
    #añadir ruta a la tabla
    route add -net 8.8.8.8/24 gw 192.168.100.1
    #eliminar ruta de la tabla
    route del -net 8.8.8.8/24 gw 192.168.100.1
    #definir puerta de enlace por defecto
    route add default gw 192.168.100.1
    
  6. Dhclient: Si lo ejecutamos con -r y con permisos lo que hace es “liberar” nuestra IP y solicitar otra al servidor DHCP.dhclient
  7. Ifconfig: Configuración de interfaz. Nos permite configurar o desplegar diversos parámetros de las interfaces de red como la máscara o la dirección IP. Acepta varios parámetros, y si lo ejecutamos sin pasarle ninguno nos dará información sobre las distintas interfaces. Los más usados son:
    • up: Marca la interfaz como disponible. Por ejemplo ifconfig eth0 up.
    • down: Marca la interfaz como no disponible. Por ejemplo ifconfig eth0 down.
    • dirección ip: Si ponemos una ip esta le será asignada a esa interfaz, teniendo de esta forma una ip estática (para DHCP está Dhclient). Por ejemplo ifconfig eth0 192.168.100.2.
    • netmask: Para definir una máscara de red. Por ejemplo ifconfig eth0 netmask 255.255.255.0 .
    • broadcast: Nos permite definir una ip como dirección de difusión. Por ejemplo sudo ifconfig etho broadcast 172.16.25.98.
    • promisc: Pone la interfaz en modo promiscuo, de forma que captura todos los paquetes, vayan dirigidos a ella o no. Por ejemplo ifconfig eth0 promisc.

Solución al error E_FAIL(0x80004005) de Virtual Box

Hoy me encontraba con un problema con VirtualBox, en un equipo no me arrancaba ninguna máquina. Daba igual que fuera una máquina importada desde otro ordenador que que se tratara de una máquina creada desde 0. Al ejecutarla saltaba el error E_FAIL(0x80004005) . Intenté ojear los logs para ver si veía algo claro, pero el tamaño del mismo no lo hacía muy práctico ¿por qué fallaba? Pues no tengo ni idea. ¿Solución? Encontré varias:

Encontré un blog donde se afirma que se arregla desmontando la unidad de cd, pero no me funcionó tras hacerlo.

Encontré otro enlace donde decían que bastaba con ir a C:\Users\COMPUTER_NAME\.VirtualBox\Machines\VM_NAME y allí buscar el archivo VM_NAME.xml-prev para editar su nombre y quitarle el sufijo -prev. Lo probé pero tampoco funcionó.

Finalmente este vídeo me trajo la solución: en lugar de pulsar en la flecha inicio para arrancar la máquina hay que darle al botón que tiene al lado para desplegar el menú y allí elegir Inicio Desacoplable.

¿Por qué funcionó esta y el resto no? Bueno, a estas alturas no conozco todavía la causa del error, pero mirando con detenimiento el mensaje de error veo que en la solución que me funcionó el fallo era en el componente Machine Wrap. Asumo que el código de error puede ser el mismo para diversos componentes y que cada uno tiene una solución. Fíjate en el ejemplo que viene en el blog donde recomiendan desmontar la unidad de cd, podrás ver que el componente que falla simplemente es descrito como Machine mientras que en el que implica modificar el nombre del fichero de configuración xml el fallo era en el componente VirtualBox. Por tanto no hay una única solución a este error, todo depende de qué componente sea el afectado.

Usando el comando find para encontrar varias extensiones de archivo en Linux

Vamos con una entradilla sobre comandos en Linux para celebrar que hoy Microsoft se ha unido a la Linux Foundation. Sabemos que con el comando find seguido de una cadena de caracteres podemos encontrar todos los ficheros con esa extensión dentro de un directorio, veamos cómo sería la sintaxis más simplificada:

# find *.zip

La instrucción de arriba nos mostraría todos los ficheros cuyo nombre termine en .zip que estén situados en la carpeta en la que nos encontremos.

Ok, ¿y si quiero buscar varias extensiones?. Veamos ¿cómo sería el comando para buscar tanto los zip como los txt?

# find . -type f \( -name "*.zip" -o -name "*.txt" \)

Aquí ya tenemos una sintaxis un pelín más compleja, expliquemos paso a paso todo:

El . indica que queremos buscar en el directorio actual. Con -type f decimos que queremos buscar por tipo de fichero y que queremos archivos simples, no carpetas u ocultos. Entre paréntesis metemos la condición de lo que queremos buscar: con el -name indicamos que queremos buscar un patrón, que lo definimos a continuación entre comillas (el “*.zip” y el “*.txt”, que vendrían a decir que queremos todo lo que acabe en esas extensiones) y el -o nos serviría como un operador lógico or. Si te fijas antes de cada paréntesis se ha introducido el carácter de escape \ para evitar posibles problemas de sintaxis.

Es decir, toda la clave es usar el -o para añadir más condiciones a la función de búsqueda, pudiendo así definir varios patrones.