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