Teoría sobre servizos de acceso remoto e administración remota

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

Telnet

Telnet é un protocolo de rede (Telecommunication Network) que serve para conectarse a unha máquina dunha rede desde outra para manexala remotamente.

É un protocolo cliente-servidor que se comunica polo porto 23. Está especificado no RFC 854 e os seus parámetros de configuración van do 855 ó 861.

Cando facemos un telnet a uhna máquina (con su nome de dominio ou IP), a máquina remota pidenos o nombre de usuario e contrasinal.

Úsase so en redes locais debido a que as comunicacións non están cifradas; no son seguras e polo tanto podense descifrar con cualquera programa de sniffer.

Opciones telnet

?: mostrar axuda.
close: pechar sesión Telnet.
display: mostrar a configuración da conexión en pantalla.
logout: pechar a sesión.
mode: cambia entre os modos de transferencia ASCII e los BINARIOS.
open: abre outra conexión.
quit: sale da aplicación Telnet.
set: cambia a configuración de conexión.
unset: carga a configuración de conexión predeterminada.

Instalación

Uso

Exemplos de uso
telnet <nombre del dominio> 
telnet <dirección IP>
telnet <dirección IP> <porto>

Sitios públicos con conexión telnet

  • [rainmaker.wunderground.com o tempo via telnet!]
  • [towel.blinkenlights.nl 23 Star Wars asciimation]

SSH

SSH ou Intérprete de Comandos Seguro é o protocolo que ven a resolver os problemas de seguridade de telnet, xa que si cifra as conexións. Normalmente, o protocolo SSH cifra con chaves dos algoritmos RSA pero pode facelo con chaves e algoritmos DSA (Digital Signature Algorithm). Na actualidade utilízase a versión SSH-2 especificada no RFC 4651 e os seus parámetros que van do RFC 4652 ó 4656.

As características básicas do protocolo SSH son:

  • Autenticación: autentificase o usuario mediante nomes de usuario e contrasinais
  • Confidencialidade: cifranse as conexións.
  • Integridade: se o paquete é alterado polo camiño podese detectar.
  • Non repudio: cando se establece esta comunicación non podemos negar quén somos.

Polo tanto:

  • Evita interceptación da comunicación e posible captación de contrasinais con programas sniffer.
  • Evita a suplantación de host ou Man in The Middle.
  • Existen versións para todos os sistemas operativos.
  • Permite tunelización para telnet, FTP, SMTP, POP3, etc. Un túnel SSH é o mecanismo mediante o cal se habilita un porto no ordenador e unha conexión encriptada a unha segunda máquina de xeito que todos os datos que vaian por ese porto pasarán por unha conexión segura
  • Permite a compresión de los paquetes.

O funcionamiento del SSH:

  • Comeza cando o cliente abre unha conexión TCP no porto 22.
  • Servidor e cliente negocian a versión de SSH, o tipo de cifrado (RSA/DSA) e demáis opcións
  • O servidor envía a súa chave pública ó cliente.
  • O cliente comparaa coa lista de chaves que ten. Se é a primeira vez, o usuario deberá indicar se é válida ou non; este é o único momento no que se pode suplantar a este equipo, e para evitarlo teremos acceso as chaves en man ou desde intranet.

• O cliente xenera unha clave de sesión aleatoria que é enviada ó servidor dentro dun paquete cifrado co algoritmo seleccionado e a chave pública. • A partir de este intre a comunicación basease no algoritmo simétrico de encriptación seleccionado.

Instalación de cliente SSH

Cliente SSH
apt-get install openssh-client

Configuración

Os parámetros básicos de configuración atopanse en

~/.ssh/config ou /etc/ssh/ssh_config

Algunha das opcións máis relevantes:

Host *|127.0.0.1|nombre-dominio: restrinxe a qué servidores podemos conectarnos; o comodín asterisco (*) permite conectarnos a todos
Port 22|otro: porto que podemos cambiar
Protocol 2|1: versión do protocolo SSH
Compression no|yes: activa o desactiva a compresión

Os parámetros de control e autenticación anteriores podense configurar desde o terminal coa orden ssh:

ssh [–o orden parámetro] [usuario@]nombre-host
Por exemplo
ssh –o Compression no root@127.0.0.1

Uso de cliente en modo texto

ssh [-p puerto] [usuario@]ip_del_servidor
Exemplos
ssh –p 22 admin@127.0.0.1
ssh root@127.0.0.1

Uso de clientes en modo gráfico

Con ferramentas coma Putty, WinSCP ou Openssh.

Instalación do servidor SSH el linux

Servidor SSH
sudo apt-get install ssh ou apt-get install openssh-server

Arranque, parada e reinicio do servizo en linux

#/etc/init.d/ssh start
#/etc/init.d/ssh stop
#/etc/init.d/ssh restart

Configuración do servizo en linux

Pódese facer a través de webmin ou modificando o ficheiro:

etc/ssh/sshd_config 

Algunhas opcións coinciden coas do cliente. Outras relevantes:

PermitRootLogin yes|no: permite conectarse a la máquina remota como superusuario (root).
ListenAddress 0.0.0.0: direccións IP que escucha. 0.0.0.0 é todo internet con IPv4; :: é todo internet con IPv6.

Autenticación de usuarios

