Henry

Código Ingenios – Una realidad para el Ecuador !!

coescUna ves aprobado en la Asamblea Nacional el Código Ingenios es una alegrtia para quienes participamos en su construccion – y muy particularmente para mi – , esperando que realemente dicho código impuse el desarrollo intelectual y estimule positivamente la Ciencias, Tecnologías e Innovación; que además defienda los derechos de las personas que crean, construyen y desarrollan un trabajo intelectual.

El 9 de Diciembre del este año se publicó definitivamente en el Registro Oficial; el cual lo adjunto al final de este post.

Este cuerpo legal tiene por objeto normar el Sistema Nacional de Ciencia, Tecnología, Innovación y Saberes Ancestrales. Entre otros aspectos, implementa como política gubernamental las ayudas económicas a los estudiantes (becas); dispone que las instituciones de educación superior (IES) no tengan fines de lucro; propone que la Internet sea considerada un servicio público; promueve el reconocimiento al talento humano dedicado a la investigación; dispone que la información y el contenido de investigaciones financiadas con recursos públicos sean de acceso abierto.

Fuente: Registro Oficial Suplemento Nº 899 de 09 de Diciembre del 2016.

Descargar el Código Ingenios

Instalar Java 1.8 en Debian 8.x

Instalación de JAVA 8 en Debian 8.x

javaEn Debian 8 viene por defecto instalado el java 7, por lo tanto debemos desinstalarlo del sistema de la siguiente manera

# apt-get remove openjdk-7-jdk
# apt-get remove openjdk-7-jre

Si por cualquier circunstancia no se eliman todos los programas del java puedes usar este comando:

# apt-get remove openjdk-7*

hecho esto siempre es conveniente limpiar los residuos de la aplicaciones removidas con el comando

# apt-get autoclean
# apt-get autoremove

Ahora ya podremos instalar la nueva versión de Open Java:

Necesitamos indicar el repositorio en el cual se encuentra la versión de Java 8, para lo cual debemos editar el sources.list y colocar esto:

# nano /etc/apt/sources.list

y agregamos lo siguiente al final del archivo

# SDK 8
deb http://ftp.de.debian.org/debian jessie-backports main

Luego actualizamos nuestro sistema

# apt-get update

Finalmente ya podemos hacer la instalación con las siguientes instrucciones:

# apt-get install openjdk-8-jdk
# apt-get install openjdk-8-jre

Si por cualquier motivo tiene errores de dependencias incumplidas o que usted ha retenido paquetes rotos y no instala certificados ejecuta este comando:

# apt install -t jessie-backports openjdk-8-jre-headless ca-certificates-java

Ahora bien debemos comprobar si en efecto se instalo la versión 8 de Java, para eso usamos el siguiente comando:

# java -version

y el resultado debe ser algo similar a esto:

version_java

Nótese que ya esta la versión 1.8 del Java instalada !!

Geoserver 2.10 en Tomcat 8, para Debian 8.x

tomcatlogoHoy ante la falta de un manual de instalación unificado y en español quiero contribuir con quienes desde hace mucho tiempo estamos trabajando con datos de geo-refereciacion como parte de la ciencias de le GEOMATICA: entendida como la Automatización de referencias Geográficas contenidas en una base de datos.

Aclaremos algunos detalles.

Geoserver.- es una aplicación para la web basado en Java que permite a los usuarios ver y editar datos geoespaciales; usando datos de estándares abiertos definidos por la Open Geospatial Consortium (OGC), Geoserver permite gran flexibilidad en la creación y compartición de mapas. Como referencia podríamos decir que una de las instituciones gubernamentales Ecuatorianas que utiliza este servidor es IGM (Instituto Geográfico Militar).

Tomcat.- por otra parte es una aplicación de código abierto implementada con lenguajes Java Servelets, JavaServer Pages, Java Expressions y Java WebSocket; combina el servidor web Apache como contenedor del servelets que pueden ejecutarse sobre el, esta definido bajo los estándares de JavaServer Pages (JSP) desarrollado por Sun Microsystem cuyas especificaciones están dadas por la JCP (Java Comunity Process).

Con estas aclaraciones podemos continuar; en primer lugar deberíamos instalar el tomcat, aunque la versión actual al momento de escribir este manual es la 9 por temas de compatibilidad y seguridad trataremos de usar una versión estable es decir: tomcat 8; sin embargo tomcat necesita de java SDK y JRE, entonces es MUY IMPORTANTE en primer lugar instalar java en la versión compatible con tomcat 8; por lo tanto instalaremos open java 8 desde la terminal:

