2022-23
La alta disponibilidad permite que un servicio funcione correctamente ante un fallo software o hardware. En caso de fallo
Seguirá funcionando de forma transparente para los usuarios como si el fallo no hubiera ocurrido
¿Cómo se puede implementar la alta disponibilidad?
Configuración basada en HW
Configuración basada en SW
Ej: sistemas redundantes de alimentación, almacenamiento (RAID), de red, etc. (Reemplazo en caliente)
Clusters de Servidores que retoman actividad del nodo que falle
¿Cómo se puede implementar el alto rendimiento?
También con clusters de servidores
Alto rendimiento
Alta disponibilidad
Existen muchas herramientas (Sw y Hw)
Servicios
Herramientas SW están destinadas a:
Datos
Existen muchas herramientas
Generales
Usadas de forma general para cualquier servicio (Web, correo electrónico), también de forma individual (Telefonía Ip)
VoIP
File Transfer Protocol: empleado para transferencia de archivos en Internet. Uno de los más empleados.
PROBLEMA: No seguridad de la info.
La transferencia se realiza sin cifrar la información.
Hoy en día existen extensiones sobre el protocolo FTP que aseguran el cifrado en la transferencia, como FTPS, empleando el cifrado SSL/TLS.
No confundir con SFTP, este es implementado con el servicio SSH, usado para conexiones remotas seguras por consola.
Como podemos observar para establecer una conexión FTP necesitamos: un servidor y un cliente
¿Qué cliente elegir?
Pues depende del uso y la soltura que tengamos, uno de los más usados y recomendables es FileZilla. ¿Por qué?
Básicamente hay 2 tipos:
Anónimos
Con acceso y permisos limitados
Del Sistema
Con cuenta creada en la máquina que ofrece el servicio
Con el server ProFTPD (tercer perfil): Usuarios Virtuales
Ficheros Auth del S.O
/etc/passwd y /etc/shadow
Directivas AuthUserFile y AuthGroupFile
Directivas AuthUserFile y AuthGroupFile
Necesario establecer AuthPAMAuthorative a 'on'
Módulo mod_sql
LDAP
Módulo mod_ldap
RADIUS
Módulo mod_radius
Hay dos modos de establecer las conexiones de datos entre cliente y servidor:
1. Cliente envía comando PORT (conexión de control) con un nro. de puerto > 1024 (para abrir conexión de datos).
2. Server inicia conexión de datos (no transferencia) en su puerto 20 y el puerto indicado en el paso 1 por el cliente (el firewall del cliente puede entenderlo como una amenaza externa, la conexión se inicia solicitando que el cliente abra un puerto).
3. Se usa la conexión de datos para transferir los archivos
1. Cliente envía comando PASV (solicita una conexión en modo pasivo) .
2. Server responde con un nro. de puerto > 1024 (no el 20) que se usará para la conexión de datos. Usará uno distinto para cada conexión que inicie.
3. Cliente inicia la conexión de datos abriendo un puerto TCP disponible > 1024 y conectándose con el puerto indicado en el paso 2. Cuando llega la solicitud al server se abre el puerto y se transmiten los archivos.
Desde el punto de vista de FTP, los archivos se agrupan en dos tipos :
Es muy importante saber el tipo de transferencia a realizar ya que puedes destruir la información del archivo.
El protocolo FTP sigue los permisos similar en GNU/Linux => 3 grupos de permisos (propietario, grupo y otros)
Creado o subido del archivo
Grupo (group=g)
Grupo de usuarios que posee la propiedad del archivo
Otros (others=o)
Son el resto del mundo
Cada grupo puede tener 3 permisos (rwx => read, write, execute)
Cada permiso => Equivalente numérico (r=4, w=2, x=1)
Mediante el comando chmod podemos cambiar esta configuración (requiere que el usuario pertenezca al grupo de administradores o superusuarios)
Ejemplo (tomando el fichero anterior)
Sintaxis básica: ftp [host [port]]
Usaremos proFTPd, por ser de libre distribución, muy sencillo y de los más usados
Podemos decir que es similar a la configuración de un Server Apache.
/etc/proftpd/proftpd.conf
Permite Hosts Virtuales
1 host => varios dominios, con su propia configuración
Modularización
Act/Des funcionalidades a través de módulos
Posee dos ficheros de conf. principales:
/etc/ftpusers => usuarios no permitidos (root, bin, uucp, news)
/etc/proftpd/proftpd.conf => Configuración principal
Ya lo tendríamos en principio una vez instalado, solo permite el acceso a los usuarios con consola de comandos activa
con cualquiera de ese perfil que esté definido en /etc/passwd
ftp usuario_del_sistema@servidor_ftp
# Inicio de la configuración Anonymous
# Usuario anónimo que entrará en el directorio ~ftp, esto es, en la variable $HOME del usuario ftp
# En Debian 6 (squeeze) ~ftp=/home/ftp . Este directorio será la raíz de los directorios en la conexión
# ftp, esto es, /home/ftp estará enjaulado (chroot) de tal forma que aunque el usuario anónimo ftp
# quisiera acceder a otros directorios situados fuera de /home/ftp no podrá acceder.
<Anonymous ~ftp>
# Después de hacer login anónimo mediante ftp el servidor se ejecuta con el usuario ftp y con el grupo
# nogroup
User ftp
Group nogroup
Podemos users del sistema y users virtuales (fichero similar a /etc/passwd), incluir AuthUserFile en fichero de configuración
ftpasswd --passwd --name user-empresa1 --file /etc/passwd.usuarios.virtuales --uid 107 --home /var/ftp/empresa1 --shell /bin/false
La configuración siguiente es decidiendo si el VHost será basado en nombre o en IP
ftpasswd --passwd --name user-empresa2 --file /etc/passwd.usuarios.virtuales --uid 108 --home /var/ftp/empresa2 --shell /bin/false
Supuesto: Ip: 192.168.10.1 Identifica ftp.manu.com y ftp.juan.com
1. Activar Include /etc/proftpd/virtuals.conf
<VirtualHost ftp.manu.com>
Port 2121
ServerName "Servidor FTP manu.com"
AuthUserFile /etc/passwd.usuarios.virtuales
DefaultRoot /var/ftp/manu.com/
RequireValidShell off
</VirtualHost>
2. Incluir en ese fichero la configuración para cada Host Virtual
¿Como sería para el dominio juan.com?
Supuesto: Ip: 192.168.10.1 Identifica ftp.manu.com y la ip 192.168.10.2 a ftp.juan.com
1. Activar Include /etc/proftpd/virtuals.conf
<VirtualHost 192.168.10.1>
Port 2121
ServerName "Servidor FTP manu.com"
AuthUserFile /etc/passwd.usuarios.virtuales
DefaultRoot /var/ftp/manu.com/
RequireValidShell off
</VirtualHost>
2. Incluir en ese fichero la configuración para cada Host Virtual
¿Como sería para el dominio juan.com?
Hay que asignar permisos a las carpetas de los hosts virtuales y recargar la configuración que acabamos de realizar.
1. chown ftp /var/ftp/manu.com /var/ftp/juan.com
2. service proftpd restart
Es obvio que la capacidad de almacenamiento no es infinita, debemos configurar las cuotas de disco para los usuarios
Include /etc/proftpd/modules.conf (LoadModule, mod_quotatab.c y mod_quotatab_file.c)
Por defecto desactivadas
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
Tenemos que sustituir ese código por el siguiente:
<IfModule mod_quotatab.c>
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
<IfModule mod_quotatab_file.c>
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
</IfModule>
</IfModule>
Para proFTPd existen dos tipos de cuotas:
# ftpquota --create-table --type=limit --table-path=/etc/proftpd/ftpquota.limittab
# ftpquota --create-table --type=tally --table-path=/etc/proftpd/ftpquota.tallytab
Ejemplo límite de espacio a 8GB para user1:
# ftpquota --add-record --type=limit --name=user1 --quota-type=user
--bytes-upload=8 --units=Gb --table-path=/etc/proftpd/ftpquota.limittab
Ejemplo límite de subida y bajada a 2GB para user1:
# ftpquota --add-record --type=limit --name=user1 --quota-type=user
--bytes-upload=2 --bytes-download=2 --units=Gb --table-path=/etc/proftpd/ftpquota.limittab
Visualización de los registros de cuotas
# ftpquota --show-records --type=limit --table-path=/etc/proftpd/ftpquota.limittab
Actualizar cuota de usuario
# ftpquota --update-record --type=limit --name=user1 --quota-type=user \
--bytes-upload=2300 --units=Mb --table-path=/etc/proftpd/ftpquota.limittab
Desactivar la cuota requiere borrar el registro:
# ftpquota --delete-record --type=limit --name=user-empresa1 --quota-type=user
Solo hay que seguir los siguientes pasos:
Descomentar
Include /etc/proftpd/tls.conf
Crear claves pública y privada
Dos opciones:
Tenemos que modificar el fichero /etc/proftpd/tls.conf como indica en el fichero de ejemplo de la UT y recargar el servicio.
Modificar los permisos
mv /etc/ssl/private/proftpd.key /etc/ssl/
chmod 0600 /etc/ssl/proftpd.key
chmod 0644 /etc/ssl/certs/proftpd.crt