Publi

Guía de supervivencia para disfrutar de Linux Mint Debian Edition XFCE (III : ssh, nfs, y algunas utilidades para consola)

Cosas que no vienen instaladas de serie y deberían, herramientas para redes y administración remota que nos permitirán, sobre todo jugar y aprender. Quiero que esta sea una guía completa para personas que se inician en el mundo Linux por lo que no profundizaré mucho en algunos aspectos y en ocasiones, como esta, serán cosas muy básicas.

Servidor SSH

Cuando tienes en casa varios ordenadores, en ocasiones tenemos la necesidad de acceder a uno de los otros ordenadores y ejecutar algo allí, ya sea porque tengamos archivos en ese ordenador que no tengamos en el que tenemos delante, porque vamos a realizar algo pesado y la otra máquina es más larga, o bien porque no tenemos acceso físico a dicha máquina.

Lo primero es instalar el servidor SSH en la máquina a la que queremos acceder:

$ sudo apt-get install openssh_server

El cliente debemos instalarlo en la máquina desde la que accedemos

$ sudo apt-get install openssh_client

Aunque dado lo poco que ocupan, podemos, sin peligro instalar los dos en nuestro ordenador… nunca se sabe cuándo podemos utilizarlo.

La configuración que viene por defecto es buena para empezar. Ahora, si estamos en la máquina A y queremos conectar a la máquina B, podemos hacer desde un terminal:

$ ssh usuario@DIRECCION_IP_DE_B

y podremos ejecutar comandos en la máquina B

Compartir directorios por NFS

Imagina que estoy en la máquina A y toda mi colección de música está en la máquina B, si quiero reproducirla tendré dos opciones: grabarla en un sopore extraíble, lo cual requiere acceso físico (y tener un soporte para copiar), o compartirla por red local. Para esta segunda tenemos el protocolo NFS.

En la máquina B, la que tiene toda la música, debemos instalar el servidor:

$ sudo apt-get install nfs-server

y en la máquina A, el cliente:

$ sudo apt-get install nfs-client

Ahora debemos configurar qué queremos compartir. En muchos entornos tenemos aplicaciones para configurar los directorios compartidos de forma gráfica, pero para los que no, debemos abrir un terminal y ejecutar:

$ editor /etc/exports

# editor carga el editor de texto por defecto… os gusta nano ? vim ? emacs ? joe?

Dentro del archivo tenemos que introducir el directorio a compartir y el host con el que lo compartimos. Si somos la mágina B:

/directorio/a/compartir      DIRECCION_DE_A(ro,sync,no_subtree_check)

A partir de ahí podemos incluir tantos directorios compartidos como queramos, siempre en el mismo formato. He colocado unos atributos por defecto: ro,sync,no_subtree_check, podemos (y a veces debemos) cambiarlos:

  • ro – Comparte el recurso como sólo lectura. Si queremos compartirlo tanto para lectura como para escritura, debemos poner rw (read/write).
  • sync – Sincroniza las escrituras enviando notificaciones al cliente cuando se escriben para que pueda continuar. Podemos poner async, y en este caso no se envían notificaciones y las escrituras son más rápidas.
  • no_subtree_check. No verifica los permisos en directorios anteriores a la ruta especificada, puede que el usuario ptolomeo no tenga acceso a /home/pitagoras/ pero sí pueda acceder a /home/pitagoras/compartido ; si esta opción es subtree_check, provocaríamos que ptolomeo no acceda a /home/pitagoras/compartido porque no tiene acceso al directorio anterior.

Ahora vamos a la parte del cliente, éste tiene que montar los recursos compartidos. Imaginémonos que el usuario ptolomeo quiere montar en /home/ptolomeo/amigos/pitagoras el recurso compartido que éste tiene en /home/pitagoras/compartido. Ptolomeo deberá hacer:

$ sudo mount -t nfs IP_DEL_ORDENADOR_DE_PITAGORAS:/home/pitagoras/compartido /home/ptolomeo/amigos/pitagoras

Por otra parte, si tenemos un servidor NFS y queremos ver qué recursos tiene compartidos, podemos verlo haciendo:

$ sudo showmount -e IP_DEL_SERVIDOR

La seguridad ante todo

Está bien tener un servidor ssh y nfs ; pero en ocasiones, nos conectamos a una red pública, o directamente a Internet, por lo que no nos interesa compartir nuestros archivos con cualquiera que pueda entrar, para ello tenemos los archivos hosts.deny (que deniega el acceso a nuestros servicios a diferentes máquinas) y hosts.allow (que da permiso para que dichas máquinas accedan a nuestro ordenador).

Ambos archivos funcionan de forma parecida, escribimos en una línea:

SERVICIO : IP/HOST1, IP/HOST2, IP/HOST3, ….

donde SERVICIO, puede ser, por ejemplo ssh, luego ponemos dos puntos (:) y una lista de IP o nombres de host separados por comas. Dependiendo de si esa línea la ponemos en hosts.deny o hosts.allow, denegaremos o permitiremos el acceso a esa máquina.