1.- Instalación de JAVA 8

En Debian 8 viene por defecto instalado el java 7, por lo tanto debemos desinstalarlo del sistema de la siguiente manera

# apt-get remove openjdk-7-jdk
# apt-get remove openjdk-7-jre

hecho esto siempre es conveniente limpiar los residuos de la aplicaciones removidas con el comando

# apt-get autoclear
# apt-get autoremove

Ahora ya podremos instalar la nueva versión de Open Java:

Necesitamos indicar el repositorio en el cual se encuentra la versión de Java 8, para lo cual debemos editar el sources.list y colocar esto:

# nano /etc/opt/sources.list

y agregamos lo siguiente al final del archivo

# SDK 8
deb http://ftp.de.debian.org/debian jessie-backports main

Luego actualizamos nuestro sistema

# apt-get update

Finalmente ya podemos hacer la instalación con las siguientes instrucciones:

# apt-get install openjdk-8-jdk
# apt-get install openjdk-8-jre

Ahora bien debemos comprobar si en efecto se instalo la versión 8 de Java, para eso usamos el siguiente comando:

# java -version

y el resultado debe ser algo similar a esto:

version_java

Notese que ya esta la versión 1.8 del Java instala !!

2.- Instalación de Tomca 8

Una ves actualizado el java vamos a proceder con la instalación del tomcat-apache debo indicar que el Geoserver es compatible con versiones de java 8 en adelante (con la 7 no funciona), bien instalar tomcat es muy fácil pues ya se encuentra en el repositorio de Debian, por lo tanto basta con usar el siguiente comando desde la terminal:

 # apt-get install tomcat8 tomcat8-admin

Estamos instalando el Tomcat y algo importante que es las herramientas de administraron del tomcat, que nos permitirá subir la los servelets al servidor apache-tomcat. Una ves instalado necesitamos afinar algunas configuraciones importantes, empezaremos por la pagina de administración colocando al usuario de administración con su nombre y password, para eso editamos el archivo tomcat-user.xml que se instalo previamente.

# nano /etc/tomcat8/tomcat-users.xml

y dentro de el agregamos la siguiente linea de instrucción casi al final, justo antes de la ultima linea:

<user username="admin" password="admin" roles="manager-gui,admin-gui"/>

Donde «admin» en este caso son el nombre de usuario y la clave; puedes elegir la que mejor te guste y distinto a esto porque en producción estas claves son facilitas de predecir. Guardas los cambios y vamos a editar otro archivo.

El tamaño máximo de los archivos que se pueden subir al tomcat son de máximo 50 MB; sin embargo el Geoserver pesa 60.1 MB es decir es mayor que el permitido por tomcat, para solucionar esto vamos a editar el archivo web-xml donde cambiaremos esos parámetros, así:

# nano /usr/share/tomcat8-admin/manager/WEB-INF/web.xml

Notese el directorio donde se encuentra, es distinto al de usuario que modificamos antes.

Una ves dentro localizamos las siguientes lineas:

<multipart-config>
   <!-- 50MB max -->
   <max-file-size>524288000</max-file-size>
   <max-request-size>524288000</max-request-size>
   <file-size-threshold>0</file-size-threshold>
 </multipart-config>

una ves dentro al numero 52428800 agregamos un 0 lo que aumentara notablemente el tamaño de los archivos que vamos a subir.

Con todos estos cambios ahora debemos reiniciar a tomcat con el comando a continuación:

# sudo service tomcat8 restart

Listo! ahora para probar si esta funcionando nuestro servidor podemos ingresar en el navegador y colocar la siguiente dirección URL.

localhost:8080

y veremos esto.

tomcat1

lo que significa que Funciona!!!

3.- Instalación de Geoserver

Finalmente instalaremos el Geoserver – ya falta poco – para poder instalarlo debemos primero bajar el archivo del servidor, debido a que es una servelets su extensión sera .WAR y el archivo que bajaremos es una comprimido desde la web oficial de Geoserver en la siguiente dirección:

http://geoserver.org/release/2.10.0/

Bajaremos la versión 2.10 fíjate que hay varias versiones, según el sistema operativo nosotros escogeremos el «Web Archive», es decir el comprimido que contiene el geoserver.war.

Una ves descargado debemos descomprimirlo puede ser en la mismo directorio de Descargas donde podrás localizar el geoserver.war.

Ahora ya podemos «subir» el geoserver al tomcat para eso desde la web del tomcat veremos el link: manager webapp. Al hacer click alli nos solicita el usuario y la clave que habíamos colocado con anterioridad (admin admin) y ahí ingresa a la pagina de gestión de los servelets buscamos la opción siguiente:

