Sie sind auf Seite 1von 11

Antes que nada, debo comentar varias cosas: 1) Este tutorial lo cog hace tiempo de una web que

dej de mostrarlo y no llegu a coger el nombre del autor. He echo algunas modificaciones pero no es mio 2) Un servidor FTP es MUY delicado. Instalarte un servidor FTP en tu ordenador, es abrir al mundo tu PC para que se pueda conectar quien quiera. A mi me han intentado entrar varias veces con el sistema de la fuerza bruta (aunq no lo han conseguido). Por eso, quiero decir que es muy delicado y te tiene que usar con cabeza.

Dicho esto, paso a comentar las caractersticas de mi PC: - Ubuntu 7.04 (Tambin testeado en Ubuntu 6.10) - Pentium IV - 512 MB RAM - El software que utilizo es el VSFTPD (segn dicen, el ms seguro si se configura bien)

Conexin a internet: - A travs de un router - 1 Mb/s

Tutorial:

Un servicio muy habitual es el ftp, sobre todo si tenemos montado un servidor Web para que los diseadores y webmasters puedan dejar all sus creaciones sin molestar a los administradores, nosotros. Con este objetivo, vamos a montar un servidor ftp. Usuario: Acceso a su Sin shell en el sistema y en un entorno chroot Usuario: Acceso a su Sin shell en el sistema y en un entorno chroot client1 /var/www/dominio1

directorio:

directorio:

client2 /var/www/dominio2

Usuario: Acceso a su Sin shell en el sistema y en un entorno chroot Preparacin del sistema

directorio:

webmaster /var/www

Antes de instalar el servidor ftp vamos a crear los usuarios y securizarlos para que tengan los mnimos permisos y slo puedan hacer lo que nosotros definamos. Crearemos un grupo llamado ftp al cual asociaremos los usuarios. # groupadd ftp Creamos los usuarios con sus correspondientes caractersticas. #useradd -g ftp -d /var/www/dominio1 -c #useradd -g ftp -d /var/www/dominio2 -c #useradd -g ftp -d /var/www -c " webmaster " webmaster " " Cliente Cliente 1 2 " " client1 client2

Les asignamos un password a los usuarios con el comando passwd. Si no tiene password no funcionar. Ahora creamos una shell fantasma en el directorio correspondiente. #mkdir /bin/ftp Editamos el fichero /etc/shells y la aadimos en la ultima lnea y continuacin editamos el fichero /etc/passwd y buscamos las lneas donde estn definidos los usuarios que hemos creado antes y les aadimos el shell falso: client1:x:1005:1005: Cliente 1 client2:x:1006:1005: Cliente 2 webmaster:x:1007:1005: webmaster :/var/www:/bin/ftp Instalacin del servidor Ahora es cuando realmente vamos a realizar la instalacin del servidor con el comando apt-get. #apt-get install vsftpd Esto descargar los paquetes y los dejar ordenados en sus directorios correspondientes junto a los scripts de arranque y parada del servicio. Configuracin del servidor El fichero de configuracin del servidor se encuentra en /etc/vsftpd.conf. Lo editamos para configurarlo a nuestro gusto y objetivo. El contenido es algo parecido, buscamos las lneas indicadas y las modificamos: :/var/www/dominio1:/bin/ftp :/var/www/dominio2:/bin/ftp

# Example config file /etc/vsftpd.conf #Escuchando listen=YES # ................................................ # Desactivamos el acceso annimo anonymous_enable=NO # # Descomentamos la lnea para que se puedan conectar local_enable=YES # # Permitimos a usuarios locales escribir write_enable=YES # # APLICA CONFIGURACIN UMASK local_umask=003 #Mensajes welcome dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES ............................ # # You may override where the log file goes if you like. The default is shown # below. xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES # Se descomenta esto para crear una jaula chroot_local_user=YES # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). #chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd.chroot_list # # Debian customization # secure_chroot_dir=/var/run/vsftpd # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. #rsa_cert_file=/etc/ssl/certs/vsftpd.pem

