jueves, enero 12, 2023

Clonado de contenedores Docker:

  

El contenedor debe estar detenido (para evitar pérdida de datos)

 

para ver lista de contenedores

sudo docker ps -a 

 

para generar la imagen clonada a partir del contenedor:

sudo docker commit -m “comentarios” -a “autor” “id del cont. a clonar”  “nombre imagen nueva”

(esta no funcionó, quedaba en un promt)

sudo docker commit “id del cont. a clonar”  “nombre imagen nueva”  (sin comillas)

 

 

para ver imágenes

sudo docker images

 

para copiar y comprimir la imagen

sudo docker save “imagen-posgres13-2301120655” | gzip > “imagen-posgres13-2301120655.tar.gz”

 

(se genera en el dir donde uno se encuentra)



en lugar de destino:

gunzip -c mycontainerimage.tar.gz | docker load

miércoles, enero 11, 2023

SErvidor ftp loclahost VSFTPD

 SErvidor ftp loclahost VSFTPD


tomado de:  https://ubunlog.com/vsftpd-instalar-un-servidor-ftp-ubuntu/?msclkid=14610ebdca2b11ecb4eb432b1dbc16c5

Instalar vsftpd

Para este ejemplo, voy a instalar un servidor FPT en mi red local sobre un Ubuntu 20.04. Si no lo tienes instalado en tu equipo, se puede instalar con el comando (Ctrl+Alt+T):

instalar vsftpd

1
sudo apt install vsftpd

Una vez instalado, vamos a empezar por hacer una copia del archivo de configuración original. Si algo sale mal, se puede restaurar la configuración predeterminada.

1
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

Ahora vamos a iniciar el servicio con el comando:

1
sudo systemctl start vsftpd

Confirmamos que se está ejecutando con:

enable vsftpd

1
sudo systemctl enable vsftpd

Cuenta de usuario FTP

Con esto podremos usar cualquier cliente FTP para acceder a los archivos alojados en el servidor a través de vsftpd. En la terminal (Ctrl+Alt+T) solo tendremos que utilizar el comando:

1
sudo useradd –m nombre-usuario

Sustituye ‘nombre-usuario‘ por tu nombre de usuario previsto. A continuación vamos a establecer una contraseña:

crear usuario ftp

1
sudo passwd nombre-usuario

Después nos vamos a mover a la carpeta de usuario recién creada:

1
cd /home/nombre-usuario

Lo ideal es que el FTP se restrinja a un directorio específico por motivos de seguridad. Vsftpd usa jaulas chroot para lograr esto. Con chroot habilitado, un usuario local está restringido a su directorio de inicio (por defecto). Para este ejemplo, vamos a crear un directorio ftp que actuará como chroot, junto con un directorio de archivos modificables.

Para empezar creamos la carpeta FTP:

1
sudo mkdir ftp

Estableceremos la propiedad de la carpeta con este otro comando:

propiedad carpeta ftp

1
sudo chown nobody:nogroup /home/nombre-usuario/ftp

Ahora eliminamos los permisos de escritura de esta carpeta:

1
sudo chmod a-w /home/nombre-usuario/ftp

Continuamos creando directorio contenedor de archivos y le asignaremos la propiedad:

crear la carpeta files

1
2
3
sudo mkdir /home/nombre-usuario/ftp/files
 
sudo chown nombre-usuario:nombre-usuario /home/nombre-usuario/ftp/files

En este punto, vamos a crear un archivo de prueba en la carpeta files:

crear archivo de ejemplo

1
echo "vsftpd archivo de ejemplo" | sudo tee /home/nombre-usuario/ftp/files/ejemplo.txt

Asegurar el servidor FTP

En esta paso vamos a abrir los puertos 20 y 21 para el tráfico FTP. Los puertos 40000-50000 serán los reservados para el rango de puertos pasivos que eventualmente se establecerán en el archivo de configuración y el puerto 990 se usará cuando se habilite el TLS. Ejecuta lo siguiente para hacerlo:

