miércoles, 23 de julio de 2014

Administrando procesos en Windows desde la línea de comandos

Hace unos días explicaba en una entrada el funcionamiento de algunos comandos que permitían administrar procesos desde la línea de comandos de Linux, hoy quiero compartir algunos comandos que nos permiten conocer que procesos se están ejecutando en un sistema Windows y algunas opciones aue nos permiten manipularlos.

Los comandos expuestos en esta entrada funcionan en Windows 7, Windows 8, Windows 2012 e incluso en el difunto Windows XP.

Conocer los procesos que se están ejecutando

Para saber que procesos se están ejecutando en el momento sólo basta con ejecutar el comando tasklist que al ejecutarlo sin ningún parámetro adicional nos arrojará una lista como esta:

Ejecutando tasklist en un entorno Windows

Como se aprecia en la imagen tasklist nos muestra el nombre del proceso, su identificador (PID), información de la sesión y la memoria que está consumiendo. Si deseamos obtener información más detallada solo basta con ejecutar tasklist /v.

También es posible obtener información más especifica como por ejemplo que servicios del sistema están usando a cada proceso solo basta con ejecutar tasklist /svc:

Servicios que ejecutan procesos en Windows

También podemos saber que librerias está usando cada proceso ejecutando tasklist /m, la salida de este comando es extensa por lo cual podemos ejecutarlo combinado con more:


tasklist /m | more


O podemos guardar toda la información en un archivo para leer la información con más comodidad:


tasklist /m > C:\info_procesos.txt


El anterior comando guarda toda la información que generar el comando en el archivo C:\info_procesos.txt.

Para obtener más información de tasklist y de sus parámetros debe ejeuctarse tasklist /? para obtener la ayuda oficial del comando.

Terminar (matar) procesos

Para terminar un proceso solo basta con ejecutar el comando taskkillseguido del PID del proceso que queremos de la siguiente forma:

taskill /PID [PID del proceso]

Por ejemplo si quiero detener el proceso notepad.exe primero identifico su PID con tasklist:

Identificando procesos con tasklist

Para este ejemplo el PID del proceso notepad.exe es 3044, ahora proceso a detenerlo con taskkill así:

Matando procesos con taskkill


Si por algún motivo no se puede detener el proceso podemos forzarlo agregando el parámetro /F que le indica al comando forzar la detención. De igual forma podemos detener a un proceso y a todos los procesos que este haya iniciado (hijos) con el parámetro /T.

Conclusiones

No hay duda en que el fuerte de Windows es su interfaz gráfica gracias a su usabilidad y fácil aprendizaje, lo cual ha significado un éxito del sistema operativo en el mercado durante años.

Si bien el administrador de tareas que incorpora el propio Windows permite de una manera muy gráfica e intuitiva conocer y detener los procesos que están ejecución, es posible que nos encontremos en entornos dónde la interfaz gráfica no está disponible (como en un servidor por ejemplo) o donde la línea de comandos es la mejor opción; es ahí donde es importante conocer los principales comandos para interactuar con el sistema y administrarlo.


Mejorando las capacidades de nuestro router inalámbrico con Linux

Si bien muchos ISP ofrecen el servicio de Internet inalámbrico a través de Wifi, somos muchos los que preferimos tener nuestro propio router para tener Internet inalámbrico en nuestros espacios, tener un mayor control de la red, para mayor seguridad o simplemente por no desechar un dispositivo con el que ya contamos.

Los modelos que se venden en el mercado para la línea de hogares cuentas con las características necesarias para prestar un servicio completo y seguro con funciones de firewall, filtrado de contenido, redirección de puertos, entre otras; sin embargo, existen algunos usuarios como yo que nos gusta ir un poco más allá con las cosas y ampliarles su capacidad :)