userlist_enable=YES tcp_wrappers=YES userlist_deny=NO A continuacin creamos el fichero vsftpd.chroot_list el cual tendr la lista de usuarios que no tendrn acceso al servidor: # touch /etc/vsftpd.chroot_list Volcamos los datos a este fichero desde etc/password con el comando. # cat /etc/passwd | awk -F: '{ print $1 }' > /etc/vsftpd.chroot_list Esto nos genera un fichero con los login de usuarios del sistema del cual quitamos los que si queremos que tengan acceso y los ponemos en el fichero /etc/vsftpd.user_list. Ejemplos de ficheros: vsftpd.chroot_list # root daemon bin sys sync games man lp mail news vsftpd.user_list #usuarios webmaster client1 client2 Afinando an ms Dentro del fichero de configuracin (vsftpd.conf) algunas opciones interesantes que tambin podemos controlar son las siguientes: #opciones #ancho banda anon_max_rate=5100 #ancho de local_max_rate=5100 de por banda por usuario usuario annimo local transferencia 5kb 5kb con acceso usuarios con no acceso

#nmero max_clients=5 #mximo max_per_ip=2 #enva syslog_enable=yes session_support=yes

mximo conexiones al

clientes por

simultneos ip sistema

Cosas que tienes que saber si usas este tutorial:

- No por crear usuarios con contrasea tienes la certeza de estar seguro. En este tutorial se muestra como crear usuarios con contrasea pero en el momento de acceder, la contrasea viaja por internet en texto llano (no encriptado) por lo que se debe escoger desde donde conectar (redes seguras) para evitar que nos snifen la conexin. Un ejemplo de red insegura para este FTP es una red Wireless. - Puedes incrementar la seguridad subiendo los usuarios del protocolo 'ftp' al protocolo 'sftp' (Secure FTP) siguiendo otros tutos de internet y usando el OpenSSL - Los usuarios que accedan a tu FTP, slo podrn acceder a partir del directorio que pusiste. Nunca podrn ir hacia atrs. Es decir, si los pusiste en /var/www/user1/, el User1 solo podr ver cualquier cosa que haya ms all de su carpeta, es decir /var/www/user1/<loqsea> nunca podr ver, por ejemplo, /var/www/<loqsea> ni las carpetas anteriores. - Puedes restringir an ms el uso del FTP tocando los permisos ( 'chmod' ) de las carpetas de los usuarios. - La mayor seguirad que podeis tener de que no os van a quitar vuestros datos, es o bien no poniendo un FTP o bien quitando los datos de las carpetas compartidas.

Hasta aqu, el cmo instalar el FTP. Ahora toca abrir los puertos del router (NOTA: Si no quieres que tu FTP est accesible a travs de internet, no abras los puertos del router y solo tendran acceso los PCs de dentro de tu LAN): Para ello, tienes que meterte en tu router y abrir el puerto 21 para que todas las conexiones que estn dirigidas a ese puerto, se retransmitan directamente al PC con el servidor.

Y por ltimo, el DNS:

