Lo más normal es que usemos nuestro servidor de manera remota, por lo que usaremos algunos servicios remotos como SSH
, SFTP
y SCP
.
Para instalar estos servicios tendremos que instalar SSH
, aunque ya nos lo encontramos instalado en nuestro sistema.
Es necesario que por seguridad configuremos algunos aspectos de SSH para que se prohiban los accesos al usuario root y las contraseñas vacías. Para ello, tendremos que abrir el archivo /etc/ssh/sshd_config
y descomentar las líneas siguientes:
PermitRootLogin no
PermitEmptyPasswords no
Y, para terminar, se reinicia el servicio:
service sshd restart
Para activar el log de SSH tendremos que acceder al archivo /etc/ssh/sshd_config
y modificar las líneas siguientes para que queden tal que así:
#Logging
SyslogFacility DAEMON
LogLevel DEBUG
Ahora sería interesante reiniciar el sistema o el servicio. Aunque siempre es más interesante reinciar el servicio:
service sshd restart
Para general las claves públicas y privadas debemos hacer lo siguiente:
# Generar claves pública y privada en el directorio /home/root/.ssd
ssh-keygen -t rsa
# Acceder al directorio donde están las claves:
cd /root/.ssh
# Enviar al ordenador destino las claves para que se conecte sin pedirle la contraseña.
ssh-copy-id -i id_rsa.pub SERVER_USERNAME@SERVER_IP
Este servicio viene con SSH, por lo que no hay que instalar nada. Sólo tenemos que saber como usarlo.
Para conectarnos por Secure File Transfer Protocol usaremos el siguiente comando:
sftp REMOTE_USER@REMOTE_IP
Este servicio también viene con SSH, por lo tanto, no tendremos que instalar nada.
Para conectarnos por SCP usaremos el siguiente comando:
scp <-P <puerto>> <ruta de archivo local> REMOTE_USER@REMOTE_IP:<ruta destino>
VNC es un programa de software libre basado en una estructura cliente-servidor que permite observar las acciones del ordenador servidor remotamente a través de un ordenador cliente. VNC no impone restricciones en el sistema operativo del ordenador servidor con respecto al del cliente: es posible compartir la pantalla de una máquina con cualquier sistema operativo que admita VNC conectándose desde otro ordenador o dispositivo que disponga de un cliente VNC portado.
Esto nos puede ser insteresante de instalar por el mismo motivo que hemos instalado SSH, para acceder remotamente a nuestro servidor. Pero, en este caso, para tener acceso al escritorio.
VNC en el lado de la máquina servidor.
Lo primero que tendremos que hacer será actualizar el sistema e instalar VNC:
pkg update && pkg upgrade -y
pkg install -y x11vnc
Lo primero que vamos a configurar en el servidor es una contraseña, para ello usaremos el siguiente comando (nunca desde el usuario root):
x11vnc -storepasswd
Luego, para lanzarlo, podemos usar un script de bash que he escrito para ello, pero tendríamos que revisarlo para que funcione bien acorde a nuestro usuario:
# Descargando el script
wget https://github.com/Jordilavila/dotfiles/raw/main/FreeBSD/install_files/vnc_server_launch.sh
# Arrancando el servidor con el script:
bash vnc_server_launch.sh
El otro modo de lanzarlo sería este:
x11vnc -shared -rfbauth /home/usuario/.vnc/passwd -noxdamage -geometry 1024x768
VNC en el lado de la máquina cliente.
Para instalar el cliente VNC introduciremos los siguientes comandos en el sistema FreeBSD Cliente:
pkg update && pkg upgrade -y
pkg install -y tigervnc-viewer
Para lanzar el cliente VNC usaremos este comando:
vncviewer usuario@192.168.137.221:5900
Se nos pedirá la contraseña que hemos establecido en la máquina remota y podremos acceder a ella para tener el control absoluto sobre la misma.
Remote Desktop Protocol
RDP es un servicio de escritorio remoto.
Podemos instalar y configurar RDP mediante el uso de este script:
wget https://raw.githubusercontent.com/Jordilavila/dotfiles/main/FreeBSD/install_files/install_rdp.sh
sh install_rdp.sh
Por otra parte, podemos instalar y configurar RDP mediante comandos. Para instalarlo introduciremos el siguiente comando:
pkg install -y xrdp
Y ahora vendría la configuración:
sysrc xrdp_enable="YES"
sysrc xrdp_sesman_enable="YES"
service xrdp restart
En mi caso estoy trabajando con un entorno gráfico KDE Plasma bajo X11. Esto significa que tengo que modificar un archivo de RDP. Realmente, este archivo es necesario modificarlo según el sistema que tengamos instalado en nuestra máquina. En la mayoría de los casos, la modificación será descomentar una línea, pero, en el caso que me ocupa no será así, tendré que añadir el escritorio KDE que estamos usando y que no es el que hay en el archivo /usr/local/etc/xrdp/startwm.sh
para que quede tal que así:
#!/bin/sh
#
# This script is an example. Edit this to suit your needs.
# If ${HOME}/startwm.sh exists, xrdp-sesman will execute it instead of this.
#### set environment variables here if you want
export LANG=en_US.UTF-8
#### start desktop envirnment
# exec gnome-session
# exec mate-session
# exec start-lumnina-desktop
# exec startkde
# exec startxfce4
exec startplasma-x11
# exec xterm
Tras esto, es recomendable reiniciar el sistema.
Finalmente, nos conectamos mediante la aplicación de escritorio remoto de Windows: