Seguridad del sistema y de la red
Política de autenticación
La autenticación en un sistema Linux no solo concierne a una persona física. Encontramos tanto usuarios como aplicaciones, cada uno de los cuales tiene su propio método de solicitud de autenticación. Las librerías PAM (Pluggable Authentication Modules, módulos de autenticación conectables) proporcionan un mecanismo de autenticación sencillo, flexible y unificado.
1. Módulos PAM
a. Principios
PAM describe cómo desarrollar programas independientemente de la verificación de identidad. Estos programas utilizan, para ello, módulos que se encargan de la solicitud de ejecución. Una política de autenticación puede, por ejemplo, permitir que un simple usuario ejecute un comando localmente, pero no de forma remota.
La identificación se refiere al inicio de sesión y la autenticación se verifica introduciendo la contraseña del usuario. Si se cambia el tipo de autenticación, todos los programas relacionados deben modificarse para el nuevo funcionamiento.
Esto es lo que simplifica PAM: las directivas de interfaz del módulo se añaden junto con la programación según el orden de declaración.
Modificar el mecanismo de autenticación en un sistema sin precaución provoca a veces, su bloqueo. Tenga cuidado y ponga atención; de lo contrario, el único recurso será conectarse en modo «rescate» (vea el capítulo Soporte y solución de problemas) para restaurar los archivos correctos de configuración PAM.
b. Configuración y estructura de los archivos
Los numerosos módulos de PAM se encuentran en los directorios /lib/x86_64-linux-gnu/security/; el archivo de configuración general está en /etc/pam.conf, y los archivos de configuración de servicios, en /etc/pam.d. El archivo de configuración general en Ubuntu está vacío y solo se utiliza si el archivo /etc/pam.d no existe.
Las cuatro primitivas PAM
El proceso de conexión responde a una secuencia lógica de cuatro etapas:
Siendo:
-
auth: para la identificación de la cuenta.
-
account: para la verificación de la autorización.
-
session: para el control de los recursos relacionados con la cuenta.
-
password: para la verificación de la autenticación....
UWF con un cortafuegos
Basándose en la observación de que iptables sigue siendo un poco complicado para el usuario lambda o aun para aquellos más avanzados, los desarrolladores de la distribución de Ubuntu han decidido crear una herramienta en línea de comandos que permite configurar de forma más sencilla netfilter. UFW (Uncomplicated Firewall) es una interfaz para netfilter e iptables. No los reemplaza, sino que permite crear las reglas de Netfilter en lugar del usuario. Utiliza y es un complemento de iptables. Solo hay un comando para usar: ufw.
Los siguientes comandos deben ejecutarse como root, ya sea directamente o con sudo.
1. Activación y estatus
UFW se activa con el parámetro enable, así:
# ufw enable
El cortafuegos queda activo y se lanza al reiniciar el sistema.
UFW es iniciado por systemd. El script de reinicio verifica el estado de activación de UFW para cargar las reglas o no. El servicio UFW debe estar siempre activo: es la llamada al comando ufw la que determina si debe funcionar o no.
El estado actual se obtiene usando el parámetro status. En el siguiente ejemplo una regla está ya presente (la del acceso a freeplayer del ISP francés Free).
# ufw status
Estado: activo
Hasta Acción Desde
---- ------ ------
Anywhere ...
OpenSSH
1. Presentación
OpenSSH es un protocolo de shell seguro; un mecanismo que permite la autenticación segura, la ejecución y la conexión remotas. También permite el transporte seguro del protocolo X Window. Es capaz de encapsular protocolos inseguros redirigiendo puertos.
Los paquetes que se han de utilizar en un servidor son openssh-client y openssh-server. Para X, se añade ssh-askpass-gnome.
El uso más común sigue siendo el acceso remoto seguro a una máquina a través del cliente SSH.
2. Configuración
La configuración se guarda en el archivo /etc/ssh/sshd_config (que no se debe confundir con ssh_config). Es posible que haya que modificar algunas opciones:
-
Port: número de puerto, predefinido como 22.
-
Protocol: si se define como «2.1», se autoriza SSH1 y SSH2. Se prefiere SSH2 y por eso se deja solamente un valor de 2.
-
ListenAddress: de forma predefinida, SSH escucha en todas las IP del servidor. Se puede autorizar la escucha solo en una interfaz determinada.
-
PermitRootLogin: SSH autoriza las conexiones de root. El valor puede cambiarse a «no». En dicho caso, será necesario conectarse como simple usuario y pasar por su.
-
Banner: camino de un archivo cuyo contenido se muestra a los usuarios al momento de conectarse.
El servidor SSH se activa y se reinicia así:
# systemctl enable --now ssh
3. Utilización
El comando ssh permite...
Compartir archivos
1. Compartir con webdav
Un usuario tiene la posibilidad de compartir un espacio de su directorio en la red. Ya existe un directorio llamado Public en su carpeta personal. Este intercambio se realiza mediante webdav.
Para habilitar la compartición de archivos en la red, instale el paquete adicional gnome-user-share (se instalarán, entre otros, los paquetes apache2 y libapache).
Abra la Configuración. En la sección Compartir, active le compartición (arriba a la derecha).
Haga clic en Compartición de archivos y autorice compartir en la parte de abajo, en la sección Redes. Observe la dirección de red que debe comunicar a las otras máquinas. Active Solicitar contraseña.
Las modificaciones son inmediatas. Para verificar el funcionamiento, por ejemplo, desde otra máquina:
Vaya al Administrador de archivos y haga clic en Otras ubicaciones. En la sección Redes, aparecerá la máquina compartida.
La compartición está activa.
Puede compartir otros directorios de forma similar.
2. Compartir con Samba
Samba permite compartir archivos e impresoras en una red local para múltiples plataformas: Linux, Windows, Mac OS X… Es, por lo tanto, ¡un paquete indispensable!
Instalar los paquetes de Samba:
# apt install samba
Samba permite, entre otros, compartir archivos a través del protocolo CIFS utilizado por Windows. Es un protocolo que le permitirá compartir en una instalación heterogénea de máquinas, ya que todos los sistemas operativos pueden usarlo.