Para "liberar" nuestro router existen algunos proyectos como DD-WRT u OpenWRT, cuyo objetivo es el desarrollo y mantenimiento de firmware para routers inalámbricos basados en Linux, que cuentan con una amplia variedad de funciones y un alto grado de personalización de la configuración gracias a que son proyectos libres que se distribuyen bajo la misma licencia GPL de Linux. La sigla WRT viene del famoso router Linksys WRTG54G del cual se basan. puesto que su firmware al ser basado en Linux tuvo que ser liberado por el fabricante.


¿Para qué liberar nuestro router inalámbrico?

Aunque ya es claro que los modelos de routers inalambricos que encontramos en el mercado cuentan con las funciones necesarias para tener una red inalámbrica funcional y segura, que cuentan con unos asistentes de configuración muy amigables, y que cubren la mayoría de las necesidades; tener un router "libreado" nos permite:

  1. Ampliar las capacidades de nuestro dispositivo, incluso habilitando  funciones que no vienen por defecto de fabrica.
  2. Configuración y mantenimiento más avanzado del dispositivo, gracias a las bondades que nos ofrece GNU / Linux.
  3. Posibilidad de crear scripts y programas en lenguajes de programación como python o pearl por ejemplo, para facilitar y automatizar tareas de administración y seguridad.
  4. Posibilidad de instalar programas adicionales gracias a los paquetes que ofrecen los propios proyectos.
  5. Tener un control total de nuestro sistema y realizar las tareas que se pueden realizar en un sistema Linux ya que se cuenta con una distribución totalmente funcional.
  6. Tener las mismas ventajas que se tiene con un sistema Linux.

¿Cómo liberar nuestro router inalámbrico?

La tarea de librerar un router no es compleja, solo basta con consultar primero en la página del proyecto (DD-WRT o OpenWRT por ejemplo) si soporta nuestra marca y modelo de router, descargar la versión del firmware que nos recomienden, y actualizar desde la página de administración del router el firmware que viene en un archivo .bin; en caso de tener problemas es posible revertir los cambios ya que estas páginas suelen ofrecer una copia del firmware original del dispositivo.

Es importante especificar en las búsquedas además de la marca y modelo del router la versión del mismo, ya que muchos modelos cuentan con diferentes versiones que varían en algunas características. Esta información la podemos visualizar en los sticker que tiene el router o en la propia página de administración del aparato.


Liberando el router TP-LINK TL-WR841N con OpenWRT

En mi casa cuento un router TP-LINK TL-WR841N versión 8, cuyas prestaciones no son nada despreciables para una red hogareña y el cual actualmente funciona con OpenWRT. A continuación explicaré como instalar OpenWRT en este modelo de router, la tarea en otras marcas y modelos no varia mucho salvo que las páginas de administración de cada router varían en función del fabricante.

¿Por qué OpenWRT? Porque provee una amplia variedad de paquetes para ampliar sus capacidades, una interfaz de usuario amigable y finalmente por un gusto meramente personal.

Paso 1: Descargar el firmware

A través de esta lista podemos comprobar la compatibilidad de OpenWRT con nuestro dispositivo, que para el caso del TL-WR841N Versión 8 está soportado por el proyecto. 

Una vez sepamos que nuestro dispositivo está soportado usamos el buscador de la página y colocando el modelo del router como palabra clave debemos llegar a una página similar a está dónde nos ofrecen una descripción técnico del dispositivo que tenemos y la posibilidad de descargar el firmware adecuada para el dispositivo que tenemos:


Descargando OpenWRT
Desde allí procedemos a descargar el firmware que viene en un archivo binario con extensión .bin, que para el caso del TL-WR841N es la 12.09.

Paso 2: Instalando el firmware

Antes que nada recomiendo que al hacer esta operación el computador desde el que lo estemos haciendo este conectado por cable al router, ya que hay una mayor fiabilidad en la transmisión de la información y en mi caso la red inalámbrica una vez cambie el firmware estaba desactivada.

Nos vamos a la página de administración del router, que se puede acceder a través de la URL http://tplinklogin.net o a través de la dirección http://192.168.0.1 sino hemos cambiado la configuración IP del dispositivo, en caso de haberla cambiado solo basta con reemplazar la anterior IP con la de la puerta de enlace. Una vez accedemos a la página de administración nos pide el usuario y contraseña de administración del router, que  por defecto es admin - admin salvo que lo hayamos cambiado (cosa que debería ser así por cuestiones de seguridad). 

