Debian Squeeze LTS

Hace unos meses os hablé de que por fin Debian iba a tener una versión LTS (Long Term Support) y cómo activar dicho repositorio de seguridad. Puedes leer el artículo entero aquí.
Pues bien, hoy se dió a conocer una vulnerabilidad  que afecta a GNU/Linux, sí la de bash, de la que os hablaré con más detenimiento en otro momento. Quiero aprovechar para recordar que actualicéis.
Eso es lo más importante, un sistema actualizado es menos vulnerable. Aun así, si estáis empleando Debian Squeeze acordaros de incluir la línea de LTS en vuestro fichero sources.list y también, como recomendación instalar el paquete debian-security-support.
Lo primero será actualizar el sources.list, añadiendo lo siguiente,
deb http://ftp.debian.org/debian squeeze-lts main contrib
Para a continuación,
shell> apt-get update
shell> apt-get upgrade
Si no tenías este nuevo repositorio verás que se actualizan bastantes paquetes de interés, según la finalidad del sistema.

Aun así, no todos los paquetes incluidos en Debian Squeeze van a tener soporte LTS, sino que algunos terminarán por dejar de mantenerse. Para tener un listado de aquellos paquetes instalados en el equipo y que pueden no tener soporte, está el comando check-support-status. Para instalarlo,
shell> apt-get install debian-security-support
shell> check-support-status
Ended security support for one or more packages

Unfortunately, it has been necessary to end security support for some
packages before the end of the regular security maintenance life cycle.

The following packages found on this system are affected by this:

* Source:libplrpc-perl, ended on 2014-05-31 at version 0.2020-2
  Details: Not supported in squeeze LTS
  Affected binary package:
  - libplrpc-perl (installed version: 0.2020-2)

Limited security support for one or more packages

Unfortunately, it has been necessary to limit security support for some
packages.

The following packages found on this system are affected by this:

* Source:php5
  Details: See README.Debian.security for the PHP security policy
  Affected binary packages:
  - libapache2-mod-php5 (installed version: 5.3.3-7+squeeze21)
  - php5 (installed version: 5.3.3-7+squeeze21)
  - php5-cli (installed version: 5.3.3-7+squeeze21)
  - php5-common (installed version: 5.3.3-7+squeeze21)
  - php5-curl (installed version: 5.3.3-7+squeeze21)
  - php5-gd (installed version: 5.3.3-7+squeeze21)
  - php5-mysql (installed version: 5.3.3-7+squeeze21)

Tienes más información acerca de lo aquí comentado en howtoforge.com.
Leer más

Recuperar contraseña de root

Aunque es una práctica que únicamente hay que llevar a cabo en casos extremos, hoy voy a explicar de forma sencilla cómo poder resetear la contraseña de root de prácticamente cualquier distribución GNU/Linux con tener únicamente acceso directo al equipo físico.
Lo primero es reiniciar la máquina y esperar a que salga el Grub. En cuanto lo tengamos delante, nos movemos para que no arranque con la opción por defecto, ya que vamos a querer introducirle una opción para que nos permita trabajar. Para hacerlo, únicamente debemos de presionar la tecla "e" sobre la línea del sistema que vayamos a arrancar. A continuación posicionarnos sobre la línea que pone algo referente al kernel y volver a presionar "e". Ahí ya nos dejará modificar la línea de arranque del sistema, con lo que podemos hacer cosas.

Lo primero es borrar las palabras quiet y splash (si aparecen) y añadir lo siguiente,
init=/bin/bash 
Quedando la línea como se muestra en la siguiente imagen, en capas los pasos que se han mencionado. Ahora ya estamos listos para arrancar el sistema, así que únicamente presionamos ENTER y a continuación "b".
Esto nos llevará a una shell básica del sistema GNU/Linux en la que tendremos a nuestra disposición pocos comandos, pero en realidad los necesarios. Si os dais cuenta, tenemos una shell como root, pero sin que nos haya pedido la contraseña, en un sistema de sólo lectura, eso sí.
Como bien hemos dicho, no hay posibilidad de escritura, así que vamos a conseguirla, para ello,
shell> mount -o remount,rw /
Nota: Si el sistema al que estáis accediendo tiene la carpeta /etc en una partición diferente a /, hay que efectuar la misma operación sobre /etc.