Para hacer una configuración segura, en hosts.deny podemos poner:

ALL : ALL

Lo que bloqueará TODOS los servicios para TODOS los ordenadores remotos, así tendremos nuestro ordenador cerrado al exterior. Ahora, en hosts.allow, queremos dar permiso a ptolomeo para que acceda a nuestro servicio ssh:

sshd : ptolomeo

también queremos dar permiso al ordenador con IP 192.168.1.28, al ordenador pitagoras y a 192.168.1.20 para acceder al servicio httpd (servidor web, imaginemos que lo tenemos instalado):

httpd: 192.168.1.28, pitagoras, 192.168.1.20

Por otra parte, el servicio nfs, hemos visto que compartimos directorios con máquinas determinadas, por lo que así podríamos restringirlo, además, si en hosts.deny ponemos ALL:ALL no va a arrancar el demonio; tenemos dos posibles soluciones:

  1. Poner en hosts.deny
    ALL : ALL EXCEPT LOCAL
    Para que no se bloqueen conexiones locales
  2. Poner en hosts.allow
    rpcbind : localhost
    Para no bloquear conexión local al demonio rpcbind

Si queremos permitirlo todo, también podemos poner en hosts.allow:

ALL : ALL

pero no se recomienda, sólo debemos hacer esto para equipos de pruebas o máquinas que tengan una conexión limitada (es decir, que sólo estén conectadas con uno o dos hosts y esté todo controlado).

Instalar nmap

Este programa tiene muchas utilidades, una de las más comunes es saber qué servicios tiene abiertos una máquina, o por ejemplo, nuestro router tiene un servidor DHCP para darnos una dirección IP en nuestra red (es la configuración más común), cada vez que encendamos nuestro ordenador, lo más probable es que tengamos una IP diferente asignada, y si hay varios ordenadores conectados, ya sí que es difícil saber la IP que tiene cada máquina, nmap nos puede ayudar a eso.

Además, podemos utilizar nmap para averiguar si hay intrusos en nuestra red.

$ sudo apt-get install nmap