Las claves de usuario están en los archivos: ssh_host_rsa_key, ssh_host_ rsa_key.pub, ssh_host_dsa_key y ssh_host_rsa_key.pub. En el servidor, el archivo ssh/autho rized_keys tiene las claves de los usuarios permitidos, que siempre serán un subconjunto de los usuarios locales del servidor. En Windows debemos crear los usuarios, para ello desde la carpeta \bin utilizamos la orden mkpassd: mkpassd –l [–u usuario] >> ..\etc\passwd

Exemplo

mkpassd –l –u xose >> ..\etc\passwd

Monitorización e logs

Dentro da carpeta \var

Túneles SSH

Os túneles encriptan outros protocolos (FTP, SMTP, etc.) e os convirten en seguros ou os centralizan para atravesar a devesa. Podemos crearlo con:

ssh –L puertolocal:servidor:puertoservidor [usuario@]servidor
Exemplo
ssh –L 10443:smtp.gmail.com:443 xose@smtp.gmail.com

En PuTTY configúranse na categoría SSH, subcategoría Tunnels

En source port indicamos o porto local
En destination indicamos o porto do servidor 
Pulsamos o botón engadir (add).

Reenvío X11 O reenvío de puertos (port forwarding) é unha característica que permite reenviar portos para mandalos polo puerto seguro SSL. No caso das X11, falamos do sistema gráfico (XTERM), terminal que envía por defecto as comunicacións sen codificar e por iso requírese reenviar a información por outro porto distinto e seguro: o SSH.

Para que funcione debemos ter configurada a negociación de este reenvío:

no archivo sshd_config do servidor coa liña X11FORWARDING a YES
no archivo ssh_config do cliente coa liña FORWARDX11 tamén a YES. 

Si usamos PuTTY ou Webmin tamén debemos activar esta opción, tanto en clientes como en servidores.

Transferencia segura de archivos usando SSH (sftp y scp)

Cando queremos transferir ficheiros de xeito seguro utilizaremos a orde sftp (existe en todos os sistemas operativos ó instalar o cliente SSH):

sftp [usuario@]servidor

E para copiar ficheiros tamén podemos usar scp:

scp orixe destino

Máis información dos comandos co comando man:

man sftp
man scp


Instalación do servidor SSH en Windows

Debemos instalar algunha opción:
* OpenSSH
* FreeSSHd
* WinSSHd
* ...  
Con Openssh creanse as chaves e os arquivos de configuración en:
C:\Archivos de programa\OpenSSH\etc.

Arranque e parada do servizo en Windows

net start opensshd
net stop openssh

Tamén pódese facer por interfaz gráfica executando services.msc, e atopando o correspondente servizo.

Protocolo RDP (Remote Desktop Protocol)

Microsoft© Remote Desktop Protocol é un protocolo de escritorio remoto en modo gráfico que permite a administración remota de servidores e clientes Windows desde calquera sistema operativo cliente. Está integrado nas diferentes versións de Windows e comunicase polo porto TCP 3389.

Uso

VNC

VNC ou programa de Computación en Red Virtual é outro programa de administración remota en modo gráfico e de código libre.

O servidor utiliza o puerto 5900
Os clientes de Windows o puerto 5800
Os de Linux e Mac OSol terminal que non estén usando (por exemplo, se solo temos activado un terminal, o seguiente pode acceder desde o puerto

5801; se tenemos activados catro debemos conectarnos polo porto 5804, etc.)

As características más importantes de VNC son:

  • Permite crear pantallas virtuais en Linux y Mac OS, pero solo puede compartir a pantalla actual en Windows
  • En algunhas versións pode compartir a pantalla con varios clientes á vez
  • Permite codificación IDEA de ata 128 bits para encriptar e RSA de ata 2048 bits para autenticar
  • Permite compartir impresoras, FTP seguro, chat seguro, ...

Clientes VNC

Existen distintas versións de clientes VNC (RealVNC, TightVNC, UltraVNC,etc.) que están diseñadas para todos os sistemas operativos.

RealVNC é un destes programas que poderemos baixar e serve para todos os sistemas operativos. Desde Linux podemos bajarnos el paquete vncviewer. O cliente RealVNC pidenos o Server (nome ou IP), e en opcións podemos elixir número de cores, pantalla completa, etc.

Desde Linux podemos usar:
#vncviewer IP

Servidores VNC

Instalación en linux:

# apt-get install vncserver

Sobre a icona VNC podemos:

  • ADD NEW CLIENT: engadir novos clientes
  • DISCONNECT CLIENTS: desconectar os clientes.
  • CLOSE VNC SERVER: parar o servidor.
  • OPTIONS: modificar as opcións básicas (contrasinais, portos, se se visualiza o escritorio ou a opción "por defecto", etc.

Como mínimo debemos entrar en VNC PASSWORD AUTHENTICATION y poñer un contrasinal.

NX

A tecnología NX é outro tipo de administración remota que permite conexions X11 sobre SSH moi rápidas a servidores con diferentes sistemas operativos incluso con conexiones con pouco ancho de banda. NX é código propietario e funciona polos portos 5000 e 22

Uso

Ampliación

  • O RFC 4716 detalla a encriptación de chave pública
  • O RFC 4344 describe varios tipos de encriptación