Trabajando para tu desarrollo.
RSS icon Email icon Home icon
  • Acceso Remoto con SSH

    Escrito: Septiembre 4th, 2008 velsagroup No hay comentarios

    SH (Secure Shell)

    SSH (Secure SHell) -intérprete de comandos seguro- es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix) corriendo.

    Empezaremos instalando el servicio.

    sudo aptitude install ssh

    Una vez instalado, el demonio se ejecutará automáticamente. Igual que con cualquier otro proceso este se puede parar, arrancar o reiniciar cuando queramos.

    sudo /etc/init.d/ssh stop

    sudo /etc/init.d/ssh start

    sudo /etc/init.d/ssh restart

    En este momento y con los parámetros por defecto, el servicio esta listo para ser usado, pero es más que recomendable hacer unos cambios para reforzar nuestra seguridad.

    Yo los deje por defecto y en una semana recibí prácticamente a diario ataques provenientes de china y malasia en su mayoría, en los que mediante fuerza bruta intentaban acceder. Como se detecta? pues es simple un simple vistazo a los logs es más que suficientes.

    cat /var/log/auth.log |grep ssh

    Empezaremos modificando el fichero de configuración.

    sudo vim /etc/ssh/sshd_config

    Lo primero y mas importante es cambiar el puerto que usa por defecto, de esta forma nos quitaremos la gran mayoría de intentos de intrusión. Esto no nos asegura invulnerabilidad, pero si que hace más difícil la localización del servicio por parte de scripts que atacan dicho puerto.

    Buscamos donde pone Port 22 y ponemos el puerto que queramos.

    Port 2222

    Si salís a internet mediante un router, como es mi caso, lo que haremos será dejar el puerto 22 en el fichero de configuración y redirigir la entrada del puerto 2222 del router hasta el puerto 22 de mi máquina (el mismo proceso que con los puertos del emule, a que ahora si!!). De esta forma, en la Lan el puerto ssh es el 22, pero de cara al exterior es el 2222.

    Comprobaremos que el Protocolo este a 2, en caso contrario lo pondremos (el protocolo 1 está en desuso).

    Protocol 2

    En el apartado Authentication haremos los siguientes cambios.

    Tiempo que emplearemos en hacer el login, no poner más de 30, un valor entre 15 y 30 está bien.

    LoginGraceTime 30

    Muy importante!! No permitiremos que el root pueda hacer login (esto fue lo que evito que los ataques que recibí consiguieran su objetivo).

    PermitRootLogin no

    También podemos poner el número máximo de reintentos para autentificarse.

    MaxAuthTries 3

    Agregar al final.

    ClientAliveInternal 300

    Bueno con esto ya tenemos bastante, guardamos y cerramos, quedándonos ya un servidor ssh más que seguro. Para que los cambios tengan efecto, hace falta reiniciar el servidor.

    sudo /etc/init.d/ssh restart

    Ingreso a la PC Remota

    Bueno, ahora empieza la acción, yo voy a poner los ejemplos de manera local (lan) pero teneis que tener en cuenta que es indiferente y se realiza de la misma manera conectar dos equipos en lan que a través de internet.

    ssh 192.168.0.25 (Ingresa como root y al puerto 22)

    ssh usuario@192.168.0.25 (Ingresa al puerto 22)

    ssh -p puerto usuario@192.168.0.25 (Define el usuario y puerto de acceso)

    Luego de conectarse debe cambiar nombre de la PC y reiniciarlo:

    1. Edita el archivo /etc/hostname y coloca el nombre del equipo que deseas.
    2. Luego, edita /etc/hosts y asegúrate de que 127.0.0.1 haga referencia a tu equipo:

    127.0.0.1 localhost
    127.0.1.1 nombre_de_tu_equipo

    1. Reinicia y listo.

    # init 6

    Configurar el Mensaje de Bienvenida

    # gedit /var/run/motd

    Ejecucion de Aplicaciones en Modo Grafico

    Tenemos que volver al archivo de configuración y indicar de manera expresa que queremos el modo gráfico, por lo que editaremos y buscaremos y modificaremos o añadiremos lo siguiente.

    Forwarding yes

    ForwardX11Trusted yes

    ejecutamos ssh con la opción -X

    # ssh -X 192.168.0.25

    # nautilus (Abrira Nautilus)

    Copiar ficheros

    Una vez conectados con el equipo remoto, puede ser interesante querer pasar ficheros del equipo remoto a nuestro equipo, esto lo realizamos con el comando scp.

    scp curriculum.odt edgar@192.168.0.25:~/Escritorio/curri.odt

    o un directorio entero con

    scp -r Exemples edgar@192.168.0.25:~/Escritorio/exemp

    Que es todo esto.

    • curriculum.odt o Exemples, es el archivo o directorio que queremos copiar.

    • banyut@192.168.1.100 es el usuario que hace la conexión y la maquina donde queremos guardar el fichero o directorio.

    • :ruta, es la ruta donde lo copiaremos.

    El comando scp es independiente de ssh, lo podemos ejecutar aunque no hayamos establecido una conexión ssh.

    scp edgar@192.168.0.25:~/Examples/oo-trig.xls ~/Escritorio/oo-trig.xls

    Copiamos el archivo ~/Examples/oo-trig.xls de la maquina remota 192.168.1.101 en nuestro escritorio ~/Escritorio/oo-trig.xls.

    Bueno, no esta mal no, pensar que aquí no se acaba todo, con scp, podríamos copiar un archivo de un ordenador remoto a otro también remoto.

    Daremos un paso más, ssh no se limita solo a la consola, abrir el nautilus (alt+F2 y escribir nautilus) y en la ruta poner.

    ssh://edgar@192.168.0.25

    Je je je, como se os ha quedado el cuerpo. En este caso si el puerto no fuera el 22, tendríais que indicarlo de la siguiente manera.

    ssh://banyut@192.168.1.101:2222

    Donde 2222 es el puerto que hemos establecido para nuestro ssh. O también ir directamente a un directorio en concreto.

    ssh://banyut@192.168.1.101:2222/home/banyut/Escritorio

    Podemos montar nuestra conexión ssh como si de un disco duro se tratase, esto lo haremos mediante sshfs.

    sudo aptitude install sshfs fuse-utils

    Tenemos que cargar el modulo fuse, para ello teclearemos

    sudo modprobe fuse

    Si queremos que se carge al inicio lo tenemos que meter en /etc/modules

    sudo echo fuse >> /etc/modules

    Y por último nuestro usuario tiene que pertenecer al grupo fuse, por lo que añadiremos a el.

    sudo addgroup banyut fuse

    Pues ya lo tenemos todo listo, ahora solo nos queda montar nuestra conexión.

    mkdir /home/banyut/escritorioRemoto

    sshfs edgar@192.168.0.25:/home/edgar/Escritorio /home/juan/escritorioRemoto

    y ya tenemos nuestro conexión encriptada totalmente montada. para desmontarla lo podemos hacer de la manera habitual.

    sudo umount /home/juan/escritorioRemoto

    Leave a reply