subir-war

En la sección inferior tenemos la opción de subir el archivo .war, dando click en el botón Examinar, seleccionamos nuestro archivo y luego simplemente lo Desplegamos en el botón respectivo, tardara un poco en subirlo.

Ahora el siguiente paso es activarlo en la sección mas arriba donde están las Aplicaciones, dando click en el botón Activar y debe quedar el geoserver en «true», así:

activar-geoserver

Si al activar esta la columna Ejecutándose en true hemos terminado y nuestro Geoserver esta funcionando!!

Finalmente podemos ingresar con la siguiente URL:

http://localhost:8080/geoserver/web/

y veremos al Geoserver funcionando:

geoserver

Bien! espero esto haya sido útil con paciencia se puede lograr hacerle funcionar perfectamente. estaré haciendo mas tutoriales que expliquen como subir los mapas al Geoserver.

Si usas esta información por favor cita la fuente; aunque todo mantiene copyleft respetar el trabajo de los demás es importante.

Ejemplos practicos

Estos ejemplos son con el fin de demostrar el funcionamiento en mi servidor local he subido tres capas de lineas, puntos.. el proximo tutorial tratare de explicar como subir datos al servidor.

2016-11-30_01-12 2016-11-30_01-15 2016-11-30_01-18

Y para demostrar que es posible trabahjar con mapas que hemos generado para OSM, una muestra de la ciudad de Guaranda.

2016-11-30_02-53

Medir ancho de banda de un canal de datos con iperf

logo_iperf_command Siempre nos preguntamos como se puede medir el ancho debanda de mi canal de datos con el fin de saber si lo que compro a mi proveedor es lo que se me entrega o si el ancho de banda configurado en un enlace es el correcto; para esto existe una herrameinta que puede ser instalada en nuestro Linux Debian o Centos, llamada iperf3 (la version 2 esta descontinuada); para esto debemos instalarlo desde la consola o terminal de la siguiente manera:

# apt-get install iperf3

El programa debe ser instalado en la máquina que hara de servidor asi como en la que hará de cliente, puesto que se requerirá en los extramos del canal al cual vamos a probar funcionando como server y cliente respectivamente.

iperf-hv

Si todo se instaló correctamente ahora empezaremos con la ejecucion en primer lugar en  modo Servidor a iperf de la siguiente manera:

# iperf3 -s -p 45678

Lo que permitirá que iperf «escuche» en el puerto 45678 en modo servidor y veremos lo siguiente:

2016-10-10_20-06

Ahora el siguiente paso desde la computadora «cliente» debemos ejecutar el siguiente comando a fin de enviar y recibir los analisis de los paquetes; asi como el cálculo del ancho de banda, el comando es el siguiente:

# iperf3 -c 192.168.1.111 -p 45678 -t 15

Ahora expliquemos cada opcion del comando:

-c indica a iperf que estara en modo cliente y que se conectara hacia la IP del servidor (en mi caso 192.168.1.111 , para poder hacerlo debes averiguar cual es la IP de tu server con el comando ifconfig)

-p le dice a iperf que enviara las peticiones por el puerto 45678, que es el mismo en el que el server esta escuchando.

-t le dice a iperf que son 15 segundo el tiempo que tomara para hacer el test, se aconseja almenos 60 para mayor confiabilidad.

Veremos algo como esto:

2016-10-10_20-03

Note al final se indica los resultados  donde se puede ver los bist enviados y recibidos (en este caso 3.19 Gbist/segundo).

Eso es todo puedes medir anchos de banda de redes LAN y WAN, hay que considerar variables como distancia, jitter, ruido, material del medio; entre otros que haran varias la medidas.

NOTA: si deseas hacerlo en modo grafico existe JPerf es un programa cliente-servidor muy sencillo; es lo mismo que Iperf pero con interfaz gráfica en Java; por lo tanto debes bajarlo e instalarlo – no explicado en este manual –

Lo puedes bajar de aqui:

https://sourceforge.net/projects/iperf/files/jperf/jperf%202.0.0/

Solucionar problemas con LinSSID y impressive en Debian 8x

LinSSID es una herramienta muy útil para monitorizar redes inalámbricas; sin embargo cuando se lo instala en Debian suele dar algunos inconvenientes puesto que no se ejecuta ya que requiere permisos de súper usuario o root; ya que la aplicación al ejecutarse solicita la password del root, sin embargo no se ejecutara. Entonces para solucionar ese problema debemos seguir los pasos indicados mas abajo.

