Vamos a aprender a entrar por FTP para recibir datos de un usuario administrador previamente registrado en el sistema paso a paso.
Para el ejemplo se van a usar dos debian de 2 usuarios diferentes que serán los administradores que se llamarán «servidorftp» (para el servidor) y «usuarioftp» (para el cliente)»
Para que todo esto se pueda hacer posible las 2 máquinas debian se tienen que comunicar entre ellas y para ello tiene que haber una ip fija diferente en cada máquina.
Para cambiar la ip en debian hay que ir a «/etc/network» y después buscar «interfaces»
Si intentáramos hacerlo manualmente no nos dejaría porque como se puede ver en la imagen de abajo pone «solo lectura» y hay que hacerlo por la consola(el terminal).
Ahora entrando con el usuario «servidorftp» hay que poner en la terminal el comando «cd« (sirve para movernos por la terminal) y ponemos seguidamente la ruta donde queremos ir, en este caso es cd/etc/network
Estando ya en la ruta «/etc/network» usaremos:
El comando «nano» que sirve para modificar archivos desde la terminal
El comando «sudo» que sirve para que nos conceda permisos de administrador
Pondremos el comando «sudo nano interfaces» para modificar el documento «interfaces» por el terminal y se nos abrirá un editor de texto.
Al abrir el editor de textos en «/etc/network« hay que fijarse en estos 3 puntos.
Número 1
La primera vez que alguien abre el archivo «interfaces» suele venir como en la imagen de abajo con la terminación «dhcp» y eso quiere decir que la ip está dinámica (la ip va cambiando y no es fija) y para que tenga una ip fija hay que ponerle «static«.
Número 2:
address= Es la dirección fija que queremos que tenga el ordenador.
netmask = Es la máscara de red
gateway = Es la puerta de enlace
Número 3:
Para poder guardar, copiar, salir… se ve en la parte de abajo el símbolo «^» y una letra, el símbolo «^» se refiere a que pulsemos la tecla «control» y la letra es lo que queremos hacer, en este caso después de poner los datos que nos interesen hay que pulsar «control + o » para guardarlo, después si queremos salir pulsamos «control + x» para salir.
(el símbolo «+» se refiere que hay que pulsar «control» y acto seguido la letra que nos interese)
En resumen, aquí las ips del servidor y del cliente
servidorftp para el servidor.
Usuarioftp para el cliente
Una vez que tenemos guardado todo lo anterior tenemos que verificar que ambos ordenadores tienen la ip que le hemos asignado y para ello está el comando «ifconfig» (en Windows es «ipconfig»)
Si por algún motivo se han seguido los pasos y no da la ip que le hemos asignadoen la consola poner «systemctl restart networking» para reiniciar la red y que se ponga la ip correspondiente (Es como reiniciar el ordenador para que asigne la ip)
En el servidor sería la ip «10.20.30.40», entonces para verificar que se comunica con el cliente habría que poner «ping 10.20.30.41»
En el cliente sería la ip «10.20.30.41» entonces para verificar que se comunica con el cliente habría que poner «ping 10.20.30.40»
Máquina del servidor:
Buscamos «archivos» y lo abrimos.
Para el ejemplo vamos a ir a «equipo» y vamos a entrar en el usuario «servidorftp»
Ahora vamos a «Descargas» y escribimos un archivo en el terminal con «touch» , para el ejemplo yo he puesto «touch el rincondemuchascosas.wordpress.com» para después descargarlo en la máquina cliente.
(Antes de poner el comando y el nombre del archivo hay que ir con el terminal a la ruta donde se quiere crear dicho archivo para eso se usa el comando «cd» y si alguien no sabe usar el comando u otros comandos que haya puesto que lo diga y haré un tutorial).
(Si alguien se equivoca y acto seguido quiere borrar el archivo, basta con poner el comando «rm» y nombre del archivo).
Máquina del cliente
Para hacer el ejemplo más fácil con el cliente, en el terminal ponemos el comando ls y vamos a «Descargas» poniendo «cd Descargas»
En el debian cliente hay que entrar en la terminal y poner «ftp +ip del servidor», en este caso quedaría como en la imagen de abajo «ftp 10.20.30.40»
Acto seguido hay que poner el nombre del servidor que en este caso es «servidorftp» con su contraseña. (IMPORTANTE: si en el cliente hemos puesto de contraseña 1234 y el el de servidorftp hemos puesto la contraseña 123456 entonces en este caso al entrar por ftp hay que poner servidorftp y 123456 tal y como se haya puesto la contraseña anteriormente al servidor)
Al meter la contraseña hay que fijarse que ponga «login successful» para verificar que se ha accedido correctamente. (IMPORTANTE: hay un tiempo y si se no se mueve uno por ftp te expulsa y hay que empezar de cero otra vez poniendo ftp + ip)
Al acceder si ponemos el comando «ls» nos muestra el listado con los archivos y directorios de un determinado directorio
El archivo que hemos creado anteriormente está en «Descargas» para ello he puesto «cd Descargas» y como se puede comprobar en la imagen de abajo pone que nos hemos movido correctamente en la máquina del servidor desde el cliente.
Ahora al poner otra vez «ls» se puede comprobar que se visualiza lo que habíamos puesto anteriormente en el servidor de «elrincondemuchascosas.wordpress.com»
Al poner el comando «get + archivo a bajar» se bajará un archivo, en este caso al poner «get elrincondemuchascosas.wordpress.com» se puede comprobar en la imagen de abajo que la transferencia es correcta.
Ahora para visualizar lo que hemos bajado salimos del ftp poniendo «exit» y volverá a nuestro ordenador.
Para visualizar el archivo que hemos bajado basta con poner «sudo nano elrincondemuchascosas.wordpress.com» y se visualizará lo que hay dentro escrito.
Espero que te haya ayudado.
Creo que esta bien detallado pero si alguien se ha perdidoy en algún paso que lo diga en «dudas» y se lo intenaré explicar lo mejor posible o lo modificaré aquí añadiendo algunas cosas.
Pd: si me he confundido en algo (o saltado algun paso) decidlo y con mucho gusto lo corregiré que las criticas constructivas siempre son buenas.
En este tutorial en DEBIAN 11 vamos a ser el administrador de FTP y vamos a compartir archivos, ningún usuario podrá salir de su carpeta «home» en (/etc/vsftpd.chroot_list ), y podrá descargar los archivos del administrador en el Filezilla.
Antes de continuar, hay que decir que este tutorial va dedicado a «Daniel» que escribió en «dudas» y que quería tener acceso con VSFTPD (FTP) para compartir ficheros a un grupo de usuarios (la carpeta), los cuales solo tengan acceso a su correspondiente carpeta «home» y que no puedan salir a otras carpetas «home»
(Aprovecho a decir, que si alguien tiene dudas, pregunte y se le ayudará lo mejor posible)
(Antes de empezar, hay que decir, que el administrador, tiene las carpetas por defecto con los permisos 755 y para que los usuarios no puedan bajarse archivos de otras carpetas (del administrador) hay que poner en las capetas el comando «chmod 664 (nombre del archivo a no compartir)», ya que no queremos que se descarguen todo lo que hay dentro del usuario administrador)
(Si la carpeta tiene los permisos 755 cualquier usuario puede bajarse documentos , por eso es bueno poner en la terminal «chmod 664 (nombre del documento a no compartir)»)
(Si alguien sabe otro método para no compartir archivos en vsftpd que lo diga, yo solo me se este)
(También hay que fijarse donde estamos a la hora de dar permisos o quitarlos, para ello un comando útil, es «cd» que sirve para movernos por el terminal y «ls» para saber lo que hay dentro de donde estamos )
En Debian 11 he elegido la última versión y la interfaz por defecto
Antes de continuar es recomendable actualizar Debian 11
Para ello hay que ir a la terminal
Aquí está la terminal
Para actualizar Debian 11 han quitado el sudo, entonces para entrar como administrador se pone «su» y se pone la contraseña para ser administrador
(la contraseña que hemos puesto nosotros al crear el usuario administrador)
(Si alguien quiere cambiar la contraseña, es tan fácil como poner «passwd» (nombre del usuario a cambiar la contraseña), en este caso por ejemplo sería passwd «elrincondemuchascosas»)
Ahora ya somos administradores
(Se sabe porque sale «root» en la terminal»)
Ahora para actualizar el sistema ponemos
apt update
Después ponemos.
apt upgrade
Al poner la «s» continúa la instalación
A continuación como vamos a usar vsftpd hay que instalarlo, para eso en la consola hay que poner:
apt install vsftpd
También hay que instalar el Filezilla para usar la interfaz.
Para descargar Filezilla en la terminal hay que poner
Ahora en la terminal vamos a movernos a etc, para ello en la terminal ponemos:
cd /etc/
Vamos a centrarnos en «vsftpd.conf» para configurar lo que necesitemos de vsftpd
Al poner «nano vsftpd» procedemos a modificar el archivo «vsftpd.conf»
nano vsftpd.conf
Vamos a fijarnos en algunos datos
anonymous_enable=NO
Lo tenemos desactivado porque no queremos que entren usuarios anónimos
local_enable=YES
Lo tenemos activado porque queremos que entren los usuarios registrados
(Creados por el ordenador servidor)
Ahora hay que fijarse en estos 2 registros
Desactivamos «write_enable=YES» y «local_umask=022«
write_enable=YES
De esta forma solo los usuarios registrados pueden subir ficheros, modificarlos, borrarlos o crearlos
local_umask=022
local_umask simplemente especifica el valor para la creación de archivos, por defecto está en 022 que quiere decir que las carpetas están por defecto en 755
(Las 2 juntas quiere decir que los usuarios registrados pueden escribir siempre que los permisos establecidos lo permitan)
También hay que buscar estos registros
Desactivamos estos registros
chroot_local_user=NO
En este caso le ponemos en «NO» porque no queremos que salga de su directorio raíz a otras carpetas
chroot_list_enable=YES
Este registro, al habilitarlo, hace que los usuarios que estén en /etc/vsftpd.chroot_list estén encerrados en su propia carpeta «home» y no puedan acceder a otras carpetas.
(Al estar activado, cualquier usuario que se haya creado y no este en /etc/vsftpd.chroot_list se moverá por todo el sistema a otras carpetas)
chroot_list_file=/etc/vsftpd.chroot_list
Este directorio es el que se pondrá a los usuarios para que estén encerrados en su directorio raíz «home»
(Este directorio se puede mover al nombre que pongamos nosotros para que estén encerrados en la ruta que queramos)
Estando en un servidor, la IP tiene que ser fija, nosotros vamos a cambiar la IP para que sea fija, si alguien tiene la IP fija no tiene que hacer este paso
(Recordad que cada persona tiene que poner su propia IP)
Ahora al poner en la terminal «ip a» sale la IP, en este caso tengo la 10.0.2.15 y hay que fijarse donde pone «enp0s3»
(Supongo que con la IP 10.0.2.15 me vale, pero voy a explicar de 2 formas como crear la ip, en modo gráfico y modo escrito)
(Solo hay que poner una de las dos, no poner las 2)
Ahora vamos a ir por la terminal a la carpeta «elrincondemuchascosas»
Abrimos la carpeta Documentos
Vamos a crear una carpeta y dentro de la carpeta un documento de texto para que el usuario «uno» pueda descargarlo»
Las carpetas por defecto al crearlas tienen los permisos 755, si por alguna razón alguna carpeta no tiene 755, se puede cambiar poniendo «chmod 755 (nombre de la carpeta)
Por ejemplo «chmod 755 Documentos» (sin las comillas)
En «home» tenemos que ir al administrador, que es «elrincondemuchascosas» y movernos después a «Documentos», entonces ponemos
cd elrincondemuchascosas
cd Documentos
Ahora estamos en «Documentos»
Para crear «carpeta1» ponemos:
mkdir carpeta1
A continuación vamos a la carpeta 1 poniendo «cd carpeta1» y creamos un documento de texto poniendo «touch hola
cd carpeta1
touch hola
Para modificar el documento de texto hola, hay que poner:
nano hola
Después de poner «nano hola» se pone lo que queramos en el documento de texto
Ya hemos terminado con el usuario administrador «elrincondemuchascosas»
Se puede visualizar que en «home» hay 2 usuarios «elrincondemuchascosas» y «uno«, pues es importante cambiar los permisos de los usuarios para poder bajar los archivos, en este caso el documento de texto «hola»
Se puede visualizar que los 2 usuarios tienen los permisos 777, pero nosotros solo queremos cambiar en este caso los permisos del usuario «uno»
Aquí hemos modificado los permisos del usuario «uno» y le hemos cambiado los permisos de «w» «escritura» y hemos puesto:
chmod a-w uno
Ahora vamos a crear una carpeta en el usuario «uno»
Para crear la carpeta hemos puesto en la terminal
mkdir carpeta4
Ya tenemos creada la carpeta4
Ahora hemos creado dentro de la carpeta4 otra carpeta que se llama «descargar»
(En la carpeta «descargar» es donde vamos a bajar los archivos)
Ahora en la carpeta descargar hay darle todos los permisos para poder descargar, borrar, etc.
En la carpeta que hemos creado «descargar» hay que darle permisos 777, eso quiere decir que tiene todos los permisos
(La única parte que hay que darle permisos «777» es en esta parte, ya que en las otras carpetas que creamos por la terminal tienen por defecto 755)
ESTA PARTE ES PARA CUANDO CREAMOS UN USUARIO NUEVO (Ejemplo usuario «dos» «tres» etc…)
Vamos a proceder a crear un usuario nuevo, en este caso el usuario «dos«
Ahora tenemos que ir a /etc/ y en la terminal ponemos:
cd /etc/
Ahora hay que enjaular al usuario, para que no pueda salir de su directorio «home» y en la terminal estando en /etc/ ponemos:
nano vsftpd.chroot_list
Añadimos al usuario que hemos creado, en este caso al usuario «dos»
A continuación vamos a crear las carpetas correspondientes para el usuario «dos» y en la terminal ponemos:
cd /home/
Antes de avanzar hay que quitarle permisos de escritura «w» en «home» al usuario «dos», tenemos que poner en la terminal:
chmod a-w dos
Ahora vamos al usuario «dos
cd /home/dos/
Al no tener una carpeta, la creamos, hay que tener en cuenta que en esta carpeta no podemos ponerle los permisos 777 porque es como si fuera la carpeta «home», entonces hay que crear otra carpeta y crear los permisos 777
En la terminal, para crear la carpeta hay que poner:
mkdir carpetados
(Cada uno pone el nombre que quiera a la carpeta)
Una vez creada la carpeta «carpetados» vamos a ir a dicha carpeta
cd carpetados
Vamos a crear otra carpeta que se llamará «descarga2»
mkdir descarga2
Para que el usuario «dos» pueda descargar, después de haber creado la carpeta «carpetados» (es como si fuera el «home») hay que crear otra carpeta, dicha carpeta tiene los permisos por defecto 755 y le tenemos que dar todos los permisos para poder descargar los archivos del administrador
ls = sirve para ver los archivos que hay donde estemos
ls -l = aparate para ver los archivos que hay donde estemos, también sirve para ver los permisos de cada carpeta (si tiene 755, 700, 777 etc…)
chmod sirve para cambiar los permisos de las carpetas, es decir, para darle más permisos o menos
Poniendo en la terminal «chmod 777 descarga2» ya tendría permisos para descargar los archivos el usuario «dos»
Siguiendo los pasos anteriores, cualquier usuario creado tendrá privilegios para descargar archivos
Ya no nos hace falta el terminal, ahora hay que buscar «Filezilla» y iniciarlo
En Servidor, hay que poner la IP 10.50.100.150
(Esa IP es la que hemos creado en modo gráfico)
En Nombre de usuario, ponemos el nombre que hemos creado, es decir, el usuario «uno»
En «Contraseña» se pone «a» que es la que pusimos antes para el usuario «uno»
En «Puerto» 21 es el modo inseguro, y en este apartado no hace falta ponerlo, porque pone automáticamente el inseguro (puerto 21)
Al añadir todos los datos sale este mensaje, simplemente es para que lo sepamos si la conexión es insegura o segura
Esta parte es la parte del administrador
Esta parte es la de los clientes y en este caso se puede visualizar que el cliente «uno» está encerrado en su carpeta «home»
Esta parte es información del sistema
(Te dice si te has conectado correctamente, sino te has conectado correctamente, etc…)
Con el cliente me he metido en la carpeta4 para poder descargar el archivo «hola»
Para Descargar los archivos, al estar dentro de «descargar» hay 2 formas de descargar los archivos del administrador, una de ellas es dándole a «subir»
Se puede visualizar que el archivo se ha descargado correctamente
También se puede borrar el archivo «hola» dándole a «borrar»
Te pedirá confirmación para borrarlo
Y como se puede comprobar se ha borrado correctamente
Otra forma de descargar el archivo es arrastrándolo a la carpeta del usuario, en este caso a «descargar»
Al entrar con el administrador, en este caso «elrincondemuchascosas» se puede visualizar que el administrador puede entrar en cualquier «home» de cualquier usuario, ya que el administrador no está enjaulado
Gracias por entrar, si te ha gustado sígueme y compártelo
En el caso de que alguien esté aprendiendo y no sea capaz de hacerlo, que lo diga y con mucho gusto le ayudaré donde se haya trabado, si alguien ve que me he saltado algún paso y faltan cosas por poner, que lo diga y con mucho gusto también lo modificaré.