Instalación.
Copiar a través de una conexión segura.
SSH es un protocolo que hace posible que un cliente
(un usuario o incluso un equipo) abra una sesión interactiva en una máquina
remota (servidor) para enviar comandos o archivos a través de un canal seguro.
Vamos a utilizar ssh, en primer lugar vamos a
conectarnos con ssh desde una máquina Linux a un linux. Para ello lo primero
que hay que hacer es instalar ssh en las dos máquinas.
sudo su apt-get
install ssh
Y para conectar a la máquina que nos interese se pone:
ssh usuario@hostname en
este caso sería:
ssh root@192.168.1.104
La primera vez que te conectas tendrás que aceptar la
conexión, y ya no te lo volverá a pedir más, te pedirá que ingreses el password
y entraras en la máquina.
Para salir le damos a exit y termina la conexión.
Con netstat –natup se ve el puerto por el que nos
conectamos.
Cambio de puerto
El ssh usa el puerto 22 para conectarse. Con lo cual
si queremos hacerlo más seguro, podemos emplear otro puerto de conexión y para
cambiarlo, entraríamos en el archivo de configuración sshd_conf que se encuentra dentro de /etc/ssh y se cambia en ambas máquinas igual, ya que si no la conexión
se seguirá haciendo por el puerto 22.
Buscamos donde está la directiva del puerto, que como
se ve es el 22. Lo único que hay que hacer es poner ahí el puerto que se quiera
que no esté ocupado.
Por ejemplo usamos el puerto 8822.
Restablecemos el servicio.
Con lo cual ahora si queremos hacer una conexión, la
orden que hay que poner es:
ssh –p 8822 usuario@192.168.1.104 ya que si queremos conectar como antes no nos dejara.
Como configurar el servidor para impedir que se conecte como root en el
sistema.
Nos vamos al archivo de configuración /etc/ssh/sshd_conf
Y dentro inicialmente nos lo encontramos así:
Luego lo único que habría que hacer es poner no y
restablecer el servicio, de esa forma desde el cliente no se podrá conectar
como root.
Si intentamos entrar como root, no dice que el permiso
esta denegado.
Si lo intentamos con cualquier otro usuario, no nos
dará ningún problema.
A través del navegador también se puede hacer una
conexión ssh.
Lo que hay que hacer es ir al navegador en introducir en lugar ssh://usuario@192.168.1.104:8822
De esta forma entramos a la máquina de forma gráfica.
Copiar a través de una conexión segura.
Vamos a crear un archivo por ejemplo cliente.txt en el servidor y lo vamos a
copiar al cliente.
La orden es: scp –P 8822 usuario@192.168.1.104: /home/usuario/cliente.txt .
Vamos ahora
ha hacerlo al reves, copiar un archivo del cliente al servidor. Para ello
creamos un archivo en este caso lo llamaremos: servidor.txt
Y la orden
para copiarlo es:
scp –P 8822 servidor.txt usuario@192.168.1.104:/home/usuario/
Si lo
queremos hacer en windows, el programa que tenemos que usar es el winspc y una vez que se ejecute, lo único que hay que hacer es introducir los datos para conectar.
Y una vez que
entremos, se ven las dos máquinas y solo es trasladarlo de una a otra.
Conectar ssl con clave pública.
Es posible establecer conexiones SSH
a servidores Linux sin necesidad de ingresar una contraseña cada vez. Para esto
debemos:
·
Crear
nuestro par de claves pública y privada
·
Copiar
nuestra clave pública en el servidor SSH
·
Utilizar
la clave privada al establecer la conexión SSH
Dependiendo si estamos utilizando
Windows o Linux, tendremos varias formas de llevar a cabo estos pasos.
Creación de las llaves
Para comenzar a utilizar claves
pública/privadas desde nuestro cliente
SSH, debemos generarlas antes.
En Linux las generamos utilizando el
comando ssh-keygen.
Nos pregunta donde queremos
guardarlo, yo le pongo la misma ruta, y luego nos pide una frase que se puede
dejar vacia o poner algo, yo le he puesto clave.
Esto genera 2 archivos en nuestro
directorio home: ~/.ssh/id_rsa y ~/.ssh/id_rsa.pub. El primero contiene la clave
privada, que debemos mantener segura y no compartir. El segundo archivo
contiene la clave pública, que compartiremos con los servidores SSH a los que
querramos conectarnos.
Copiar llaves al servidor SSH
Luego de generar las claves debemos
compartir nuestra clave pública con el servidor
SSH al que queremos conectarnos. Para ello copiamos el siguiente comando.
Te la copia en el servidor y te crea
un archivo llamado authorized_keys donde guardara todas las claves que tengas.
Conexión utilizando clave
pública/privada
Luego de la
instalación de la clave, si utilizamos los nombres de las claves por defecto la
conexión desde Linux al servidor SSH
es tan simple como ejecutar:
ssh usuario@192.168.1.104 y meter la
clave que hayas puesto, en este caso es clave.
Ya no te pide
contraseña, lo que te pide es que escribas la frase que te dice y ya conectas y
cada vez que conectes, no te pedirá la clave para entrar.
WINDOWS
En windows hay que descargarse el putty.exe, el puttygen.exe y el pscp.exe.
Una vez descargadas las ubicamos en una carpeta lo más próximo a nuestra
carpeta raíz por ejemplo: C:\Putty y
desde allí realizaremos todas las operaciones con sus programas.
Creación de las llaves
Utilizaremos el puttygen.exe para generar las claves tanto locales como públicas
para utilizarlas en nuestra conexión al LINUX Server. Una vez abierto,
seleccionamos el tipo de encriptación RSA y de damos al botón generate. Tendremos que mover el
ratón por la zona de la barra para que el programa funciones y genere la clave.
Al final nos sale las claves generadas.
Nos facilita la zona de Key passphrase para poder proteger los ficheros que
se van a grabar en caso de que alguien los quiera utilizar para suplantar la
identidad.
Le damos al botón de “Save private key” y la guardamos en nuestro pc, en
la carpeta del putty. La clave privada, no debe salir de vuestro ordenador, ni
copiarla en otro sitio.
La clave publica la salvamos con el botón "Save public key " y es la que copiaremos en nuestro servidor.
Hay que recordar que las claves se crean para un usuario en particular, de
manera que un usuario puede tener diferentes claves públicas de distintos
ordenadores.
Copiar llaves al servidor SSH
Para copiar la clave pública al servidor LINUX, utilizaremos el programa pscp.exe desde la línea de comandos de Windows situado en la
carpeta donde tenemos ubicados las utilidades anteriormente mencionadas.
Debemos tener claro a que usuario del servidor LINUX le vamos a dar permisos,
por ello el comando pscp debe ir acompañado de una serie de parámetros para que
sea depositado en la carpeta adecuada de ssh para el usuario en el servidor.
En nuestro caso el usuario en el LINUX Server se llama usuario y el servidor está en la dirección 192.168.1.104, por lo tanto debería tener una carpeta /home/usuario/.ssh que será el destino
de nuestro fichero.
comando:
pscp -l usuario -4 -scp clave_publica
usuario@192.168.1.104:/home/usuario/.ssh/clave_publica
Al trasferir el fichero, al ser la primera vez, nos pregunta que si
queremos guardar en el registro de la maquina local las credenciales de
conexión al servidor para una sesión permanente si confiamos en la maquina remota.
Contestamos "y". Si se transfiere con éxito deberíamos tener una
ventana parecida esta:
Hay que recordar que las claves se crean para un usuario en particular, de
manera que un usuario puede tener diferentes claves públicas de distintos
ordenadores.
Las claves públicas se añaden al archivo ~/.ssh/authorized_keys del usuario en concreto. Por ejemplo si tenemos un
usuario que es usuario, modificaremos /home/usuario/.ssh/authorized_keys
Si no existe el archivo lo creamos y si existe guardamos tenemos que convertir
la clave pública que hemos enviado a formato openssh e incorporarla al fichero
authorized_keys de la siguiente forma.
#
cd /home/usuario/.ssh
# ssh-keygen -if clave_publica > publica_openssh.pub
# cat publica_openssh.pub >> authorized_keys
# ssh-keygen -if clave_publica > publica_openssh.pub
# cat publica_openssh.pub >> authorized_keys
Con la redirección de salida >> lo que hacemos es añadir al final del
fichero sin sobrescribir lo que haya previamente.
Bien pues ya cuando logeamos con nuestro usuario usuario ya no nos pide el password porque estaremos identificados
con el sistema de clave pública/privada.
Ahora se debe configurar el servidor
ssh, para que permita utilizar la utilización de clave publicas
sudo nano
/etc/ssh/sshd_config
dejar descomentado RSAAuthentication, quedando de la siguiente forma:
RSAAuthentication
yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Por ultimo reiniciar el servicio
sudo service ssh restart
Para conectarse desde windows hay que hacer algunos ajustes en el clientes
ssh PuTTy para que todo funcione perfectamente. Primeramente pondremos la ip
del servidor LINUX
Posteriormente hay que indicarle donde está la clave privada que hemos
guardado en un sitio seguro de nuestro pc. Vamos al menú Connection -> SSH
->Auth
y en la opción: “Private key file for authentication” buscamos y seleccionamos
la clave privada.
Después hay que decir con que usuario queremos que haga “auto-login” para
no tener que teclear nuestro usuario.
Vamos al menú: Connection-> Data y en en menu auto-login username,
ponemos nuestro usuario con el que queremos logear y para el que hemos creado
las claves RSA.
Salvamos toda la configuración y ahora cuando pulsamos en Open nos logea
directamente en nuestro servidor LINUX sin tener que teclear usuario ni
contraseña.
Observaciones
En algunos casos por haber generado la clave pública y privada con el
puttygen.exe en la maquina windows al realizar todo el proceso anteriormente
mencionado y utilizar el putty.exe para conectarnos, nos da un error
"server refused our key". Eso es debido a que la clave pública se ha
transmitido mal al servidor.
Como solucionamos este problema
Copiar la clave pública con Ctrl + C desde el Puttygen.exe a través del
portapapeles e introducirla directamente dentro del fichero
authorized_keys, accediendo previamente por telnet al servidor LINUX y
teniendo la ventana del editor vi o nano abierta. Con solo tocar la ventana del
Editor vi con el botón derecho del ratón se pega intacto el
código de la clave pública dentro del fichero que estamos editando
Salvamos el fichero authorized_keys después de editarlo
Por ultimo reiniciar el servicio
sudo service ssh restart
Creación de un tunel ssh en linux.
Nos vamos al
cliente y lo que escribimos es:
ssh –D 8080 root@192.168.1.104
Donde 8080 es el puerto que elegimos, que podíamos
haber elegido cualquier otro al azar que no esté ocupado, por donde queremos
que se establezca el túnel, de esta forma lo que hacemos es crear directamente
ese puerto en el servidor, sin tener que crearlo manualmente en el archivo de
configuración.
Ahora para
navegar de forma segura por la red, hemos de configurar el navegador, para ello
en este caso estamos en un debían, y abrimos el navegador, nos vamos a preferencias,
avanzado,
red, configuración.
Elegimos la
opción de configuración
manual del proxy, en el servidor SOCKS ponemos 127.0.0.1 y el puerto elegido, en este caso el 8080.
De esta
forma estamos navegando de forma segura y las páginas que visitemos estarán
encriptadas. Para comprobarlo lo vemos con el wireshark.
Cuando
acabemos volvemos a configurar el navegador para que no nos de problemas a la
hora de navegar y ya dejara de estar encriptado.
Creación de un tunel en Windows.
Nos vamos dentro del PuTTY y entramos dentro de SSH y dentro de Tunnels y añadimos el puerto, lo ponemos en auto y en dynamic.
Iniciamos la sesión y salvamos la configuración del tunel.
Configuramos el navegador igual que antes.
Conectarse a escritorio remoto de linux a windows.
En Windows
nos vamos a mi
pc, propiedades,
remoto
y pinchar en la pestaña que dice permitir que los usuarios se conecten de manera remota a este
equipo.
Seguidamente
nos vamos a la máquina de Linux desde la que queremos conectarnos remotamente.
Para
instalar el rdesktop para consola en caso de no tenerlo por apt:
$ sudo apt-get install
rdesktop
Si prefieres
también lo puedes hacer por el entorno Grafico:
Para
instalarlo y utilizarlo gráficamente necesitamos ingresar el siguiente comando
en la terminal:
$ sudo apt-get install
grdesktop
Mediante la utilidad rdesktop podemos conectar por RDP (Remote
Desktop Protocol) a equipos Windows. Vamos a ver cómo funciona.
En su uso más simple podemos ejecutar rdesktop con
el nombre o IP del servidor a conectar:
$ rdesktop 192.168.1.110
Con el cual obtendremos una ventana que
nos pedirá los datos de acceso:
Sesión Remote Desktop
La primera necesidad es cambiar el tamaño de pantalla por uno más grande,
esto lo podemos hacer mediante la opción -g, pudiendo indicar el
tamaño que nos interese:
$ rdesktop -g1024x768 192.168.1.110
También podemos saltarnos la pantalla de
login indicando los datos con las siguientes opciones:
·
Usuario: Mediante la opción
-u indicamos el nombre del usuario con el que conectaremos
·
Contraseña: Mediante la opción -p podemos indicar la contraseña
·
Dominio: En el caso que
pertenezca a un dominio de Windows podemos especificarlo, si
los datos de acceso son locale no lo necesitamos
El comando quedaría:
$ rdesktop -g1024x768 192.168.1.110 -u Moises -p usuario
En el caso que queramos pasar a pantalla completa podemos
usar la opción -f:
$ rdesktop -f 192.168.1.110 -u Moises -p usuario
Conectarse a escritorio remoto de windows a linux.
Desde la
máquina de Windows que queramos hacer la conexión con Linux, nos vamos a
internet y descargamos un programa para poder hacer esta conexión remota. En
este caso descargamos el ultravnc
Lo
instalamos y una vez instalado nos vamos al Linux, en mi caso es un debían.
Si
gráficamente no tenemos la opción de sistema, preferencias, escritorio remoto,
lo haremos desde consola.
Hay que
habilitar el acceso por escritorio remoto escribiendo el siguiente comando en
la terminal
gconftool-2 -s -t bool
/desktop/gnome/remote_access/enabled true
Deshabilita
el aviso del escritorio remoto escribiendo el siguiente comando en la terminal.
gconftool-2
-s -t bool /desktop/gnome/remote_access/prompt_enabled false
Los usuarios
deben dar su consentimiento para el acceso por escritorio remoto haciendo clic
en la ventana de confirmación que aparece en el escritorio de Ubuntu de forma
predeterminada. Esta opción debe estar desactivada para que puedas conectarte
de forma remota si el usuario no está en el escritorio de Ubuntu.
Aquí seleccionamos las opciones que aparecen en la
imagen, en donde dice Requerir que el usuario introduzca una contraseña,
escribimos una contraseña que es con la que nos vamos a loguear desde windows,
y luego le damos clic en cerrar.
No hay comentarios:
Publicar un comentario