Ahora ya sólo nos queda cambiar la contraseña del usuario que nos interese, en este caso, root. Para ello, simplemente ejecutamos passwd y metemos la nueva contraseña. Contraseña que esta vez evitaremos olvidarnos.
Una vez finalizado todo el proceso, ejecutamos sync y tras ello reiniciamos la máquina. El comando reboot no está disponible, por lo que podemos hacerlo presionando Control + Alt + Supr.
Leer más

Cambio de hostname en RedHat/CentOS

Recientemente tuve que cambiarle el nombre FQDN (Fully Qualified Domain Name) a un servidor Red Hat y descubrí que es "un poco" lioso hacerlo, sobre todo si es la primera vez. Para recordar cómo se hace y por si le sirve de ayuda a alguien, opté por escribir esta entrada y dejar así constancia de los pasos a realizar. Por suerte, esta técnica sirve para sistemas Red Hat, Centos e imagino que Federa, aunque no lo probé en este último.
Lo primero de todo es crear el fichero, en caso de que no exista /etc/hostname con el contenido del fqdn que deseemos. En mi caso,
compile.server.loc
A continuación, debemos de cargar el nuevo nombre en el sistema, para ello,
shell> hostname -F /etc/hostname
Tranquilos, ya estamos llegando al final. Ahora debemos de editar el fichero de configuración de red, /etc/sysconfig/network y cambiar en él el HOSTNAME del equipo.
NETWORKING=yes
HOSTNAME=compile.server.loc
Y reiniciar la red del equipo para que pille los nuevos parámetros,
shell> service network restart
Y ahora ya deberíamos de tener el hostname completo,
shell> hostname --fqdn
compile.server.loc