Para que desde cualquier lugar del mundo, puedas conectar a tu FTP, tendrs que introducir la IP del router en cada momento. Para evitar memorizar la IP del router (ya q puede cambiar), necesitas crear una cuenta en un servidor DNS. Yo uso el No-IP y me va de maravilla. Puede encontrar su cliente en Synaptic aunque te recuerdo que primero tienes que registrarte (http://www.no-ip.com/ ).

Espero que os sea de utilidad y tened mucho cuidado con vuestros datos!!!!!!!!

PD.: Como no, debo decir q no me hago responsable de la prdida/robo de datos q se pueda producir a raiz de seguir este tutorial

Carlos

....:::::::::::.... Esta comunidad demuestra que en si, un granito de arena es poca cosa, pero todos juntos, hacemos una inmensa playa. Hoy por ti, maana por mi. Aprender para ensear

Inicie sesin o regstrese para enviar comentarios

Opciones de visualizacin de comentarios

Guardar la configuracin
Seleccione la forma que prefiera para mostrar los comentarios y haga clic en Guardar las opciones para activar los cambios.

Buenas, yo tengo un pequeo


por DRiMeR Hace 4 aos

Buenas, yo tengo un pequeo problema y no logro solucionarlo de ninguna manera.

Antes de leer este manual ya tena el vsftpd configurado y tal, pero despus de calentarme mucho la cabeza, he decidido hacerlo IGUAL que en este HOWTO, con los mismos nombres y todo. Aun as, sigo teniendo el mismo problema. Puedo logearme como client1 (y client2) desde otropc dentro de mi red local, pero cuando usomi IP pblica para conectar desde otro pc fuera de la red local, no me deja logear :S Como nota, decir que en el firewall he abierto los puertos 20 y 21 por si era eso, pero tampoco resulta. Se limita a decirme "user client1 cannot log in". Me podrais dar agn consejo, por favor??

Slo hay 10 tipos de personas... las que saben binario y las que no.
Slo hay 10 tipos de personas... las que saben binario y las que no.

Inicie sesin o regstrese para enviar comentarios

***Logueo desde mi red local pero no desde Internet***


por acp2929 Hace 3 aos

Hola realmente tu aporte sobre crear cuentas de usuarios me parece interesante y te agradezco, lo he probado y funciona dentro de la red local , pero tengo un problema que cuando lo hago desde la internet no puedo acceder, este mismo problema lo tengo desde antes de crear los usuarios, he liberado los puertos en el router y leido muchos tutoriales pero la verdad no se que pueda estar sucediendo. Esto me aparece en la pantalla cuando accedo a el desde la red local root@alejandro-desktop:/bin/ftp# ftp Connected to 220 (vsFTPd Name (192.168.1.81:alejandro): 331 Please specify Password: 230 Login Remote system type Using binary mode to ftp> 221 Goodbye. 192.168.1.81 192.168.1.81. 2.0.5) webmaster password. successful. UNIX. files. bye

the

is transfer

Como se puede ver arriba, es satisfactorio el ingreso al ftp. Ahora ingreso desde la inetrnet, para ello libere los puertos 20 y 21 TCP. Y cree una cuenta en NO-IP y sucede lo siguiente:

root@alejandro-desktop:/bin/ftp# ftp Connected to 220 FTPU Name (tadeirl.no-ip.biz:alejandro): 331 Password required Password: 530 Login Login Remote system type ftp> 221 Have a nice day!

for

tadeirl.no-ip.biz tadeirl.no-ip.biz. ready. webmaster webmaster. incorrect. failed. Ignored. bye

is

Yo pienso que no es problema de los puertos del router porque llego hasta el servidor FTP y por eso pregunta el password cuando lo hago desde la internet. Lo que tambien no entiendo, disculpa por ser nuevo en Linux, es porque despues de hacer lo que dijistes solo puedo accesar con client 2 al cual no modifique con el /bin/ftp y no con el client1 al cual si cambie esto ultimo? client1:x:1006:1006:Cliente client2:x:1007:1006:Cliente 2:/var/www/dominio2:/bin/sh Gracias de antemano por la ayuda que puedas brindarme. Saludos P.D. Te envio mi vsftpd.conf: #################################################### # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # # Run standalone with IPv6? # Like the listen parameter, except vsftpd will listen on an IPv6 socket # instead of an IPv4 one. This parameter and the listen parameter are mutually # exclusive. #listen_ipv6=YES 1:/var/www/dominio1:/bin/ftp

# # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=003 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600

# # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # You may fully customise the login banner string: #ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). #chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd.chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume

# the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # # Debian customization # # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. #secure_chroot_dir=/var/run/vsftpd # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. #rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # This option specifies the location of the RSA key to use for SSL # encrypted connections. #rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key userlist_enable=YES tcp_wrappers=YES userlist_deny=NO #opciones de transferencia #ancho banda por usuario annimo 5kb anon_max_rate=5100 #ancho de banda por usuario local 5kb local_max_rate=5100 #nmero mximo clientes simultneos max_clients=5 #mximo conexiones por ip max_per_ip=2 #enva al sistema syslog_enable=yes session_support=yes

Das könnte Ihnen auch gefallen