Blog

Etiqueta: linux

Vulnerabilidad grave en BASH

Publicado en General Sistemas TI en Septiembre 25, 2014 11:53 am

shell

Durante la noche de ayer, se ha hecho pública una grave vulnerabilidad en el programa informático BASH, la línea de comandos que utilizan muchos sistemas como Linux, OSx o Android, además de todos los dispositivos que forman parte del llamado Internet de las cosas (neveras, SmartTV, sistemas de domótica…). Esta vulnerabilidad permite la ejecución de código explotando un fallo relacionado con algunas de las variables.

Podemos comprobar si somos vulnerables a BASH de una forma muy sencilla, ya que con solo ejecutar un comando de aspecto similar a este nos dirá si nuestro equipo puede estar afectado:

$ env x='() { :;}; echo soy vulnerable' bash -c "echo Hola"

Una vez ejecutado, debería mostrarnos simplemente la palabra “Hola”. Indicando de esta forma que nuestro sistema no ha sido afectado, pero si ha sido víctima de esta vulnerabilidad, veremos que también se ejecuta la frase “soy vulnerable”.

Esto puede ser explotado de forma remota de múltiples maneras, como por ejemplo pasando estas variables (con comandos) vía CGI (php, perl…) que se ejecutarán al realizar una llamada a bash.

Todos nuestros servidores internos y administrados Linux se encuentran ya actualizados. Aún así, te recomendamos que si gestionas algún servidor que creas que pueda estar afectado lo actualices a la mayor brevedad posible. Asimismo, recomendamos seguir muy de cerca todas las novedades sobre esta vulnerabilidad ya que, con toda probabilidad, derivará en nuevos problemas como ya ha ocurrido en otras ocasiones.

La vulnerabilidad está registrada con el código CVE-2014-6271.

Puedes obtener más detalles en https://access.redhat.com/articles/1200223

Error al actualizar awstats en Plesk

Publicado en Sistemas TI en Mayo 6, 2013 9:54 am

Cuando las estadísticas de un servidor no se actualizan es porque ha ocurrido algún error al procesarse. Es conveniente ejecutar el proceso a mano para ver dónde se produce error.

/usr/local/psa/admin/sbin/statistics

Hay varios errores que se pueden dar. En este caso obtenemos el siguiente error:

System error 2: No such file or directory
statistics_collector: Unable to execute /usr/share/awstats/tools/awstats_buildstaticpages.pl -awstatsprog=/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -configdir=/usr/local/psa/etc/awstats -config=dominio.com-https -dir=/var/www/vhosts/dominio.com/statistics/webstat-ssl/current  >/dev/null 2>&1

En /etc/psa/psa.conf revisamos las rutas relativas a awstats y vemos que están mal. La solución pasa por corregirlas y ejecutar de nuevo el script para confirmar que esta vez se ejecuta correctamente.

[root@server psa]# diff psa.conf psa.conf.default
110,111c110,111
AWSTATS_BIN_D /usr/share/awstats/wwwroot/cgi-bin
AWSTATS_TOOLS_D /usr/share/awstats/tools
---
AWSTATS_BIN_D /var/www/cgi-bin/awstats
AWSTATS_TOOLS_D /usr/share/awstats

Cómo obtener los paths definidos para las aplicaciones y servicios de Plesk

Publicado en Sistemas TI en Enero 15, 2010 12:47 am

Puede resultar muy útil para saber dónde está cada cosa y conocer las distintas variables de Plesk. Sobre todo, si gestionais diferentes entornos y no es posible una configuración homogénea entre ellos.


# cat /etc/psa/psa.conf

#
# (c) Copyright 1999-2008 Parallels
# All Rights Reserved
#
# This file is used to declare the location of different utilities,
# services, and/or packages within Plesk.  No changes should be made
# to this file without first consulting support. Any changes made can
# affect service availability and performance.
#
# Each line in this file follows the following format:
#
# variable [whitespace characters] value
#
# That is, the name of the field, followed by spaces or tabs, followed
# by field value. Trailing spaces are removed.
#

# Plesk tree
PRODUCT_ROOT_D /usr/local/psa

# Directory of SysV-like Plesk initscripts
PRODUCT_RC_D /etc/init.d

# Directory for config files
PRODUCT_ETC_D /usr/local/psa/etc

# Directory for service utilities
PLESK_LIBEXEC_DIR /usr/lib64/plesk-9.0

# Virtual hosts directory
HTTPD_VHOSTS_D /srv/www/vhosts

# Apache configuration files directory
HTTPD_CONF_D /etc/apache2

# Apache include files directory
HTTPD_INCLUDE_D /etc/apache2/conf.d

# Apache binary files directory
HTTPD_BIN_D /usr/bin

#Apache log files directory
HTTPD_LOG_D /var/log/apache2

#apache startup script
HTTPD_SERVICE apache2

# Qmail directory
QMAIL_ROOT_D /var/qmail

# Location of qmail maildirs
PLESK_MAILNAMES_D /var/qmail/mailnames

# Path to rblsmtpd
RBLSMTPD /usr/sbin/rblsmtpd

# Courier-IMAP
COURIER_IMAP_ROOT_D /

# Proftpd
FTPD_CONF /etc/proftpd.conf
FTPD_CONF_INC /etc/proftpd.include
FTPD_BIN_D /usr/bin
FTPD_VAR_D /var/run/proftpd
FTPD_SCOREBOARD /var/run/proftpd/scoreboard

# Bind
NAMED_RUN_ROOT_D /var/lib/named
NAMED_OPTIONS_CONF /etc/named.conf.include.plesk-options
NAMED_ZONES_CONF /etc/named.conf.include.plesk-zones

# Webalizer
WEB_STAT /usr/bin/webalizer

# Logrotate
LOGROTATE /usr/local/psa/logrotate/sbin/logrotate

# MySQL
MYSQL_VAR_D /var/lib/mysql
MYSQL_BIN_D /usr/bin

# PostgreSQL
PGSQL_DATA_D /var/lib/pgsql/data
PGSQL_BIN_D /usr/bin

# Backups directory
DUMP_D /var/lib/psa/dumps

# Mailman directories
MAILMAN_ROOT_D /usr/lib/mailman
MAILMAN_VAR_D /var/lib/mailman

# Python binary
PYTHON_BIN /usr/bin/python2.6

# Tomcat root directory
CATALINA_HOME /usr/share/tomcat6

# DrWeb
DRWEB_ROOT_D /opt/drweb
DRWEB_ETC_D  /etc/drweb

# GnuPG binary
GPG_BIN /usr/bin/gpg

# Tar binary
TAR_BIN /bin/tar

# AWStats
AWSTATS_ETC_D /etc/awstats
AWSTATS_DOC_D /usr/share/apache2/icons/awstats

# openssl binary
OPENSSL_BIN /usr/bin/openssl

LIB_SSL_PATH /lib/libssl.so
LIB_CRYPTO_PATH /lib/libcrypto.so

CLIENT_PHP_BIN /usr/local/psa/bin/php-cli
CGI_PHP_BIN /usr/bin/php-cgi5
AWSTATS_TOOLS_D /usr/share/doc/packages/awstats/tools
AWSTATS_BIN_D   /srv/www/cgi-bin

Configuración rápida de Virtual Host en Apache

Publicado en Sistemas TI en Enero 7, 2010 9:32 am

Tras tener Apache+php+mysql instalado, llega el momento de crear alojamientos virtuales para nuestros dominios. Apache guarda los archivos de configuración de los Virtual Host en  /etc/apache2/vhosts.d/ si no hemos configurado ninguno allí veremos las plantillas que podemos usar como base (una con ssl y otra sin ssl).

En el ejemplo, voy a crear un archivo de configuración para BlackSlot en openSuse.

# Nos movemos al directorio de configuración vhost
cd /etc/apache2/vhosts.d
# Copiamos la plantilla a un nuevo archivo
cp vhost.template blackslot.conf
# En otra distribución seguramente sea /var/www/vhosts/
mkdir -p /srv/www/vhosts/blackslot/

Es importante tener en cuenta que el archivo de configuración debe terminar con el sufijo “.conf” para que Apache lo lea.

Debemos editarlo y sustituir el dominio de ejemplo “dummy-host.example.com” por el nuestro, así como las rutas que en nuestro ejemplo es /srv/www/vhosts/blackslot/. Sobre todo establece correctamente el DocumentRoot y donde dice <Directory “/srv/www/vhosts/dummy-host.example.com”>

Reiniciamos Apache y listo.

/etc/init.d/apache2 restart