Obviamente primero instalaremos el LinSSID para ello usamos el siguiente comando recuerda debes estar conectado a internet ya que la aplicación esta en los repositorio, de no estarlo la solución es bajarlo del sitio oficial https://sourceforge.net/projects/linssid/files/LinSSID_2.9/ ; para instalarlo desde la linea de comandos (terminal) ejecutamos el siguiente comando de forma directa:

# apt-get install linssid

De no estar disponible podemos bajar la ultima versión del link antes indicado, escogemos la versión que mejor se acomode a nuestra distribución Linux (32 o 64 bits). Para instalarlo una ves bajado ejecutamos el siguiente comando desde la terminal:

# dpkg -i linssid_2.9-1_amd64.deb

NOTA: recuerda que las aplicaciones se bajan a la carpeta Descargas

Impressive es una de las mejores aplicaciones que existen para las distribuciones Debian para realizar presentaciones bastante dinámicas; veamos como instalarlo; desde la terminal ingresamos el siguiente comando:

# apt-get install impressive

De forma breve indico que para realizar la presentación lo mas común es crear un archivo .PDF ya sea desde Debian con impress o window$ con power point y simplemente desde donde este el archivo .pdf escribimos lo siguiente:

# impressive /home/henry/Documents/presnetacion.pdf

Seguramente no se vera nada y obtendrás un error; esto se debe a que como en el caso de LinISSD requiere permisos de super usuario.

Configuración para ejecutar aplicaciones que requieren permiso de root

Ese comando no está tan bien instaurado en otras distribuciones, pero para solucionarlo no tendremos más que trabajar con el archivo /etc/sudoers , en el que se encuentra la lista de usuarios que tienen permiso para ejecutar comandos con privilegios de superusuario vía su.

Para ello tendremos que entrar a la cuenta de root de la forma tradicional :

# su

tras lo cual tendremos que editar el archivo indicado

# nano /etc/sudoers

y nos ubicamos en la línea que tiene lo siguiente:

root ALL=(ALL) ALL

y justo debajo añadimos la siguiente línea

nombreusuario ALL=(ALL) ALL

sustituyendo el nombreusuario por el tuyo claro. Sales de la sesión de superusuario (exit) y al realizar esta operación ya podes comprobar si podes ejecutar comandos como su normalmente.

soudoers

Hecho esto puedes ejecutar tanto el LinSSID asi como el Impressive.

Poner la ayuda de Linux en Español

cli_manMuchas veces no nos damos cuenta que la mayoría de los usuarios de computadoras no son Informáticos y requieren cierta ayuda como por ejemplo que el Idioma de las ayudas en la consola de comandos este en ESPAÑOL – lo malo de no saber ingles  – 😉

Cuando en la consola escribes el comando de ayuda man (manual) junto al comando del que solicitas la ayuda, este sale en ingles, a muchos usuarios: sobre todo novatos, se les complica y por ello dicen que Linux es «feo» cuando el problema es el idioma ingles.

Por ejemplo:

# man ls

Para solucionar esto vamos a aprender como cambiarlo a español. Para ello usamos los siguientes comandos:

# apt-get update
# apt-get upgrade
# apt-get install manpages-es manpages-es-extra

La primera linea actualiza el sistema, la segunda eleva a la versión mas reciente del sistema y del kernel, la tercera linea es la que instalara el idioma del manual (man).

Es recomendable para ver si tienes el sistema con el idioma adecuado a tu país, en nuestro caso Ecuador.

# dpkg-reconfigure locales

En el menú que te aparecerá debes observar que este seleccionado la opción, para moverte entre las opciones usa la tecla TAB:

[*] es_ES.UTF-8 UTF-8

Caso contrario es la que deberías seleccionar usando las teclas de flechas de cursor. Esto inclusive solucionara problemas con las bases de datos y otras aplicaciones que necesitan tener especificado el idioma español y los formatos UTF-8 para cuando usas caracteres con tildes y demás, inclusive en las bases de datos.

Guardar las claves con Keepass

keepass_64En una visita a la casa de mi hermano me recordó el uso de esta aplicación que el lo usa con guindous, pero recordé que esta desarrollado bajo licencia GNU/GPL y para que se anime a usar Linux decidí hacer este manual.. 😉