Desde esta página nos vamos al menú izquierdo a la opción System Tools, luego a Firmware Upgrade, desde esta página hacemos clic en el botón Seleccionar archivo y seleccionamos el archivo .bin que descargamos en el paso anterior y por último damos clic en el botón Upgrade:

Página de administración del router TP-LINK TL-WR841N  

Así comenzará el router actualizar su software por OpenWRT, una vez se concluya la operación el dispositivo se reiniciará:

Actualización del firmware del router TP-LINK TL-WR841N

Finalmente una vez se actualice el software del router se perderá la conexión ya que además de haber cambiado el software también cambió la configuración IP del dispositivo.

Paso 3: Configuración básica del router

El paso a seguir es acceder a la página de administración del router que ahora se accede a través de la URL http://192.168.1.1, allí nos pedirá usuario y contraseña:

Página de administración de OpenWRT

Por defecto el usuario es root y la clave está en blanco, una vez ingresados tendremos acceso a toda la configuración del dispositivo para administras las opciones de red, de seguridad y del propio dispositivo. El paso a seguir es configurar las interfaces de red para lo cual nos vamos a la pestaña Network dónde nos aparecerán dos interfaces WAN y LAN:

Interfaces de red en OpenWRT

Para editar la configuración de una interfaz solo basta con hacer clic en el botón Edit que aparece al frente de cada interfaz y desde allí ingresar la configuración IP como la dirección IP del dispositivo, mascara de subred, boradcast, entre otras.

Desde la opción Wifi que se encuentra en la parte superior podemos revisar que la red inalámbrica esté habilitada y en caso de que no (porque aparece en color rojo) simplemente la habilitamos haciendo clic en la opción Enable:

Red Wifi en OpenWRT

Para configurar la red inlámbrica hacemos clic en el botón Edit y desde allí podemos establecer su nombre (ESSID), clave, tipo de seguridad y demás parámetros:

Confguración de red Wifi en OpenWRT

Confguración de red Wifi en OpenWRT

Para guardar todos los cambios se debe hacer clic en el botón Save & Apply. Finalmente un cambio importante es establecer una contraseña para acceder a la administración del router ya que como se mencionó al principio esta por defecto viene en blanco. Para hacerlo debemos ir a la opción System y luego Administration, y allí hacemos el cambio desde la opción Router Password:

Configurando OpenWRT

Para conocer las disitintas opciones que ofrece OpenWRT y como se pueden confirgurar podemos recurrir a la documentación oficial en inglés o a la documentación oficial en español. Si en algún momento falló la instalación o queremos regersar al firmware anterior solo basta con seguir estas instrucciones.


Conclusiones

Estas distribuciones de Linux son sin duda una excelente opción para ampliar de las capacidades de nuestros router inalámbricos o simplemente para aprender a administrar sistemas basados en Linux. Proyectos como OpenWRT o DD-WRT proveen un kenel de linux con todos los comandos y utilidades básicos para trabajar en entornos de red y para crear scripts que permiten automatizar tareas de administración.

De igual forma el grado de seguridad puede aumentar considerablemente al implementar estas distribuciones ya que proveen herramientas como iptables (el firewall de linux), VPN, y demás utilidades que permiten asegurar más las comunicaciones para proteger nuestra red y datos.

Gracias a que están basados y distribuidos como software libre, estos proyectos proveen una muy buena documentación que son creadas y mantenidas por comunidades entusiastas de compartir información, lo cual permite a principiantes instruirse de la mejor manera en su uso y mantenimiento.

jueves, 17 de julio de 2014

Administrando procesos en Linux desde la línea de comandos

Una de las actividades más habituales al momento de administrar un sistema son las que están relacionadas con la manipulación de los procesos que están corriendo en él, dado que existe la necesidad de ejecutarlos, detenerlos, conocer su estado, entre otras tareas.

