domingo, 8 de mayo de 2011

servidor FTP


FTP Anónimo en Linux

1.      Descargar todos los paquetes

                # apt-get update


2.      Descargar el paquete e instalar el vsftpd que es el que nos permitirá disponer de un FTP.

                # apt-get install vsftpd


3.      Ingresamos al directorio donde tenemos los archivos o ficheros de configuración del vsftpd.

                # cd /etc/

En donde encontraremos el fichero de configuración que es vsftpd.conf
Entonces ingresamos a este fichero de configuración

                 # nano vsftpd.conf


Puedes editar el archivo de configuración de vsftpd, /etc/vsftpd.conf, para cambiar las opciones por omisión. De forma predeterminada, sólo se permiten los accesos FTP anónimos. Si deseas desactivar esta opción, debes cambiar la siguiente línea:
anonymous_enable=YES
por:
anonymous_enable=NO
De forma predeterminada, los usuarios locales del sistema no pueden iniciar una sesión al servidor FTP. Para cambiar esto, debes descomentar la siguiente línea:
# local_enable=YES
De forma predeterminada, los usuarios pueden descargar archivos desde el servidor FTP. Sin embargo, no pueden subir archivos al servidor FTP. Para cambiar esto, debes descomentar la siguiente línea:
# write_enable=YES
Del mismo modo, de forma predeterminada, los usuarios anónimos no pueden subir archivos al servidor FTP. Para cambiar esta opción, debes descomentar la siguiente línea:
#anon_upload_enable=YES


El archivo de configuración consta de muchos parámetros de configuración. La información sobre cada parámetro se encuentra disponible en el archivo de configuración. Además, puedes consultar la página del manual, man 5 vsftpd.conf, para conocer más detalles sobre cada parámetro.


4.      Cada vez que realicemos un cambio en el fichero de configuración vsftpd.conf debemos reiniciar el demonio

                 # /etc/ini.d/vsftpd




FTP integrado con MYSQL

1.      Instalar los paquetes necesarios para esto que son:

# apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin


2.      Crear una contraseña para el usuario root de MYSQL (reemplace yourrootsqlpassword con la contraseña que desea utilizar)

            # mysqladmin –u root password yourrootsqlpassword


3.      Luego comprobar con este comando

            # netstat –tap | grep mysql

Que las direcciones de MYSQL están escuchando si la salida se vea así:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld


Con lo cual significa que MYSQL está escuchando en localhost solamente,  entonces se está seguro de la contraseña que estableció anteriormente. Pero si se ve la salida así:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld
Hay que establecer una contraseña de MYSQL para su nombre de host, porque de lo contrario cualquiera puede acceder a la base de datos y modificar datos:

# mysqladmin –h server1.example.com –u root password yourrootsqlpassword


4.      Crear la base de datos MYSQL para vsftpd. Ahora vamos a crear una base de datos llamada vsftpd y un usuario MYSQL nombrado vsftpd que el demonio vsftpd utilizara más adelante para conectarse a la base de datos vsftpd

# mysql –u root –p


Luego creamos una base de datos llamada vsftpd

CREATE DATABASE vsftpd;

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ON vsftpd.* TO ‘vsftpd’@’localhost’ IDENTIFIED BY ‘ftpdpass’;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO ‘vsftpd’@’localhost.localdomain’ IDENTIFIED BY ‘ftpdpass’;
FLUSH PRIVILEGES;


5.      Volvemos a colocar la contraseña ftpdpass que desea utilizar para el usuario MYSQL vsftpd o poner la que desee…

6.      Luego crear una tabla de base de datos que necesitamos

USE vsftpd;

CREATE TABLE accounts (
‘id’ INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
‘username’ CHAR(30) NOT NULL,
‘pass’ CHAR(50) NOT NULL,
UNIQUE (
‘username’ )
) ENGINE = MYISAM;
Quit;


7.      Luego creamos un usuario no privilegiado llamado vsftpd (con el directorio /home/vsftpd) perteneciente al grupo nogroup. Vamos a correr vsftpd en este usuario y los directorios FTP de nuestro usuario virtual estará en el directorio /home /vsftpd

# useradd –home /home/vsftpd –gid nogroup –m –shell /bin/false vsftpd




8.      Luego hacemos una copia de seguridad o backup del fichero original vsftpd.conf

# cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
# cat /dev/null > /etc/vsftpd.conf
# nano /etc/vsftpd.conf

IMAGEN


9.      Con la opción user_config_dir podemos especificar un directorio para los archivos de configuración por usuario de las piezas de reemplazo de la configuración global. Esto es opcional y depende de nosotros si deseamos esta función. Pero si debemos crear un directorio:

# mkdir /etc/vsftpd_user_conf


10.  Ahora debemos configurar PAM para que utilice la base de datos MYSQL para autenticar nuestros usuarios virtuales FTP en lugar de /etc/passwd y /etc/shadow. La configuración de PAM para vsftpd se encuentra en /etc/pam.d/vsftpd
Hacemos una copia de seguridad del archivo original y crear uno nuevo.

# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
# cat /dev/null > /etc/pam.d /vsftpd
# nano /etc/pam.d/vsftpd


auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2


11.  Luego reiniciar el vsftpd

# /etc/init.d/vsftpd restart


12.  Ahora crearemos el primer usuario virtual. Ingresamos a mysql

# mysql –u root –p

USE vsftpd;

Vamos a crear un usuario llamado ‘testuser’ o como deseen con la contraseña ‘secret’

INSERT INTO accounts (username, pass) VALUES(‘testuser’, PASSWORD (‘secret’));
quit;


13.  Ahora debemos crear el directorio de ‘testuser’ que es /home/vsftpd/testuser, porque vsftpd no crea automáticamente el directorio si no existe. Por lo tanto, ahora lo crearemos manualmente y hacer que pertenezca al vsftpd y el grupo nogroup

# mkdir /home/vsftpd/testuser
# chown vsftpd:nogroup /home/vsftpd/testuser


Con todos estos pasos realizados ya se puede ingresar al FTP con el o los usuarios creados, estos usuarios se pueden crear también por el modo grafico de phpmyadmin, ingresando por http://localhost/phpmyadmin.



No hay comentarios:

Publicar un comentario