Si queremos ver cuánta gente hay conectada en nuestra red, y quiénes son los que están conectados, podemos hacer lo siguiente (si nuestra IP es, por ejemplo 192.168.1.10:

$ nmap 192.168.1.*

Al cabo de unos segundos nos dirá qué máquinas hay conectadas (esto es muy útil si conectamos a través de la red de nuestra facultad y queremos saber lo archivos y servicios que tienen compartidos ver quién está conectado.

Instalar pmount

Yo soy un usuario más de consola, y a veces tengo varios equipos en red local y en diferentes habitaciones. Cuando no tienes entorno gráfico no hay icono para hacer click con el derecho y montarlo. Así que tenemos dos posibilidades, en el caso de querer montar un dispositivo usb flash que está en /dev/sdc1:

$ sudo mkdir /media/pendrive

$ mount /dev/sdc1 /media/pendrive

O utilizar pmount, es más se puede utilizar como un usuario normal (siempre que esté en el grupo plugdev):

$ pmount /dev/sdc1

Automáticamente creará el punto de montaje, que se borrará cuando desmontemos con:

$ pumount /dev/sdc1

Por lo tanto, para instalar este pequeño pero útil programa:

$ sudo apt-get install pmount

$ sudo gpasswd -a USUARIO plugdev

La última línea corresponde a la inclusión del usuario USUARIO en el grupo plugdev para poder montar los dispositivos.

Generador de contraseñas en consola

Una gran utilidad que uso a menudo es un generador de contraseñas y es que, para tener seguridad, es conveniente tener una contraseña para cada servicio/web/cosa que tengamos en el sistema, e incluso si se está creando una base de datos, con un usuario que tenga acceso a ella (sobre todo si no está en nuestro ordenador), es conveniente darle una contraseña “aleatoria”, o al menos difícil de sacar. Para ello tenemos pwgen:

$ sudo apt-get install pwgen

$ pwgen

So9eejei Eej9youf Iex0ga3y rooV0aRi loXi8ooD Eilah4ru eeD7iego ieX6eth9
ohz9Que9 eiJohz5i ku9doo7E Ooghie6U zee9TeiB phei0eeG ith3Aex4 coiYa0ca
mah3aPae YahxaiM9 quiqu9Oi Voh9olub xanoo1Ae ohn8Ahng aiyoh6eG Coo3quok
eiXou6Zi Eis2poo1 bu1iBahf Aey0eeng aethee3K Thoh2ood Aepai6ph iRah2awo
eePei8si tahf5Pe0 Aegh0phu AeR0eech quohce3A siSh8Hit eeQuu4Ei ahGhal5f
Kahgh9ah aJoh7ex6 teeF4Eil Eehue3ee ooca8EiT huzaev8P eiK2quoh muuzae6O
aj6Mu3Ae UPheew2o deiHee8N abeesh4M thei8ohZ Ei3Aingo Phie7eep av0koo5U
koh2Jahb caiv1Cho Oa6fohvu OochaeW9 TeeN2Lee ahlaeH8o sad9Aegh Taiz6gae
looF2mie jahjoaS4 laineiN9 ush1oa0I ipob2Ohs Ha1ohjai OoL5wa7u Eipohva7
aimoox9K Keey4ieW labah4Ci oowaiJ2i pahxaiB1 eiWai3ei bethaF0r fu8eiV7u
Wo3Te1iu roeZ3eil Oorohs8k cah7ESo9 Yohg1aix ohz9Choo Ogooc1ph Eh7eeghi
eeh8Aer2 eph4Ehoh Eis0Ieva Yeochoh9 Aizahn4i eepahH6o wahBae5o eeZiang6
aep0ahPh haewoh7B aidoh9Ea ia7tai8L Tohx5gae OSeexee2 ooN6liWo Pai8Ohs0
ZeiX6iay zie3Iexe Oog2caek Ohoo9eit yoo4eiSe bai0Ooth ieHa5Aig Xie8eeph
Uasoov2a Iesh6EiR ne1Aothi oo7oob7O Lohy5wai zea1Xie3 ooH3be9i fe7Ohnoo
ooSosae2 phei3AeB aerie9Ai ku9ohBoh peegieX5 Eiph0ool choQuoo3 Reew9Ohp
Kohm3aXi Kui9ohCh reifieM0 sha3Yaos emohFo2i ca5zaeP5 Mu4vohgh naiV8Chi
ue7Pooso eePahth6 waLuu7oh Yee8teir eth9Tai8 cho7Poog ooSee6yu Uquai6aa
uqu8Li2u eegooL0i ieth9Aem Miex4Nah ii5Eephi iChae5do fahX9foh eMaexu8i
koh2Ca7J Theem9co eiH4zev4 chofeW9f doh5eK8f ori7ohV5 zo4zohNg saeKah9N

Nada más ejecutarlo nos dará muchas contraseñas para elegir. E incluso podemos personalizar la salida con algunos modificadores (-s para incrementar la seguridad; -y para incluir símbolos; y algunos más)

Links, un navegador web en modo texto

Y el usuario de a pie se preguntará: “¿para qué quiero yo un navegador web en modo texto?”, y es cierto, muchos de nosotros arrancamos el navegador y vemos las imágenes y ejecutamos scripts y “disfrutamos” de la experiencia web; aunque en ocasiones nos puede sacar de algún apuro o por ejemplo, hace muy fácil la creación de scripts que interactúen con un componente web. Por ejemplo:

$ links -dump http://checkip.dyndns.org

Current IP Address: 94.56.107.7

Con lo que nos conectamos a la web http://checkip.dyndns.org para saber nuestra dirección IP (con la que conectamos a Internet). O por ejemplo, si queremos ver la fecha y hora actual descargadas de un servidor de Internet:

$ links -dump  http://www.timeanddate.com/worldclock/city.html?n=141  | grep Current | sed ‘2!d’

Para instalar este programa:

$ sudo apt-get install links

Limitar el ancho de banda de nuestros servicios

Imagina que estamos subiendo un archivo a un FTP de un amigo, descargando nuestra distribución de Linux preferida, enviando imágenes de nuestra webcam a Internet, además, mientras estás escuchando la radio o viendo la tele por Internet, nuestros recursos son limitados y si tienes una conexión de 10Mbps  de bajada y 500Kbps de subida, aparte de dar las gracias, tienes que repartirla sabiamente. Tal vez el FTP de nuestro amigo se va a coger todo el ancho de banda de subida que tengamos, porque puede, y luego las imágenes de la webcam, a lo mejor no se suben al mismo ritmo; por otra parte, la distribución de Linux irá muy rápido, pero a lo mejor se resiente el canal de TV online que estamos viendo. Para eso tenemos trickle, una herramienta capaz de limitar el ancho de banda de red que consume una aplicación. Podemos limitar el ancho de banda de la descarga de nuestra distribución Linux:

$ trickle -d 100 wget http://mirror.linuxmint-fr.net/linuxmint.com/stable/debian/linuxmint-xfce-201104-dvd-32bit.iso

Para limitar la descarga a 100Kb/s

Para instalar:

$ sudo apt-get install trickle

Ver tareas en ejecución en colores desde consola

LMDE GnomeA veces, para ver los procesos en ejecución, top, no es suficiente. No nos deja ver todos los procesos, y a veces la información es algo escasa, para eso tenemos htop, podemos ver una captura de la ejecución de htop en una máquina remota con LMDE Gnome.

$ sudo apt-get install htop

Para terminar

Hay muchas más aplicaciones muy útiles para consola, estas son algunas, una mínima muestra de toda la potencia que encierra nuestra máquina Linux y que no vienen instaladas de serie en Linux Mint Debian Edition; aunque algunas de ellas sí que vienen en otras distribuciones.

También podría interesarte...

Leave a Reply