No está demás recordar que en los sistemas basados en UNIX como por ejemplo Linux , un proceso es un programa en ejecución que tiene unas caraterísticas como un identificador de proceso conocido como PID, un propietario que corresponde al usuario que lo ejecutó, y otras características mucho más técnicas como un segmento de memoria, una pila de instrucciones, entre otras.

Desde la línea comandos Linux provee una seríe de comandos que nos permiten conocer en todo momento información de los procesos que están ene ejecución y que nos permiten manipularlos, en esta entrada vamos a dar un breve repaso por algunos de ellos.

Conocer los procesos que se están ejecutando

Para saber que procesos se están ejecutando solo basta con ejecutar el comando ps para obtener una lista de los procesos que se están ejecutando con nuestro nombre de usuario, es decir, de los que somos propietarios:

juancho@regulus:~$ ps
PID TTY          TIME CMD
27501 pts/0    00:00:00 bash
27596 pts/0    00:00:00 ps


Para conocer todos los procesos de todos los usuarios solo basta con ejecutar  el comando ps con el argumento -A y si queremos obtener más información debemos usar los parámteros -ef:

El núcleo de Linux maneja los procesos con base a un sistema de herencias, es decir, un proceso puede crear a otros los cuales se conocen como hijos los cuales heredan muchas de sus características. Para obtener una imagen de los procesos que se están ejecutando en forma de árbol dónde se ve la relación de procesos padres e hijos se usa el comando pstree el cuál nos da una salida como esta:

Árbol de procesos en ejecución en un sistema Linux
Si lo que necesitamos es información de un proceso en concreto podemos recurrir al comando pgrep que nos devuelve el PID siempre y cuando el procesos que se busca esté en ejecución:

juancho@regulus:~$ pgrep bash
27762

Si por el contrario conocemos el PID del proceso entonces debemos ejecutar pgrep -P. Sin un programa se está ejecutando varias veces se generará un proceso por cada instancia del mismo por lo cual es aconsejable ejecutar pgrep -l para que liste todos los procesos que se están ejecutando bajo un mismo nombre:

juancho@regulus:~$ pgrep -l lampp
28103 /opt/lampp/bin/
28128 /opt/lampp/bin/
28525 /opt/lampp/bin/
28526 /opt/lampp/bin/
28527 /opt/lampp/bin/
28528 /opt/lampp/bin/
28529 /opt/lampp/bin/

Además del PID podemos conocer otras características usando los demás parámetros de pgrep, los cuales podemos conocer ejecutando pgrep -h.

Si necesitamos obtener información más detallada de un proceso y de los recursos que utiliza, Linux provee algunos comandos útiles para auditorias y análisis forenses por ejemplo.

El comando pmap nos permite conocer la memoria que está consumiendo y las librerías, archivos y procesos que está utilizando:

juancho@regulus:~$ pgrep bash
28576
juancho@regulus:~$ pmap 28576
28576:   bash
0000000000400000    956K r-x-- bash
00000000006ee000      4K r---- bash
00000000006ef000     36K rw--- bash
00000000006f8000     24K rw---   [ anon ]
00000000013de000   2168K rw---   [ anon ]
00007f8cfe12d000     44K r-x-- libnss_files-2.19.so
00007f8cfe138000   2044K ----- libnss_files-2.19.so
00007f8cfe337000      4K r---- libnss_files-2.19.so
00007f8cfe338000      4K rw--- libnss_files-2.19.so
00007f8cfe339000     44K r-x-- libnss_nis-2.19.so
00007f8cfe344000   2044K ----- libnss_nis-2.19.so
..
..
..

Terminar (matar) procesos

Para detener un proceso (matarlo) se debe utilizar el comando kill acompañado del PID del procesos que se desea detener, es importante tener en cuenta que si no somos propietarios del proceso que se desea matar se debe hacer con permisos de root:

juancho@regulus:~$ pgrep -l proftpd
28106 proftpd
juancho@regulus:~$ sudo kill 28106
[sudo] password for juancho: 
juancho@regulus:~$ 

