lunes, 13 de enero de 2014

problema al subir archivos con vsftp o vsftpd


Hola amigos, en este día deseo compartir una experiencia que me ha ocurrido en el trabajo al configurar un servidor FTP para que el diseñador de aplicaciones tuviera acceso a una herramienta. Bueno, entrando en materia les cuento que la instalacion del servidor vsftp es muy sencillapara ello usamos:

yum -y install vsftpd

luego editamos el archivo en donde tenemos la configuración del servidor asi:
vi /etc/vsftpd/vsftpd.conf
adicionar las siguientes lineas al final del archivo para evitar inconvenientes:

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/opt/tomcat/webapps
use_localtime=YES
xferlog_enable=YES
idle_session_timeout=600
data_connection_timeout=120
local_max_rate=102400
max_clients=50
max_per_ip=20
syslog_enable=YES
pasv_enable=YES
write_enable=YES

y descomentar las siguientes:

chroot_local_user=YES
chroot_list_enable=YES

ascii_upload_enable=YES
ascii_download_enable=YES
connect_from_port_20=YES

se crea un nuevo usuario para el grupo ftp así:
useradd -g ftp usuario

se cambia el password del usuario:

passwd

mejor modificamos el usuario con el grupo tomcat y el grupo ftp así:

usermod -G ftp,tomcat sergio

luego se edita el archivo para adicionar los usuarios del servidor así:
vi /etc/vsftpd/chroot_list

y se copia el nombre del usuario que se creó.

se debe modificar las reglas del firewall en el fichero /etc/sysconfig/iptables

y se agregan las reglas necesarias, en este caso se debe abrir el puerto 21 y estoy en investigacion de que otro puerto debo abrir para poder lograr total funcionamiento del servidor.

por ultimo se reinicia con la siguiente instruccion:

/etc/init.d/vsftpd restart


si llega a poner algun inconveniente con el usuario porque no puede acceder al directorio se debe modificar el usuario para que inicie en el directorio que deseamos y que tenga permisos para hacerlo, eso se hace así:

vi /etc/passwd

se busca el usuario y se cambia el directorio por defecto.

ahora se deben proporcionar las instrucciones para poder permitir el libre trabajo con SELinux, así:

setsebool -P allow_ftpd_full_access 1
setsebool -P allow_ftpd_use_cifs 1
setsebool -P httpd_enable_ftp_server 1
setsebool -P allow_ftpd_use_nfs 1
/*no es necesaria pero si se desea se puede*/
setsebool -P ftpd_connect_db 1
setsebool -P allow_ftpd_full_access 1
setsebool -P allow_ftpd_use_cifs 1
setsebool -P httpd_enable_ftp_server 1
setsebool -P allow_ftpd_use_nfs 1
setsebool -P ftpd_use_passive_mode 1
setsebool -P ftp_home_dir 1
setsebool -P tftp_anon_write 1
setsebool -P allow_ftpd_anon_write 1




se puede seguir el siguiente vinculo para establecer las reglas en el SELinux que es el causante de no poder subir los archivos "cuestiones de seguridad".

http://linux.die.net/man/8/ftpd_selinux

ahora para permitir que se cargue un modulo con sin problemas para administracion de archivos es:
editar el archivo de configuración de iptables para cargar el modulo ftp así:

vi /etc/sysconfig/iptables-config

y agregar el contenido ip_conntrack_ftp en IPTABLES_MODULES, de manera que quede así:

IPTABLES_MODULES="ip_conntrack_ftp"

http://balajitheone.blogspot.com/2011/09/opening-iptables-for-vsftpd.html