Seguramente al empezar a navegar por internet o instalar aplicaciones en Debian o Ubuntu, muchas de estas aplicaciones, asi como los sitios de internet, cuantas de email, etc. te solicitan un usuario (user) y una clave (password)  para crear la cuenta y tener acceso a la misma. Debido a los niveles de seguridad requeridos, en los cuales se solicita como mínimo 8 caracteres, con ciertas complejidades; como por ejemplo entre esos: caracteres colocar mayúscula y minúsculas, números y caracteres especiales; los cuales resultan complicados recordar a menos que uses la misma cuenta y la misma clave en todos los sitios y/o aplicaciones que instales; lo cual obviamente no es recomendable.

Para evitar recordar las distintas claves y usuarios relacionados a las mismas, existe una aplicación sencilla de usar y que guardara de manera segura esas claves y las recordara por ti. Lo hace guardando estos datos en una base de datos encriptada (lamentablemente con encriptacion MD5) de todas formas es una herramienta muy útil ya que además dicha base de datos puede ser subida a la red vía FTP y accesarla desde cualquier sitio.

La aplicación además posee una versiones para Linux, Window$ y Mac. Esta aplicación se llama KeePass, lo puedes obtener desde este sitio (sobre todo para window$):

http://keepass.info

Sin Embargo la instalación para Debian o Ubuntu es quizá mas sencilla, ya que se encuentra en los repositorios por default de Debian 8.x y basta con entrar en la consola e instalarlo con el siguiente comando:

# apt-get install keepass2

Si en Ubuntu o Debian no lo encuentra, puedes agregar el repositorio de la siguiente manera:

# sudo apt-add-repository ppa:jtaylor/keepass
# sudo apt-get update
# sudo apt-get install keepass2

Ahora vamos a poner la aplicación en Español puesto que al instalarlo por defecto se instalara en Ingles; para ello vamos a descargar el idioma desde la siguiente dirección (debe ser la versión 2.3+):

http://keepass.info/translations.html

El archivo descargado se encuentra comprimido en formato ZIP el cual se descargo bajo el directorio /Descargas , asi que vamos a descomprimirlo en el mismo lugar usando los siguientes comandos:

# cd /Descargas# unzip KeePass-2.34-Spanish.zip

Luego de ello encontraremos el archivo Spanish.lngx si deseas comprobarlo solo debes listarlo con el siguiente comando:

# ls Spanish.lngx

Una vez que lo hemos descomprimido (desempaquetado) lo debemos mover a la siguiente directorio que es donde se instalo el keepass, así:

# mv Spanish.lngx /usr/lib/keepass2

Para activar los cambios haremos lo siguiente:

En el menu View/Change Languaje seleccionamos el idioma

keepass1

Seleccionamos el idioma que ahora aparecerá en la lista en nuestro caso Spansih

keepass2

Al seleccionarlo nos mostrara la siguiente ventana de confirmación y además nos indicara que el programa se reiniciara con el lenguaje escogido, decimos YES y listo, ha quedado instalado y en español..!!

keepass3

Espero lo saquen provecho y prueben además los plugins.. 😉

SELinux firewall – configuracion básica

Que es SELinux ?

SELinux.fwSecurity-Enhanced Linux (SELinux) es un módulo de seguridad para el kernel Linux que proporciona el mecanismo para soportar políticas de seguridad para el control de acceso, incluyendo controles de acceso obligatorios como los del Departamento de Defensa de Estados Unidos.

 

Chequeamos el estado de SElinux

# sestatus

Modos de SELinux

Para empezar debemos entender que  SELinux puede tener tres posibles modos. y no todos pueden estar activos al mismo tiempo; sino uno solo; para lo cual debemos ir pensando en como dejaremos el firewall en Centos Unicamente, los posibles modos son:

  • Enforcing
  • Permissive
  • Disabled

El modo enforcing (hacer cumplir) de SELinux sera muy «fuerte»  como politioca en el sistema Linux el mismo que NO autoriza acceso a los usuarios y los procesos seran detenidos o denegados. Las denegaciones de acceso también se escriben en los archivos de registro correspondientes.

El modo Permissive (permisivo) es como un estado de semi-habilitado. si en SELinux se aplica  la política en modo permisivo,  lo que no se niega el acceso. Sin embargo, cualquier violación de alguna política se registra en los registros de auditoría ose los logs. Es una buena manera de probar SELinux antes de aplicarla.

El modo Disabled (deshabilitado) se explica cuando el sistema no va a ejecutarse con seguridad mejorada.

Chequemos el estado de los modos del SELinux

Podemos ejecutar el comando getenforce para comprobar el modo actual de SELinux.

# getenforce

Actualmente SELinux debe estar desactivado, por lo que la salida sería algo como esto:

Disabled

o

Permissive

Segun el caso

Tambien podemos ejecutar el comando sestatus:

# sestatus