1
sudo ufw allow 20/tcp; sudo ufw allow 21/tcp; sudo ufw allow 990/tcp; sudo ufw allow 40000:50000/tcp

Si utilizas un firewall diferente, consulta su documentación para abrir los puertos.

Configurar vsftpd

Como nos interesa que los usuarios puedan cargar archivos, vamos a editar el archivo de configuración de vsftpd:

1
sudo vim /etc/vsftpd.conf

Dentro del archivo vamos a buscar las siguientes entradas y descomentarlas:

anonymous write local a descomentar

1
2
3
4
5
anonymous_enable=NO
 
write_enable=YES
 
local_enable=YES

Chroot_local_user tampoco se comentará, con ello nos garantizamos que el usuario conectado solo acceda a los archivos dentro del directorio permitido:

chroot local users a descomentar

1
chroot_local_user=YES

También vamos a añadir manualmente algunos valores nuevos al final del archivo. Esto permitirá que la configuración funcione con el usuario actual y con cualquier otro usuario que se agregue posteriormente:

usr local USER

1
2
user_sub_token=$USER
local_root=/home/$USER/ftp

Reinicia el daemon para cargar los cambios:

1
sudo systemctl restart vsftpd

Conexiones cifradas

Vamos a utilizar TTL/SSL para garantizar la seguridad. Debemos crear el certificado SSL y usarlo para proteger el servidor FTP. Esto lo haremos con el comando:

generar certificado SSL

1
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

El flag -days hace que el certificado sea válido por un año y hemos incluido una clave privada RSA de 2048 bits en el mismo comando. Cuando termines de crear el certificado, abre otra vez el archivo de configuración:

1
sudo vim /etc/vsftpd.conf

El final del archivo debemos encontrar dos líneas que comiencen con «rsa«. Comenta ambas líneas y escribe las siguientes:

1
2
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

líneas rsa

Ahora habilitaremos SSL para que solo los clientes que tengan SSL habilitados puedan conectarse. Cambia el valor de ssl_enable a YES:

1
ssl_enable=YES

Para no permitir conexiones anónimas a través de SSL, añade las líneas:

configuración seguridad

1
2
3
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Configura el servidor para usar TLS, añadiendo:

1
2
3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

También conseguiremos que no será necesario reutilizar SSL, porque puede ocasionar que muchos clientes de FTP no funcionen. Además utilizaremos suites de encriptación de alto cifrado, añadiendo las líneas:

1
2
require_ssl_reuse=NO
ssl_ciphers=HIGH

Guardamos el archivo y reiniciamos el servicio:

1
sudo systemctl restart vsftpd

Acceder desde un cliente FTP

Ahora ya podremos conectarnos a nuestro servidor FTP. Para esto podremos utilizar una aplicación desde el entorno gráfico o el comando de terminal ftp. Si optas por el entorno gráfico, necesitarás un cliente FTP como FileZilla. Para instalarlo puedes recurrir al artículo que un compañero escribió en este blog hace un tiempo.

Una vez instalado e iniciado Filezilla, haz clic en Archivo / Gestor de sitios. Lo siguiente será hacer clic en “Nuevo sitio”.

conexión de filezilla a vsftpd

En el panel de la derecha, selecciona como protocolo FTP. Si está utilizando FTPS, selecciona TLS para cifrado. A continuación, escribe el nombre de host o la dirección IP en Servidor y añade el puerto (21). Para el modo de acceso selecciona Normal, y escribe las credenciales de tu cuenta en Usuario y Contraseña. Haz clic en Conectar.

Tendremos que aceptemos el certificado que creamos anteriormente.

aceptar certificado SSL

Llegados a este punto veremos el archivo de ejemplo que creamos dentro de la carpeta files. Ya podemos comenzar a usar nuestro servidor FTP. Simplemente arrastra y suelta los archivos que quieras mover.

filezilla archivo ejemplo

Usando un FTP, podremos capturar los datos siempre que los necesitemos. Se puede saber más sobre vsftpd y su configuración desde la página de documentación de Ubuntu.