Si por alguna circunstancia el proceso no se detiene se puede usar la orden kill -9 que fuerza la detención del proceso, el uso de esta orden es recomendable solo en situaciones extrictamente necesaria ya que se puede dejar un Proceso Zombie que puede ocasionar efectos secundarios en el sistema. Si se quiere detener un listado de procesos con el mismo nombre pero con diferente PID se debe usar la orden killall acompañada del nombre común de esos procesos, por ejemplo killall apache2 mata todas las instancias del programa apache2, si se desea que aparezca una confirmación antes de hacerlo se le debe añadir el parámetro -i.

Manipulación de procesos

Si por alguna razón necesitamos que un proceso se ejecute en segundo plano para que nos deje libre el interprete  para seguir ejecutando otros comandos, solo basta con ejecutar el comando que necesitamos correr seguido de un & que envía el proceso a segundo plano, por ejemplo:

juancho@regulus:~$ sudo  nano /boot/grub/grub.cfg&
[6] 29071
juancho@regulus:~$

Si en el ejemplo anterior no se hubiera enviado a segundo plano el programa nano se abriría, con lo cual no podría seguir ingresando comandos en el shell hasta que lo cierre. Al enviarlo a segundo plano como se aprecia en el ejemplo puedo seguir ingresando comando en el intérprete.

Para conocer que programas se están ejecutando en segundo plano solo basta con ejecutar el comando jobs:

juancho@regulus:~$ jobs
[1]   Ejecutando              sudo gedit /etc/network/interfaces &
[2]   Detenido                sudo nano /etc/network/interfaces
[3]   Detenido                sudo nano /etc/network/interfaces
[4]   Detenido                sudo nano /etc/network/interfaces
[5]-  Detenido                sudo nano /etc/network/interfaces
[6]+  Detenido                sudo nano /boot/grub/grub.cfg
juancho@regulus:~$ 

Como se puede apreciar en los ejemplos cada proceso en segundo plano está identificado con un número que se ve entre corchetes, este número se utiliza para manipular cada tarea. Por ejemplo con el comando fg 1 traigo el proceso [1] a primer plano, con el comando bg lo puedo enviar de nuevo a segundo plano.

Conclusiones

Manipular los procesos en ejecución es una de las tareas esenciales de los administradores de sistemas ya que permite realizar auditorias sobre el sistema, mejorar su performance, solucionar problemas y conflictos, o simplemente tener un mayor control sobre el sistema.

Los comandos presentados en esta entrada no son los únicos que nos provee Linux para tales fines pero son los que mínimanente un buen administrador de sistemas debe conocer. Existen comandos un poco más avanzados como nice o renice por ejemplo que permiten manipular parte de los recursos asignados a un proceso, pero como el fin de esta entrada es más introductorio los dejaremos para futuras ocasiones.

jueves, 10 de julio de 2014

Instalar XAMPP en Linux

A la hora de desarrollar proyectos web con PHP siempre me inclino por utilizar XAMPP, ya que de manera fácil y con un solo instalador es posible obtener un servidor web con Apache, MySQL, PHP y Perl en sistemas que corren sobre Windows, Linux o Mac OS X; hoy explicaré como instalarlo en un sistema Linux (lo cual lo convierte en LAMPP = Linux + Apache + MySQL + Php + Pearl).

Paso 1: Descargar el instalador

Ingresamos al sitio web oficial del proyecto https://www.apachefriends.org y descargamos el instalador para Linux, que consiste en un archivo binario con extensión .run.

Paso 2: Preparar el instalador

Una vez completada la descarga nos vamos a la línea de comandos y desde allí nos ubicamos en la carpeta donde quedó el archivo, para mi caso la descarga se hizo en /home/juancho/descargas:

cd /home/juancho/descargas

Allí ubicamos el archivo que descargamos, para mi caso descargué la versión 1.8.3 y el nombre del binario es xampp-linux-x64-1.8.3-4-installer.run, podemos usar por ejemplo el comando ls *.run:

Listando archivos en la consola

Una vez ubicado el archivo le damos permisos de ejecución al archivo con el comando chmod +x [nombre_archivo_binario]así:

Dando permisos de ejecución al binario
Como se aprecia en la imagen anterior una vez se le dan permisos de ejecución a un archivo su nombre cambia a color verde, esto significa que ya se puede ejecutar como un programa.

Paso 3: Ejecutar el instalador e instalar los servicios

El instalador de XAMPP es gráfico y su filosofía es similar a la de las aplicaciones en Windows (clic en siguiente - siguiente). 

Para ejecutar el instalador se requieren permisos de superusuario, por lo cual podemos usar el comando su para cambiarnos o usar el comando sudo si estamos en un sistema basado en Debian / Ubuntu que es mi caso:

sudo ./xampp-linux-x64-1.8.3-4-installer.run

Una vez ejecutado nos saldrá el instalador gráfico de XAMPP al cual le damos clic en Next en la primera pantalla que nos aparece de bienvenida, luego nos preguntará que cuales componentes queremos instalar, personalmente yo instalo todos para contar con todas sus funcionalidades:

Instalando XAMPP en Linux
Luego de darle clic en Next nos informará que la ruta de instalación será /opt/lampp a lo cual damos siguiente:

Ruta de instalacipon de XAMPP en Linux
Luego nos informará que instalará el paquete Bitnami, que en resumen es una librería que nos permite instalar de manera fácil aplicaciones web como Joomla, Drupal, Wordpress, Moodle, entre otras plataformas. Damos clic en Netx y nos informará que comenzará a instalar XAMPP en el sistema y le damos clic en Next y comenzará con la instalación:

Instalando XAMPP en Linux
Una vez finalizada la instalación dejamos marcada la opción Launch XAMPP y damos clic en Finish:


Finalizando la instalación de XAMPP

Automáticamente se abrirán dos ventanas, una del navegador con la página de inicio de XAMPP y otra con el panel de control de la aplicación:

Primera ejecución de XAMPP
Desde el panel de control podremos arrancar / detener los servicios (http, MySQL y FTP) y revisar los logs, en la página de inicio podemos hacer algunas validaciones y configuraciones del servidor.

Paso 4: Primeros pasos y configuraciones

Una vez instalado el servidor lo primero es revisar la seguridad de la instalación, para ello se debe correr el siguiente programa que provee el propio XAMPP:

sudo /opt/lampp/lampp security

Allí nos guiará para establecer una contraseña para el usuario xampp que controla el acceso a la página de inicio de XAMPP, para que el servidor de bases de datos no sea ccesible desde la red, y para estblcer contraseña a todos los servicios. No está demás recordar la importancia de hacerlo para evitar problemas de seguridad en nuestro equipo.

Para hacer cambios a través de la interfaz gráfica o para acceder a los archivos de configuración de los distintos servicios podemos acudir al panel de control de XAMPP usando la siguiente orden:

sudo ./manager-linux-x64.run

Y desde éste nos ubicamos en la pestaña Manage Servers, luego nos paramos en el servicio que queremos configurar (Apache, MySQL o ProFTPD) y hacemos clic en el botón Configure:

Configurando los servicios de XAMPP
Recordar que para que el servidor tome cualquier cambio se debe reiniciar el servicio desde la misma ventana.

Paso 5: Aspectos importantes a tener en cuenta

Finalmente es importante tener en cuenta siempre lo siguiente para trabajar con XAMPP desde Linux:

- La ruta donde se instala el servidor es /opt/lampp, desde allí podemos acceder a todos sus archivos y programas.

- Las páginas y aplicaciones  web se deben publicar en la ruta /opt/lampp/htdocs