selinux2.fw

Donde el SELinux como salida nos mostrará disabled:

SELinux status:        disabled

Configuracion de SELinux

La configuracion principal de SELinux se encuentra en el siguiente archivo /etc/selinux/config. Para mirar el contenido podemos ejecutar el siguiente comando

cat /etc/selinux/config

Y la salida sera similar a esta:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Hay dos directivas en este archivo. La directiva SELINUX  indica el modo de SELinux y puede tener tres valores posibles como hemos comentado antes.

La directiva SELINUXTYPE determina la política que se utilizará. El valor por defecto está en target. Con una política específica, SELinux permite personalizar y afinar los permisos de control de acceso. El otro valor posible es «MLS» (seguridad multinivel), un modo avanzado de protección. aunque para usar MLS, es necesario instalar un paquete adicional.

Activar y Desactivar SELinux

Activar SELinux es bastante simple; pero a diferencia de su desactivación, se debe hacer en un proceso de dos pasos. Suponemos que SELinux está activo en este momento, y que ha configurado e instalado todos los paquetes de SELinux.

Como primer paso, necesitamos editar el archivo /etc/sysconfig/selinux y cambiar la directiva SELINUX a modo permissive.

# vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

Ahora reiniciamos el sistema:

# reboot

Finalmente y para aclarar.- Todo loq ue hemos hecho lo hicimos a traves de la consola o terminal debido a que nuestra version de Centos 7 instalada es «ligera» por lo tanto no contiene más que los servicios basicos, no contiene el modo de escriotorio grafico ni otro servicio adicional. En posteriores post ire mostrando como instalar servidores Web, FTP, Mail, de bases de datos, etc.

Sin embargo es posible si se ha instalado Centos en modmo gráfico (con GUI KDE o Gnome) acceder al SELinux en ese modo, naturalmente sera mas sencillo otorgar permisos y demás creando sus propias politicas.

selinux3.fw

Instalar Sevidor FTP bajo Centos / Debian

Qué es un servidor FTP ?

La definición técnica seria:

FTP (siglas en inglés de File Transfer Protocol, ‘Protocolo de Transferencia de Archivos’) en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor.

FTP tiene sus orígenes en 1971, y aunque ha evolucionado con el paso de los años, es uno de los protocolos más antiguos que todavía están en uso. Hoy en día se usa principalmente en redes corporativas y la red más grande que existe: Internet.

El funcionamiento es sencillo. Una persona desde su computador invoca un programa cliente FTP para conectar con otro computador, que a su vez tiene instalado el programa servidor FTP. Una vez establecida la conexión y debidamente autenticado el usuario con su contraseña, se pueden empezar a intercambiar archivos de todo tipo.

Aunque no estés familiarizado o no conoces FTP, es más que probable que lo hayas usado alguna vez. Muchos de los enlaces de descarga que usas en Internet, son URLs que apuntan a un computador que está actuando como un servidor FTP: tu navegador automáticamente hace la conexión y descarga lo correspondiente.

En otras palabras cada ves que bajas archivos de la internet, interviene de por medio un servidor FTP, por ello creo pertinente mostrar como instarlo.

Existen varias versiones de servidores FTP tanto libres como de pago (prefiero los libres por sus niveles de seguridad), siendo estos:

Tipos de FTP

  • FTP Anónimo: Cualquiera puede descargar un archivo sin identificarse.
  • FTP Autenticado: Hay que conectarse al servidor utilizando un nombre y una contraseña.
  • FTP Embebido: Es el que se realiza desde las Páginas Web, a través de navegadores. Es una opción dentro del FTP Anónimo.

Aqui algunos de los servidores conocidos la mayoría lamentablemente de pago y para guindous:

Pero es de mi interés el uso de aplicaciones libres y fácil de usar por ello instalaremos uno de esas hermosas y ligeras aplicaciones desarrolladas desde hace mucho, muy maduras y confiables para Linux, mencionare los mas utilizados:

  • pureftpd
  • proftpd
  • vsftpd

Veamos algunas características:

Pure-FTPd es un servidor FTP libre con un fuerte enfoque en la seguridad. Puede ser compilado y ejecutado en una variedad de sistemas operativos tipo Unix incluyendo Linux, OpenBSD, NetBSD, FreeBSD, DragonFly BSD, Solaris, Tru64, Darwin, Irix y HP-UX. También ha sido portado a Android.

ProFTPd es un servidor FTP. Se promociona desde su página web como estable y seguro, cuando se configura correctamente. El servidor ProFTPd se promociona a sí mismo como un «Software servidor FTP altamente configurable con licencia GPL» («Highly configurable GPL-licensed FTP server software«).