En caso de que tengamos el siguiente error al ejecutar el comando hostname - -fqdn
hostname: `Host' desconocido
debemos de editar el fichero /etc/hosts y añadir el nuevo FQND con la IP del servidor.
Leer más

10 comandos nmap que todo sysadmin debería de saber

A la mayoría de los Administradores de Sistemas nos toca a menudo jugar con nmap, y creo que es una muy buena herramienta que todos debería de conocer. No en profundidad, ya que da para un libro, pero sí cuando menos tener en mente siempre algunos comandos básicos. Hoy os dejo aquí los 10 que yo considero bastante habituales.
  1. Descubrir IPs de una red (no root)
    shell> nmap -sP 192.168.0.0/24
    
    Starting Nmap 6.40
    Nmap scan report for server1.local.net (192.168.0.2)
    Host is up (0.00053s latency).
    Nmap scan report for 192.168.0.3
    Host is up (0.00080s latency).
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00076s latency).
    Nmap scan report for 192.168.0.7
    Host is up (0.00067s latency).
    Nmap scan report for remote.local.net (192.168.0.11)
    Host is up (0.00088s latency).
    ...
    
  2. Escanear puertos abiertos de un equipo (no root)
    shell> nmap 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00056s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    873/tcp open  rsync
    
    Nmap: 1 IP address (1 host up) scanned in 0.04 seconds
    
  3. Escanear protocolo TCP (no root)
    shell> nmap -sT 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00063s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    873/tcp open  rsync
    
    Nmap: 1 IP address (1 host up) scanned in 0.04 seconds
    
  4. Identificar el sistema operativo de un equipo (root)
    shell> nmap -O 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00022s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    873/tcp open  rsync
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    Device type: general purpose
    Running: Linux 2.6.X
    OS CPE: cpe:/o:linux:linux_kernel:2.6
    OS details: Linux 2.6.32
    Network Distance: 1 hop
    
    OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
    Nmap: 1 IP address (1 host up) scanned in 1.70 seconds
    
  5. Identificar los hostname de una red (root)
    shell> nmap -sL 192.168.0.0/24
    
    Starting Nmap 6.40
    Nmap scan report for 192.168.0.0
    Nmap scan report for 192.168.0.1
    Nmap scan report for server1.local.net (192.168.0.2)
    Nmap scan report for 192.168.0.3
    Nmap scan report for 192.168.0.4
    Nmap scan report for zabbix.local.net (192.168.0.5)
    ...
    
  6. Escanear UDP y TCP Syn (root)
    shell> nmap -sS -sU -PN 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00018s latency).
    Not shown: 1996 closed ports
    PORT    STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    873/tcp open  rsync
    123/udp open  ntp
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    
    Nmap: 1 IP address (1 host up) scanned in 989.80 seconds
    
  7. Escanear de todos los puertos (root)
    shell> nmap -p 1-65535 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00027s latency).
    Not shown: 65530 closed ports
    PORT      STATE SERVICE
    22/tcp    open  ssh
    25/tcp    open  smtp
    873/tcp   open  rsync
    10050/tcp open  unknown
    10051/tcp open  unknown
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    
    Nmap: 1 IP address (1 host up) scanned in 1.15 seconds
    
  8. Escaneo de host agresivo (no root)
    shell> nmap -T4 -A 192.168.0.0/24
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00020s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE VERSION
    22/tcp  open  ssh     OpenSSH 6.0p1 Debian 4 (protocol 2.0)
    | ssh-hostkey: 1024 d3:cd:5d:0f:f1:86:09:ff (DSA)
    |_2048 64:45:95:18:26:5a:f1:94 (RSA)
    25/tcp  open  smtp    Postfix smtpd
    |_smtp-commands: zabbix.local.net, PIPELINING, SIZE 31457280, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN, 
    | ssl-cert: Subject: commonName=zabbix
    | Not valid before: 2012-06-14T12:37:01+00:00
    |_Not valid after:  2022-06-12T12:37:01+00:00
    |_ssl-date: 2014-05-15T15:02:35+00:00; -12s from local time.
    873/tcp open  rsync   (protocol version 30)
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    Device type: general purpose
    Running: Linux 2.6.X
    OS CPE: cpe:/o:linux:linux_kernel:2.6
    OS details: Linux 2.6.32
    Network Distance: 1 hop
    Service Info: Host:  zabbix.local.net; OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    TRACEROUTE
    HOP RTT     ADDRESS
    1   0.20 ms zabbix.local.net (192.168.0.5)
    
    Nmap: 1 IP address (1 host up) scanned in 1.93 seconds
    
  9. Escaneo rápido (no root)
    shell> nmap -T4 -F 192.168.0.5
    
    Starting Nmap 6.40
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00042s latency).
    Not shown: 97 closed ports
    PORT    STATE SERVICE
    22/tcp  open  ssh
    25/tcp  open  smtp
    873/tcp open  rsync
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    
    Nmap: 1 IP address (1 host up) scanned in 0.13 seconds
    
  10. Escaneo detallado (no root)
    shell> nmap -T4 -A -v 192.168.0.5
    
    Starting Nmap 6.40
    NSE: Loaded 110 scripts for scanning.
    NSE: Script Pre-scanning.
    Initiating ARP Ping Scan at 17:03
    Scanning 192.168.0.5 [1 port]
    Completed ARP Ping Scan at 17:03, 0.02s elapsed (1 total hosts)
    Initiating SYN Stealth Scan at 17:03
    Scanning zabbix.local.net (192.168.0.5) [1000 ports]
    Discovered open port 25/tcp on 192.168.0.5
    Discovered open port 22/tcp on 192.168.0.5
    Discovered open port 873/tcp on 192.168.0.5
    Completed SYN Stealth Scan at 17:03, 0.04s elapsed (1000 total ports)
    Initiating Service scan at 17:03
    Scanning 3 services on zabbix.local.net (192.168.0.5)
    Completed Service scan at 17:03, 0.01s elapsed (3 services on 1 host)
    Initiating OS detection (try #1) against zabbix.local.net (192.168.0.5)
    NSE: Script scanning 192.168.0.5.
    Initiating NSE at 17:03
    Completed NSE at 17:03, 0.13s elapsed
    Nmap scan report for zabbix.local.net (192.168.0.5)
    Host is up (0.00020s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE VERSION
    22/tcp  open  ssh     OpenSSH 6.0p1 Debian 4 (protocol 2.0)
    | ssh-hostkey: 1024 d3:87:ad:ca:6f:6e:09:ff (DSA)
    |_2048 64:45:95:c9:c8:06:f1:94 (RSA)
    25/tcp  open  smtp    Postfix smtpd
    |_smtp-commands: zabbix.local.net, PIPELINING, SIZE 31457280, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN, 
    | ssl-cert: Subject: commonName=zabbix
    | Issuer: commonName=zabbix
    | Public Key type: rsa
    | Public Key bits: 2048
    | Not valid before: 2012-06-14T12:37:01+00:00
    | Not valid after:  2022-06-12T12:37:01+00:00
    | MD5:   5870 5ed4 9962 6bcc cc3a 37dd 2ffa 5c13
    |_SHA-1: 66f3 3495 37b4 3ace b1e9 8bed 4a18 5e9a 57af 8794
    |_ssl-date: 2014-05-15T15:03:18+00:00; -11s from local time.
    873/tcp open  rsync   (protocol version 30)
    MAC Address: 00:BC:5D:71:99:4A (XenServer)
    Device type: general purpose
    Running: Linux 2.6.X
    OS CPE: cpe:/o:linux:linux_kernel:2.6
    OS details: Linux 2.6.32
    Uptime guess: 196.083 days (since Thu Oct 31 14:04:32 2013)
    Network Distance: 1 hop
    TCP Sequence Prediction: Difficulty=262 (Good luck!)
    IP ID Sequence Generation: All zeros
    Service Info: Host:  zabbix.local.net; OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    TRACEROUTE
    HOP RTT     ADDRESS
    1   0.20 ms zabbix.local.net (192.168.0.5)
    
    NSE: Script Post-scanning.
    Initiating NSE at 17:03
    Completed NSE at 17:03, 0.00s elapsed
    Read data files from: /usr/bin/../share/nmap
    OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
    Nmap: 1 IP address (1 host up) scanned in 1.93 seconds
    Raw packets sent: 1023 (45.806KB) | Rcvd: 1015 (41.290KB)
    
Leer más

Cómo ver espacios en blanco en Sublime Text

Desde hace unos meses estoy usando de forma constante Sublime Text como editor y mucho más. Abandoné vi en favor de Sublime, cuando menos para el escritorio, y la verdad es que, creo, fue una buena decisión. Costó adaptarse, pero una vez que comienzas a ver cómo funciona y las ventajas que tiene, dan ganas de exprimirlo más y más. Una de grandes ventajas que presenta, son los plugins que tiene, que hacen tareas de forma sencilla sin tener que currártelo, como harías en vi la primera vez.
Hoy quiero enseñaros un pequeño truco que empleo de forma habitual a la hora de escribir código. La mayoría del código que escribo es Python, por lo que la indentación es muy importante, pero también me gusta que todo el código esté perfectamente tabulado y organizado. a donde debe estar y no haya espacios en blanco en vez de tabulaciones. Así, abras el fichero con el editor que lo abras, se verá siempre igual.
La forma más típica de ver que el código escrito tiene espacios en blanco con Sublime Text es seleccionarlo. Si lo haces, los espacios en blanco aparecerán con un punto, mientras que los tabuladores con una raya horizontal, como se ve en esta imagen.
Sublime Text with selected text
Esto es precisamente por la propiedad draw_white_space, que por defecto viene configurada para que aparezca con selection. Por suerte, con Sublime podemos cambiarla fácilmente a none o all. A nosotros nos interesa que aparezcan siempre, por lo tanto, vamos a cambiar la configuración para el usuario y establecer el valor a all.
Para hacer este cambio nos vamos a Preferences/Settings - User y añadimos la siguiente línea,
"draw_white_space": "all"
Con ello conseguimos que tanto tabulaciones como espacios aparezcan siempre representados en el texto, sin tener que seleccionar.

El truco lo cogí en su momento de sublimetexttips.com, donde hay éste y mucho más.
Leer más

Soporte técnico de usuarios Linux

...por que a todos los Linuxeros nos pasó esto alguna vez...

Idea original: Tiras cómica "I Can Barely Draw"
Imagen traducida: emezeta.com
Leer más

Portapapeles de consola

xclip es uno de esos comandos que pueden ayudarnos en el trabajo diario si eres un fanático de la consola. Aunque existen más formas de copiar desde la consola, xclip nos ofrece una forma muy sencilla de hacerlo y así poder compartir datos entre la consola y el portapapeles del interfaz gráfico.

Instalación

xclip está disponible desde los repositorios de las principales distribuciones. Por lo tanto, para instalarlo,
shell> apt-get install xclip

Ejemplos de uso

  • Salida de comando a clipboard
    La salida de cualquier comando la puedes enviar al portapapeles usando simplemente un pipe ( | ), por ejemplo,
    shell> cat /etc/fstab | xclip
    
  • Fichero a portapapeles
    xclip también permite mandar al portapapeles el contenido de un fichero completo, no únicamente la salida de un comando.
    shell> xclip /etc/fstab
    
  • Copiando del portapapeles a la consola
    Y como no podía ser de otra forma, también es posible pegar en la consola lo que previamente se ha copiado.
    shell> xclip -o
    
    Y como en Linux las redirecciones siempre están ahí, si nos interesa guardar el contenido en un fichero, simplemente,
    shell> xclip -o > /tmp/fstab
    
Leer más

Búsqueda de archivos en GNU/Linux

Fijo que en muchas ocasiones te tocó buscar un archivo en un sistema GNU/Linux. Pues bien, hoy te dejo aquí una pequeña chuleta con los comandos que deberías saber, según velocidad y sensibilidad que desees para poder encontrarlos.
  • whereis
    El mejor buscando ejecutables dentro del sistema. No busca por nombre exacto, sino el comando o binario que le pasas, así como la documentación (páginas man), o el código fuente del mismo.
    shell> whereis ls
       ls: /bin/ls /usr/share/man/man1/ls.1.gz
    
  • type
    No es exactamente el buscador de comandos o ficheros, pero nos sirve, para entre otras cosas saber el comando que vamos a ejecutar, por ejemplo, si tenemos definido un alias para él.
    shell> type ls
       ls es un alias de `ls --color=auto'
    shell> type -a ls
       ls es un alias de `ls --color=auto'
       ls is /bin/ls
    
  • which
    Busca el binario dentro de la ruta del path. Si lo encuentra, devuelve la dirección completa.
    Aunque su utilidad puede estar en entredicho, puede sacarte de más de un apuro si tienes el mismo comando en diferentes localizaciones y no sabes cual ejecutar. Con él podrás pasar el path completo y ejecutar el que quieras.
    shell> which ls
       /bin/ls
    
  • locate
    Es una verdadera alternativa al último comando que veremos, el incombustible find, pero con la ventaja de que éste tiene previamente indexados los ficheros existentes, por lo que la búsqueda es mucho más rápida. Tras la instalación indexa los datos que hay, pero cada cierto tiempo es necesario realizar una actualización de su base de datos (comando updatedb) para que tenga indexados los nuevos ficheros.
    shell> locate fstab
       /etc/fstab
       /etc/fstab.d
       /lib/init/fstab
       /sbin/fstab-decode
       /usr/lib/udisks/udisks-helper-fstab-mounter
       /usr/share/doc/mount/examples/fstab
       /usr/share/doc/util-linux/examples/fstab.example2
       /usr/share/man/man5/fstab.5.gz
       /usr/share/man/man8/fstab-decode.8.gz
       /usr/share/vim/vim74/syntax/fstab.vim
    
  • find
    El mítico comando de búsqueda de Linux. Sobre él hay miles de páginas acerca de cómo se usa y todas las opciones que tiene. Realiza una búsqueda en todo el path pasado como parámetro y puede realizar filtros de casi todo tipo (permisos, propietarios, fechas, etc.). Saber usarlo cuesta, pero una vez aprendido compensa.
    shell> find /usr/share/doc/ -name fstab*
       /usr/share/doc/mount/examples/fstab
       /usr/share/doc/util-linux/examples/fstab.example2
    
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios