Centos 6 the Perfect Desktop

Parto de la base de instalar Centos 6.0 como estación de trabajo (sistema de 32bits), especificamente como estación para el diseño y desarrollo de aplicaciones Web que es mi trabajo diario. Instalación.
Empezamos con instalar minimal Desktop, cada quien puede partir de la instalación que prefiera, sobre todo si lo hace desde un dvd completo como fue mi caso, el objetivo de tener un desktop reducido es el de alcanzar el maximo nivel de personalización y no arrastrar con herramientas que probablemente nunca utilizaremos. Continuar leyendo «Centos 6 the Perfect Desktop»

Configuración y Seguridad en PHP.INI

Lo primero es definir las funciones a no utilizar o no permitir su ejecución en nuestros servidores, mi recomendación es ser conservadores, no excederse ni limitar a los usuarios, pero si controlar la ejecución de las que consideramos potencialmente peligrosas o que simplemente no quermos mostrar, las siguientes sin mi recomendación:
disable_functions = popen,exec,system,passthru,proc_open,shell_exec,phpinfo,
disk_free_space,diskfreespace,leak,set_time_limit,
show_source,pclose,proc_nice,proc_terminate,
proc_get_status,proc_close,pfsockopen

También está evitar la carga dinámica de módulos (más información: http://www.gonullyourself.org/ezines/phrack/62/p62-0x0a_Attacking_Apache_Modules.txt ) con:
enable_dl = Off
Luego, apagar register_globals y no permitir la creación de variables al vuelo entre otras cosas con:
register_globals = Off
Otras funciones un tanto incomodas o innecesarias como expose_php (ej ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 )
expose_php = Off
Setear open_basedir para minimizar el acceso al sistema de ficheros, si usas apache con vhost como es mi caso, el setear open_basedir en php.ini no será de tanta utilidad como se esperaría, falta hacerlo en cada vhost, una ayuda sería esta:
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@dominio.com
DocumentRoot "/www/htdocs"
ServerName midominio.com
ServerAlias www.midominio.com
...
<Directory "/www/htdocs">
Options -Indexes FollowSymLinks -ExecCGI
AllowOverride All
DirectoryIndex index.php index.html
Order allow,deny
Allow from all
<IfModule mod_php5.c>
php_admin_value open_basedir "/www/htdocs:/tmp"
</IfModule>
</Directory>
</VirtualHost>

o simplemente:
open_basedir = /www/htdocs:/tmp
Definitivamente desactivar allow_url_fopen, puede parecer una buena idea en principio, pero no todos controlarán lo que pasa por sus urls (ejem: http://midominio.com/?configile.php=http://dominio-hack.ru/config-spam.php)
El resto parece carpintería, pero a tener en cuenta, apagar
magic_quotes_gpc = Off
output_buffering = Off

Y por último pero no menos importante, setear variables como:
max_execution_time =
max_input_time =
memory_limit =
post_max_size =
upload_max_filesize =

MicroOptimizaciones Apache en CentOS

Lectura recomendada: http://httpd.apache.org/docs/trunk/mod/core.html#rlimitcpu
Luego de eso agregar a tu archivo httpd ( /etc/httpd/conf/httpd.conf)
#Limitando el tiempo de CPU
RLimitCPU 15 20
#Limitando la memoria- de 50 a 82MB
RLimitMEM 52428800 85983232
#Limitando el numero de procesos
RLimitNPROC 8 12

Apache KeepAlive
La funcionalidad de Apache KeepAlive permite (presisamente lo que dice su nombre) mantener abierta la conexión TCP entre un cliente y el servidor, lo que lleva a que se den múltiples peticiones en la misma conexión. Esto puede reducir los tiempos de carga de una página en particular en las páginas web con gran cantidad de imágenes, ya que elimina la sobrecarga de tener varias conexiones abiertas. En tu archivo de configuración de httpd busca las entradas de KeepAlive, y asegurarse de que están habilitados, lo siguiente es adaptarlo a tus necesidades, ej.:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 8

lo siguiente sería deshabilitar el HTTP TRACE method (por temas de seguridad) más info en: http://publib.boulder.ibm.com/httpserv/ihsdiag/http_trace.html
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

La idea es no limitarnos solo a apache, sino optimizar además algunos detalles de php, en nuestro php.ini setear correctamente los valores (según requerimientos) estos tiempos han funcionado bien para mi:
max_execution_time = 60     ; Maximum execution time of each script, in seconds
max_input_time = 120    ; Maximum amount of time each script may spend parsing request data
memory_limit = 80M      ; Maximum amount of memory a script may consume

Instalación de memcached en CentOS

#Descarga el archivo fuente desde: http://www.memcached.org/
wget -c http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
tar -xzvf memcached-1.4.10.tar.gz cd memcached-1.4.10
#Instalar prerequisitos:
yum install libevent libevent-devel -y
# Configurar LDFLAGS='-Wl,--rpath /usr/local/lib' ./configure --prefix=/usr/local
#Compilar
make
#Instalar
make install
# prueba que esté funcinando:
memcached -u root -d && ps aux | grep memcached
echo si todo sale bien, mata el proceso, con pkill memcached
Continuar leyendo «Instalación de memcached en CentOS»

Apache ITK en Centos 5

A continuación una guía para la instalación de mpm-itk en CentOS 5.
Apache es aún el servior Web de mayor uso en línea, sirve miles de aplicaciones y todas ellas con diversas configuraciones y requerimientos, además es utilizado en una inmenza mayoría de servidores compartidos o hosting y a pesar de las excelentes caracteristicas de apache como servidor Web, en condiciones de su uso compartido (siendo hosting el caso más popular) plantea diversos problemas, el principal es relaiconado a los permisos de acceso a ficheros, es decir de seguridad y es justamente donde itk entra a jugar.
ITK es un módulo de multiprocesamiento más para apache que agrega una nueva caracteristicas, la posibilidad de ejecutar apache con el userid de un usuario diferente por cada virtualhost, además permite cambiar el valor nice del proceso que corresponde a dicho vhost.
Continuar leyendo «Apache ITK en Centos 5»

WMWare Player en Fedora 14

Hoy al actualizarme a Fedora 14 VMWare Player simplemente no funcionaba, no compilaba y «significaba perder las licencias de windows, office, y software de diseño», así que me dia a la tarea de buscar y probar, resultó que ya alguien lo había solucionado, los pasos son:
descargar el parche:
wget -c http://www.sputnick-area.net/scripts/vmware7.1.1-patch-kernel-2.6.35.bash
correlo como root: su -c «sh ./vmware7.1.1-patch-kernel-2.6.35.bash» y compilar los módulos de vmware: su -c «vmware-modconfig –console –install-all»
Listo. espero les sea de ayuda.

SheevaPlug – Plug Computers


Andaba buscando un mini PC o instrucciones para armarme un Mini Server de bajo costo y bajo consumo, el plan es tener un servidor corriendo apache, compartir archivos (samba y Web), que funcione para manejar cámaras IP, además de automatizar tareas de backup y descarga de archivos, obviamente tendría que estar conectado 24/7, mi búsqueda resultó altamente satisfactoria cuando me topé con los Plug Computers un concepto producto muy interesante que lleva los embebidos al alcance del público común, aunque no son tan embebidos, son realmente un ordenador completo de propósito general. Estaba seguro de que no era algo nuevo, mi cerebro me decía que ya lo había visto antes, claro, lo vi hace más de un año en theinquirer.es. Continuar leyendo «SheevaPlug – Plug Computers»

openSUSE 11.2 RC1 available!

openSUSEFinalmente mi tan ansiada y esperada y medio soñada release 11.2 es ahora release candidate (openSUSE 11.2 RC1), es decir tiene la madures suficiente como para utilizarse en entornos de producción y se han corregido la mayoría de fallos detectados, el periodo de espera es ahora para detectar fallos y/o realizar correcciones menores.
Voy a instalarmela enseguida a ver si al fin me alcanzo a soltar de este windows vista que trae instalado de fabrica mi hp dv4, aunque luego de un upgrade a windows 7 el rendimiento mejoró increíblemente y ya no falla, me hace falta un entorno de trabajo conocido y más útil. El problema está en que esta en esta HP dv4 todo Linux que le he montado falla por lo menos una vez cada 15 minutos a causa de hardware incompatible 🙁 y aunque ya con openSUSE 11.2 Milestone 5 había conseguido que no fallara, me quedo sin sonido integrado y sin el escáner de huella, sin ese par de juguetes no es divertido trabajar.
I Love openSUSE!