Los promotores dicen que ProFTPd está bien documentado, y la mayoría de configuraciones serán muy parecidas a aquellas que aparecen en las configuraciones de ejemplo. ProFTPd usa un único fichero de configuración «/etc/proftpd.conf«, ademas es factible de funcionar sobre IPv6

VsFTPd es el «very secure ftp daemon» (demonio ftp muy seguro) , un pequeño pero eficiente servidor FTP.

Aún cuando vsftpd quizás no ofrezca el nivel de personalización que otros servidores FTP disponibles globalmente tienen, vsftpd ofrece suficientes opciones para satisfacer la mayoría de las necesidades de un administrador. El hecho de que no está sobrecargado de funcionalidades limita los errores de configuración y de programación.

Toda la configuración de vsftpd es manejada por su archivo de configuración:

/etc/vsftpd/vsftpd.conf

Cada directriz está en su propia línea dentro del archivo.

Y precisamente debido a su simplicidad, confiabilidad es el que enseñare a instalar.

Empecemos.!

EN CENTOS

En primero lugar recordemos que el Servidor sea este bajo Centos o Debian deben estar preparados y configurados en sus puesrtos de red (tarjeta) con la IP estática (no necesariamentre publica) asi como su gateway y si lo usara desde afuera el DNS; hecho esto vamos a instalar desde la consola el demonio FTP:

# yum install vsftpd

Una ves que toda la aplicacion se haya descargado e instalado simplemente debemos iniciarlo con el siguiente comando en Centos

# service vsftpd start

o

# systemctl start vsftpd.service

Lo puedes «apagarar» con

# service vsftpd stop

o

# systemctl stop vsftpd.service

y para reinciarlo con

# service vsftpd restart

o

# systemctl restart vsftpd.service

Y para que se autoejecute cuando encienda el sistema (de otro modo no arrancara cuando apague y encienda el server)

# systemctl enable vsftpd.service

Y si deseas quitarlo para que no arranque:

# systemctl disable vsftpd.service

NOTA: En Debian los comandos de instalacion son:

# apt-get install vsftpd

el resto de comandos son los mismos o similares mira más abajo.

Ahora probemos nuestro FTP Server

La primera prueba sera a traves del acceso web; es decir usando un navegador para acceder a los servicios, para ello indicamos en la URL la direccion IP, pero anteponiendo o indicando el protocolo de acceso al ftp, asi:

ftp://192.168.1.111

y veremos esto:

Cambiar la carpeta del acceso anónimo

La carpeta por defecto del acceso anónimo al FTP es /var/ftp, sin embargo puede interesar cambiarla.

Para ello hay que dirigirse editando el fichero  en /etc/vsftpd/vsftpd.conf  y añadir al final la siguiente opción, teniendo que poner de forma obligatoria la ruta absoluta:

anon_root=/home/rutaperonalizada

En /rutapersonalizada se pone la ruta que se crea conveniente, siempre y cuando no coincida con otra que resulta crítica para el sistema, siendo conveniente crear una a través de mkdir, dentro de la carpeta /home o /mnt, que no suelen contener nada crítico a nivel de sistema en su interior.

Cambiada ya la ruta del acceso anónimo, en teoría reiniciando el servicio ya se tendrían que aplicar los cambios, sin embargo si al acceder al FTP vemos que no nos da permiso, es porque nos hemos topado con la segunda gran “barrera” de los sistemas basados en tecnologías Red Hat que es el SeLinux en otro tutorial veremos como desactivarlo o dejar que sea mas «permisivo».

Listo nuestro server esta funcionando..! obviamente la conexión ha sido «anónima» por ello no ha solicitado clave algún (si vas a colocar archivos que no quieres que otras personas los bajen,para eso se debe asegurar el servidor FTP – no es parte de este manual). Ahora intentaremos conectarnos con un cliente FTP, para lo cual recomiendo uses el filezillaFTP, siendo una aplicación multiplataforma y fácil de usar.

Listo ahora puedes empezar a compartir archivos en tu servidor FTP..!!! 😉

Configurar usuarios locales en el servidor

Para poder usar usuarios locales en el servidor, con su correspondiente contraseña, hay que tener los usuarios locales permitidos en vsftpd.conf, con la opción local_enable=YES. Si teníamos esta opción en NO anteriormente, hay que reiniciar el servicio para que los cambios surtan efecto.

Ahora queda crear el usuario, que no tiene ningún misterio para aquellos que acostumbran a crearlos desde la consola de comandos, ya que el proceso cambia poco:

