sábado, 29 de octubre de 2016

SSH acceso remoto seguro en Debian/Ubuntu

Cuando necesitemos acceder remotamente a cualquier Linux, entre ellos Debian o Ubuntu para efectuar tareas de gestión, mantenimiento, configuración, entre otros, es aconsejable usar SSH (secure shell) que permite obtener una consola de comandos del sistema remoto usando un medio de comunicación cifrado.

Instalar el servidor SSH

Para habilitar ssh en nuestro equipo o en cualquier servidor Debian o Ubuntu es necesario realizar los siguientes pasos: Actualizar el repositorio de paquetes

sudo apt-get update

Instalar el programa openssh-server

sudo apt-get install openssh-server

Establecer conexión remota por SSH

Para acceder remotamente nuestro equipo o servidor necesitamos conocer primero nuestra dirección IP o nombre de dominio. En el sistema donde se instaló el paquete openssh-server abra una terminal y ejecute:

sudo ifconfig

El resultado será similar al siguiente:

eth0 Link encap:Ethernet HWaddr 08:00:27:a1:54:5f 
 inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fd9c:c172:7dce:9100:a00:27ff:fea1:545f/64 Scope:Global
 ...

lo Link encap:Local Loopback 
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 ...

Ahora desde otro equipo conectado a la red (incluso desde si mismo) ejecute el siguiente comando para establecer una conexión remota:

ssh grover@192.168.1.8

Donde: grover es el usuario remoto y 192.168.1.8 es la IP remota. Una vez ejecutado el comando obtendrá el siguiente mensaje donde deberá escribir yes:

The authenticity of host '192.168.1.8 (192.168.1.8)' can't be established.
ECDSA key fingerprint is f4:a3:bb:a4:dd:73:f2:65:11:55:c1:e8:9b:95:5e:f0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.8' (ECDSA) to the list of known hosts.

A continuación le pedirá que escriba la contraseña del usuario remoto

grover@192.168.1.8's password:

Finalmente el sistema remoto desplegará un mensaje inicial de bienvenida y la linea de comandos lista para ser utilizada:

The programs included with the Debian GNU/Linux system are free software;
...
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

grover@deb:~$

Para finalizar la conexión remota y cerrar sesión deberá escribir simplemente la palabra exit.

grover@deb:~$ exit

El archivo de configuración resolv.conf contiene la IP del servidor que resuelve nombres de dominio (servidor DNS). Puede contener una o más direcciones IP de acuerdo a nuestra red. Si la asignación de nuestra dirección IP es dinámica (a través de DHCP), la IP del servidor DNS se escribe automáticamente en el archivo resolv.conf. Si nuestro equipo no recibe la IP del servidor DNS, el archivo resolv.conf queda vacío.

Cuando la dirección IP es asignada manualmente se acostumbra editar el archivo resolv.conf para asignar la IP del servidor DNS pero esto no es lo más recomendable debido a que este archivo puede ser reescrito en por el cliente DHCP si este está activo.

Solucionar la reescritura del archivo resolv.conf

Para evitar la reescritura o borrado del contenido del archivo resolv.conf es necesario realizar los siguientes pasos: Reconfigurar la aplicación resolvconf para evitar la actualización dinámica del archivo resolv.conf

sudo dpkg-reconfigure resolvconf

Seleccionar <No> Seleccionar <Ok> Configurar el archivo interfaces declarando el o los servidores DNS.

sudo nano /etc/network/interfaces

auto eth0
 iface eth0 inet static
 address 192.168.1.8
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-search DOMINIO
 dns-nameservers IP_SERVIDOR_DNS

Donde: DOMINIO es el nombre de dominio interno de la organización (borrar esta linea si desconoces de lo que se trata). Por ejemplo:

dns-search midominio.com

IP_SERVIDOR_DNS es la IP del servidor DNS, puede ser una o más. Por ejemplo:

dns-nameservers 8.8.8.8 8.8.4.4

Reiniciamos la red

sudo /etc/init.d/networking restart

Verificamos que la IP y dominio se establecieron el el archivo resolv.conf

cat /etc/resolv.conf

search mi_organizacion.com
nameserver 192.168.20.122

Con ello nuestro problema se encuentra resuelto.

Si te gustó esta publicación no olvides compartirlo. Espero sus comentarios.



Bridge o puente de red compartida en Debian/Ubuntu

Un bridge o puente es una forma de compartir la conexión de red o Internet entre dos (o más) ordenadores, incluso permite compartir la conexión de red entre distintas máquinas virtuales dentro de nuestro servidor Debian o Ubuntu.

Configuración de Bridge o puente

Para configurar bridge o puente en un equipo con Debian, Ubuntu o similares es necesario realizar los siguientes pasos: Instalar el paquete bridge-utils desde una consola de comandos.

sudo apt-get install bridge-utils

Editar el archivo de configuración sysctl.conf

sudo nano /etc/sysctl.conf

Agregar al final del archivo los siguientes parámetros y guardar el archivo:

net.ipv4.ip_forwarding = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Ejecutar la siguiente sentencia para establecer los valores definidos en el paso anterior

sudo sysctl -p /etc/sysctl.conf

Determinar la tarjeta de red con acceso a la red, si el equipo tiene solo una interfaz de red, por lo general tiene asignado el nombre de eth0. Para vizualizar los nombres de tarjetas de red ejecute el comando ifconfig

sudo ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:33:cc:55:88:88 
 inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0
 ...

lo Link encap:Local Loopback 
 inet addr:127.0.0.1 Mask:255.0.0.0
 ...

Editar el archivo interfaces

nano /etc/network/interfaces

Asociar el puente que denominaremos br0 con la interfaz física eth0

auto eth0
 iface eth0 inet manual

auto br0
 iface br0 inet static
 address 192.168.1.8
 netmask 255.255.255.0
 gateway 192.168.1.1
 bridge_ports eth0
 bridge_fd 9
 bridge_hello 2
 bridge_maxage 12
 bridge_stp off

Observe que la interfaz eth0 está en modo manual (sin configuración IP) y se asignó la tanto la dirección IP, mascara de red y puerta de enlace al puente br0. También la configuración inversa es válida. Reiniciar la interfaz de red para establecer los cambios.

sudo /etc/init.d/networking restart

Con ello el puente se habrá creado y estará disponible para su utilización como cualquier otra interfaz pero con la capacidad de ser compartida.

Puedes consultar el siguiente enlace en inglés para mayor detalle https://wiki.debian.org/BridgeNetworkConnections o esta otra guía en español para ver más sobre la configuración de red en Debian o Ubuntu https://wiki.debian.org/es/NetworkConfiguration

Si te gustó esta publicación no olvides compartirlo. Espero sus comentarios.