Configuración para acceso entre ordenadores de una red local.

Mucha gente utiliza para trabajar un portátil, para finanzas o lo que sea que estén haciendo con él.

La mayoría de estas personas seguramente tienen una computadora de sobre mesa también en casa. En estos casos cuando llegan a casa quieren trabajar en el pc de sobre mesa.

Bien pues para transferir el material que necesitan la mayoría de veces requieren a bolígrafos usb. Si son unos dispositivos de gran utilidad pero se pueden perder y realmente no son necesarios para actuar como intermediario entre 2 pcs con ubuntu u otras distribuciones gnu/linux.

Este tutorial os ayudará a la hora de trabajar con ficheros compartidos en red siguiendo estos sencillos pasos:

  1. Configurar router y servidor.
  2. Samba
  3. OpenBSD Secure Shell
  4. Secure Shell File System
  5. Screen
  1. Configurar el router y el servidor.
    Volver al índice..

    Es necesario para poder trabajar cómodamente que uno de los 2 pcs (el sobremesa) tenga una ip fija (y también es ideal que esté conectado al router por cable ethernet).

    Para conseguir la ip fija del servidor dentro de la red local simplemente hay que conectarse al router y establecer una ip fija asociada con la mac del pc de sobremesa. Para conectarse al router (que es el dispositivo que se utiliza para compartir la conexión a internet entre varios pcs) simplemente hay que acceder a través del navegador a la dirección ip de configuración. Esto viene explicado en el manual del router donde también tiene que aparecer el usuario y contraseña para acceder (en la gran mayoría la dirección es 192.168.0.1 pero puede variar según marca y modelo).

    La mac depende de la interfaz con la que se conecta al router el pc. Por ejemplo si el sobremesa se conecta a través de cable ethernet la interfaz será eth0.

    Ejecutamos:

    ifconfig

    La mac tiene formato xx:xx:xx:xx:xx:xx y está donde pone HWaddr.

    En la pantalla de configuración de router dentro del navegador hay que acceder a dhcp, luego ir a dhcp estático y allí rellenar los datos necesarios, es decir introducir la dirección ip que queráis que tenga el servidor para siempre dentro de la red local (necesario para configuraciones posteriores) (para ip estática pública hay que negociar con el proveedor de internet pero eso es otra historia) y la mac con la que se accede.

    Es ideal que el servidor acceda a través de ethernet (cable) porque hay aplicaciones que se utilizan para medir la seguridad de redes wifi que pueden obtener datos acerca de la numeración mac de los aparatos wifi de una red local e incluso sustituir alguno de ellos si conoce la contraseña de acceso. Por cierto contraseñas wifi siempre wpa, wep=caca.

    Luego es mucho más fácil configurar el acceso a internet del servidor si está conectado a través del cable. Por ejemplo si se configura el archivo /etc/network/interfaces no es necesario utilizar un programa de configuración de red especifico como network-manager o wicd. Simplemente pulsar el botón de encendido y ya está. Podemos controlar el sobremesa con el portátil.

    Ejemplo de como rellenar /etc/network/interfaces:

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address ip_fija_del_servidor
    netmask 255.255.255.0
    network xxx.xxx.xxx.0
    broadcast xxx.xxx.xxx.255
    gateway ip_del_router

    El valor de netmask lo podemos saber ejecutando

    ifconfig

    y aparece donde pone netmask. El router proporciona un rango de ips para la red local, la primera ip que termina en 0 es lo que ponemos en el valor network y la ultima ip que se termina en 255 la ponemos en broadcast.

    Una vez que hayamos terminado de asignar la dirección estática al servidor tenemos que editar los archivos /etc/hosts.deny y /etc/hosts.allow. Con ellos podemos configurar quien puede y quien no puede conectarse a nuestro servidor.

    Obviamente el router actúa como firewall protector de todas las maquinas de la red. Pero es necesario editar esos ficheros porque probablemente algún día adelantamos un puerto de nuestro servidor a través del router para otros usos y nos olvidamos de que esta maquina también cumple otras funciones.

    Para hacer que solo las máquinas de la red local puedan acceder al servidor tenemos que editar e introducir esto:

    /etc/hosts.deny escribió:

    ALL: ALL

    /etc/hosts.allow escribió:

    ALL: 192.168.0.*

    A sustituir 192.168.0 por el rango de ips que asigna vuestro router. El * se queda como está porque significa 1-255, es decir todos los números en ese rango.

  2. Samba
    Volver al índice..

    Samba es un protocolo de compartición de ficheros entre máquinas con linux e windows. Es necesario que instalemos en el servidor el servidor de Samba (capitán obvio):

    sudo aptitude install samba samba-common

    Después hay que editar el fichero de configuración. /etc/samba/smb.conf
    Si quieren hacer experimentos, mejor sustituir el smb.conf original.

    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.viejo

    Os dejo una plantilla sencilla de smb.conf:

    [global]
    workgroup = mi_grupo
    encrypt passwords = yes
    interfaces = lo eth0
    bind interfaces only = yes
    [Welcome]
    path = /carpeta/que/quiero/compartir
    read only = no
    guest ok = no

    workgroup es el nombre que le dais al dominio al que pertenece el recurso que se va a compartir.
    encrypt passwords sirve para cifrar la contraseña de acceso.
    bind interfaces only sirve para descartar los paquetes que no vienen de donde se supone que deberían venir. Esto es por si aparece otra maquina con la misma dirección ip. Es decir que para recibir paquetes estos tienen que venir de una única ip y dirección mac.
    interfaces son las interfaces con las que se conecta a las demás máquinas. lo es localhost (la propia máquina que se puede comunicar consigo misma) y eth0 es conexión por cable.
    path es la dirección del recurso compartido. Por cierto los que accedan al recurso compartido no verán el nombre de la carpeta en este caso para los clientes la carpeta aparecerá con el nombre "Welcome".
    read only se utiliza para especificar si los clientes pueden añadir o borrar ficheros.
    guest ok especifica si se permiten invitados o no (acceso sin autenticación)

    Despúes de editar el fichero de configuración hay que ejecutar:

    testparm

    para evitar horrores de ortografía. Al recurso compartido accedemos como un usuario de la máquina servidor y por supuesto ese usuario del servidor debe tener permiso de lectura y escritura en la carpeta que compartimos.

    Autorizar el acceso de ese usuario se hace con el comando:

    sudo smbpasswd -a usuario

    Esto se ejecuta una vez (en el servidor) y el usuario tiene que ser un usuario del servidor. Se le pedirán 3 contraseñas: la contraseña de sudoer, la contraseña de acceso a través de samba del usuario que va a ser autorizado (porsupuesto que no tiene por que ser la contraseña de sudoer) y repetir la contraseña de acceso.

    Para acceder desde el pc cliente al recurso compartido del servidor Samba hay que utilizar cualquier cliente samba o con el mismo navegador Nautilus escribiendo en la barra de dirección: smb:///

  3. OpenBSD Secure Shell
    Volver al índice.

    O mejor dicho openssh. Sirve para la comunicación segura entre máquinas. Si, con openssh podemos tomar el control total sobre la máquina servidor.

    En el servidor hay que instalar:

    sudo aptitude install openssh-server openssh-blacklist openssh-blacklist-extra

    Después hay que comprobar de que el fichero /etc/ssh/ssh_not_to_be_run no existe, y verificar algunos parámetros del fichero de configuración /etc/ssh/sshd_config

    Estos parámetro son:

    # El puerto donde escucha el demonio ssh.
    Port 22
    # La IP donde escucha:
    ListenAddress IP_del_servidor
    # Los usuarios del servidor (que pertenecen al servidor) y a través de los cuales se accede
    AllowUsers usuario1, usuario2, usuario3
    # No permitir el acceso de root.
    PermitRootLogin no

    Despúes para poner en marcha el servidor ssh simplemente hay que ejecutar:

    sudo /etc/init.d/ssh restart

    En el cliente hay que instalar:

    sudo aptitude install openssh-client

    Para acceder del cliente al servidor hay que abrir una terminal y ejecutar:

    ssh usuario@IP_servidor

    Nos pedirá que aceptemos la clave del servidor y luego la contraseña de login de ese usuario que pertenece al servidor.

  4. Secure Shell File System
    Volver al índice.
    Es una aplicación que se utiliza para intercambiar ficheros con un servidor SSH de forma segura utilizando este protocolo.

    Es una aplicación que se instala en el cliente, no en el servidor. Para poder utilizar esta aplicación hay que seguir las siguientes instrucciones:

    sudo aptitude install sshfs fuse-utils
    sudo adduser usuario fuse
    sudo reboot
    

    adduser usuario fuse se utiliza para añadir nuestro usuario al grupo fuse y que de esta forma podamos utilizar esta aplicación (usuario del pc-cliente).

    Modo de empleo:

    sshfs usuario@ip_servidor:/carpeta/del/servidor/que/queramos/compartir ~/carpeta/del/cliente

    Para cortar la comunicación hay que ejecutar:

    fusermount -u ~/carpeta/del/cliente

    sin utilizar sudo.

  5. Screen
    Volver al índice.
    La aplicación Screen sirve para que el servidor siga y ejecute las instrucciones que nosotros le indicamos incluso si el cliente ha perdido la conexión. Es una terminal virtual (aún más virtual :D)

    Ejemplo: Le indicamos al servidor que baje un cd de ubuntu pero no tenemos tiempo para dejar el pc cliente encendido hasta que el servidor termine. Por esta razón screen al ejecutarse en el servidor es independiente de la terminal que utiliza el cliente y por tanto el servidor puede seguir las instrucciones aunque el cliente no esté.

    sudo aptitude install screen

    Hay que copiar el fichero de configuración /etc/screenrc a ~/.screenrc y descomentar la linea:
    startup_message off para evitar que nos aparezca el mensaje de bienvenida cada vez.

    Screen se puede controlar de 2 formas, desde dentro de screen y desde fuera de screen.

    Controlar screen desde fuera:

    • screen ejecuta screen
    • screen -ls despliega un listado con las sesiones abiertas de screen. En el listado aparece el numero de pid de la sesión y el nombre de la terminal
    • screen -d desengancha todas las sesiones de screen
    • screen -r pid reengancha la sesión de screen con ese numero de pid. Si hay una sola sesión no es necesario especificar el numero de pid.
    • screen -dr pid desengancha y reengancha la sesión de screen con ese numero de pid. Si hay una sola sesión no es necesario pid.

    Controlar screen desde dentro:

    • ctrl+a c es decir apretar "ctrl" y "a" a la vez, soltar y apretar "c" crea una nueva sesión de screen
    • ctrl+a d desenganchar la sesión actual
    • ctrl+a n ir a la siguiente sesión de screen
    • ctrl+a p ir a la sesión anterior de screen
    • ctrl+a w enseña una lista de las sesiones de screen
    • ctrl+a numero ir a la sesión con ese numero
    • ctrl+a ' ir a la sesión con numero que especificamos después de la comilla simple, por si hay más de 9 sesiones
    • ctrl+a shift+2 seleccionar con flecha arriba y flecha abajo la sesión que deseamos utilizar
    • ctrl+a shift+a cambia el nombre de la sesión actual
    • ctrl+a k terminar la sesión actual
    • ctrl+a altgr+\ terminar todas las sesiones de screen
    • Modo scroll:
      • ctrl+a altgr+[
        o
      • ctrl+a ctrl+esc Empezar modo scroll.
      • intro Seleccionar texto.
      • esc Salir sin copiar nada.
      • ctrl+a altgr+] Recoge el texto seleccionado en el portapapeles.