- Para manipular el servidor y sus diferentes servicios desde la línea comandos se debe utilizar la orden ./opt/lampp/lampp con privilegios de root y con alguno de los siguientes parámetros:

  • start: Inicia XAMPP y todos sus servicios (Apache, MySQL y ProFTPD)
  • startapache: Inicia solamente Apache
  • startmysql: Inicia solamente MySQL
  • startftp: Inicia solamente ProFTPD
  • stop: Detiene XAMPP y todos sus servicios (Apache, MySQL y ProFTPD)
  • stopapache: Detiene solamente Apache
  • stopmysql: Detiene solamente MySQL
  • stopftp: Detiene solamente ProFTPD
  • reload: Reinicia XAMPP y todos sus servicios (Apache, MySQL y ProFTPD)
  • reloadapache: Recarga solo Apache
  • reloadmysql: Recarga solo MySQL
  • reloadftp: Recarga solo  ProFTPD
  • restart: Detiene e inicia nuevamente XAMPP y todos sus servicios (Apache, MySQL y ProFTPD)
  • security: Revisar la seguridad de XAMPP y todos sus servicios (Apache, MySQL y ProFTPD)
  • enablessl: Habilita el soporte de SSL en Apache
  • disablessl: Deshabilita el soporte de SSL en Apache
  • backup: Hace una copia de seguridad de los archivos config, log y demás archivos de datos de XAMPP
  • oci8: Habilita la extensión oci8
  • panel: Inicia el panel de controla gráfico 



Por ejemplo la orden sudo ./opt/lampp/lampp restart reinicia todo el servidor.

Conclusiones

Como se puede apreciar la instalación, puesta en marcha y mantenimiento de XAMPP no es una tarea compleja gracias a su interfaz gráficas y herramientas de línea de comandos que están incluidas

XAMPP está diseñado para ambientes de desarrollo,  por lo cual por cuestiones de seguridad no es recomendable su uso en ambientes de producción, ya que las configuraciones por defecto características de este tipo de paquetes de software y los servicios que se instalan por defecto pero que no se utilizan pueden convertirse en un vector de ataque.

Personalmente considero que para un servidor en producción la mejor opción es instalar de manera individual cada servicio (http, MySQL, PHP, FTP; etc..), configurarlos a la medida e integrarlos, lo cual mejora considerablemente el control sobre el sistema y reduce los riesgos de seguridad.

Más información



Historias de developers [Leído]

Historias de developers es el título del último libro que me leí; fue ideado y dirigido por Alberto de Vega Luna y escrito por empleados de Telefónica I+D. Está compuesto por 26 capítulos y se distribuye bajo la licencia Creative Commons tanto en formato impreso como en diversos formatos digitales (estos últimos de manera gratuita).

Libro: Historias de developers
Como lo describe su autor, el libro reune "experiencias de developers que pueden ser muy útiles para los miembros de este colectivo, pero también para sus jefes, ya que se habla de temas como arquitectura, gestión del código, seguridad, testeo, depuración, motivación, comunicación,? En resumen, muchas de las cosas que querrías saber cómo hacen otros developers. Un libro hecho por developers y para developers."

Como ya lo mencioné en el libro se tratan temas que a nivel general están relacionados con el desarrollo de software y el manejo de equipos desarrollo; y concretamente se tratan temas relacionados con lenguajes de programación, nuevas tecnologías de desarrollo, programación funcional, seguridad de aplicaciones, metodologías de desarrollo, testeo de aplicaciones, desarrollo de aplicaciones móviles, mantenimiento de código, motivación y comunicación de equipos de trabajo, entre muchos otros temas en sus 26 capitulos.

Personalmente me gustó el libro, porque más allá de ser netamente técnico en él se exponen ideas, conocimientos y experiencias de verdaderos desarrolladores que se enfrentan a los retos del mercado. De igual forma en el libro se abracan temas del momento como el big data, la computación distribuida, desarrollo móvil, metodologías de desarrollo ágiles, entre otros temas que lo hacen interesante.

Si hacemos parte del mercado del desarrollo del software, si queremos conocer buenas practicas y nuevas tecnologías, o simplemente nos interesa conocer una perspectiva de expertos en el tema, no está de más darle una leída a este buen libro en cualquiera de sus formatos.

Más información del libro aquí | Direcciones para obtener el libro aqui.