# useradd -g ftp -d /home/usuario usuario

Descomponemos la línea de comando:

  • useradd: Indica que queremos añadir un nuevo usuario.
  • -g: Indica el grupo al que va a pertenecer el usuario, en este caso ftp.
  • -d: Es el directorio del usuario, su home, en este caso /home/usuario.
  • usuario: Es el nombre del usuario.

El usuario ya está creado, sin embargo hay que asignarle una contraseña, para lo cual se utiliza el clásico passwd:

# passwd usuario

Para mayor información respecto de la creación de usuarios y otros comandos relacionados sigue este link.

Ahora queda indicarle a SeLinux que permita a los usuarios locales acceder su home a través del FTP:

# setsebool -P ftp_home_dir on

Ahora solo queda abrir el cliente, poner la IP del servidor, el usuario y la contraseña y ya tendría que permitir el acceso, pudiendo subir contenidos, ya que se ha iniciado sesión con el usuario que es el propietario de la sub-carpeta.

Hacer que un usuario local y el acceso anónimo compartan carpeta

El acceso anónimo, tal y como lo hemos mostrado, se muestra un poco corto, difícil de darle utilidad, al menos que se configure el acceso anónimo al FTP desde un computador de escritorio en producción, en el cual se puede copiar y pegar los contenidos al directorio a golpe de ratón. Sin embargo si quien tiene que suministrar los contenidos no usa su desktop como servidor de FTP, sino un ordenador aparte, empieza a ser complicado poder compartir contenidos, ya que el usuario local y el acceso anónimo no pueden compartir carpeta debido a que SeLinux lo impide.

Para poder compartir una carpeta de usuario con el acceso anónimo en primer lugar hay que ir al fichero vsftpd.conf y en la opción anon_root poner la ruta absoluta del directorio del usuario local, siguiendo  con este ejemplo:

anon_root=/home/usuario

Después hay que reiniciar el servicio y, además, indicar a SeLinux que permita acceso total en el servicio de FTP a través de la siguiente línea de comando:

setsebool allow_ftpd_full_access on

Después hay que dar permisos a los usuarios ajenos al propietario para que puedan ver los contenidos de su carpeta, ya que por defecto los sistemas de tecnología Red Hat utilizan una umask de 077 en la creación de las carpetas de usuario, así que solo el propietario tiene permisos sobre su carpeta personal. Para arreglar esto hay que otorgarle permisos de lectura y ejecución a los demás con chmod:

# chmod -R 755 /home/usuario

EN DEBIAN

Para instalar el servidor VSFTPD:

 apt-get install vsftpd

El fichero de configuración del servidor se encuentra en:

 # /etc/vsftpd.conf

Si se activa el acceso anónimo el directorio por defecto está en:

# /srv/ftp

Por defecto está configurado para que los usuarios anónimos sólo puedan descargarse ficheros de ese directorio.

Notas para la configuración de Acceso Anónimo al servidor FTP para la conexión de usuarios anónimos

Si queremos permitir que los usuarios anónimos puedan subir archivos al servidor tendremos que tener en cuenta que:

El usuario ftp no debe ser propietario del directorio dónde se suban los ficheros.

El usuario ftp no debe ser miembro del grupo propietario del directorio dónde se suban los ficheros.

El directorio anónimo debe tener los permisos de escritura correspondientes para OTROS.

En Debian el directorio raíz por defecto del servidor FTP, está situado en: /srv/ftp

Y dispone de los siguientes permisos ( para ver usa el comando ls -l ):

Si se desea configurar un directorio raíz diferente para el servidor anónimo se usa:

anon_root=/directorio

Por lo tanto si queremos crear un directorio anónimo para escritura el TRUCO está en: crear una carpeta por ejemplo llamada pub dentro de /srv/ftp

 # mkdir /srv/ftp/pub

Comprobar que propietario y grupo esté root por ejemplo

# chown root.root /srv/ftp/pub

Y que tenga permisos de RWX en otros para esa carpeta.

# chmod 757 /srv/ftp/pub

No es necesario modificar el anon_root ya que por defecto está puesto a /srv/ftp
Si queremos que los ficheros que subamos tengan unos permisos por defecto deberemos utilizar la opción chown_upload_mode Por defecto está puesta a:
-rw——- (0600)
Ejemplo:
# chown_upload_mode=0666

Esto es todo! ya nuestro server FTP estará funcionando..!

Categorias

Tutoriales

octubre 2025
L M X J V S D
 12345
6789101112
13141516171819
20212223242526
2728293031