msgbartop
msgbarbottom

29 ene 12 Cómo instalar y actualizar s3cmd en ubuntu o debian

s3cmd es una pequeña aplicación que sirve para interactuar con el servicio de almacenamiento de Amazon, S3. Hace un tiempo ya os había contado cómo realizar backups con s3cmd.

Si utilizas ubuntu o debian, s3cmd está en los repositorios oficiales, pero una versión bastante antigua con muchos fallos. En mi caso el fallo que más me estaba afectando es cuando se se producía timeout hacía que la aplicación se cerrara sin finalizar las tareas, cosa que últimamente se estaba convirtiendo un algo demasiado habitual.

Por suerte el desarrollador de la aplicación ha creado un repositorio donde mantiene actualizadas las versiones estables para debian 5 y 6 y ubuntu 10.04 LTS y superiores. Para actualizar sólo hay que ejecutar los siguientes comandos.

wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | sudo apt-key add -
sudo wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list
sudo apt-get update && sudo apt-get install s3cmd

Fuente: s3tools.org

13 ene 12 Cómo bloquear el tráfico de un país

Si por cualquier razón necesitáis bloquear el tráfico de un servidor desde algún país en concreto en http://www.countryipblocks.net/ mantienen una lista actualizada de los rangos de ips de cada país.

Puedes descargar varios formatos, incluso uno preparado para insertar directamente en un fichero .htaccess, aunque a mi no me parece el mejor formato ya que obligas a que el servidor web revise una lista de ips que puede llegar a ser muy grande antes de que muestre la página y eso podría hacer que la navegación se enlenteciera demasiado, además un servidor web no es el más adecuado para realizar esa función.

Os pongo varios ejemplo de como realizar el bloqueo desde la línea de comandos. Para los ejemplos he utilizado korea, no se os ocurra utilizar rangos de ips de el país en el que estáis por que os podéis bloquear el acceso. Como diría un amiguete, “no seáis gañanes

Con iptables:

.
/usr/bin/wget -O /tmp/pais.txt https://www.countryipblocks.net/e_country_data/KR_cidr.txt; for i in $(/bin/cat /tmp/pais.txt | /bin/grep -v '#'); do sbin/iptables -A INPUT -s $i -j DROP; done; /bin/rm /tmp/pais.txt

Con apf:

.
/usr/bin/wget -O /tmp/pais.txt https://www.countryipblocks.net/e_country_data/KR_cidr.txt; for i in $(/bin/cat /tmp/pais.txt | /bin/grep -v '#'); do /etc/apf/apf -d $i; done; /bin/rm /tmp/pais.txt

23 nov 11 Cómo cambiar el grupo de seguridad de una instancia de amazon EC2

Amazon Web Services

Antes de empezar 2 conceptos sobre Amazon Web Sevices (aws):
Instancia: es el equivalente a un servidor
Grupo de seguridad: reglas predeterminadas de un firewall

Durante el proceso de creación de una instancia en Amazon EC2 uno de los pasos es asignarle un grupo de seguridad.
Lo normal es dejar abiertos sólo aquellos puertos que realmente necesitas para minimizar los riesgos de accesos y ataques no deseados.

Yo tengo predefinidos tres grupos, uno super básico con sólo el puerto 80, 443 (los usados por las páginas web) y el 22 (ssh), otro más abierto con mas puertos para otro tipo de servidor y el “vivalavirgen” con todo abierto, que en principio no debería de utilizarse para nada excepto algunas pruebas.

En mi caso el problema surgió al crear una nueva instancia para un servidor que tiene servicios en puertos que hasta ahora no había utilizado y sin darme cuenta le asigné un grupo de seguridad que no tenía esos puertos contemplados.

Evidentemente al intentar acceder a esos servicios no podía,así que intenté cambiar el grupo de seguridad de esa instancia pero me llevé una buena sorpresa al comprobar que no era posible por el tipo de servidor que había seleccionado.

La única solución que encontré fue ir al menú de la instancia y seleccionar la opción “Launch more like this” y en el proceso de creación de la nueva instancia asignarle el grupo correcto. Es una forma de hacer esto un poco “de andar por casa” pero funciona y soluciona la papeleta al que lo necesite.

20 sep 11 Forma rápida y efectiva de eliminar spam en blogs y foros

El spam en los blogs es un problema que acaba afectando de alguna forma a todos los que administramos servidores. En WordPress hay estupendos plugins para evitar el spam como Akismet y que funcionan muy bien, pero siempre funcionan después de que el spam ya ha entrado en el blog con el consiguiente consumo de ancho de banda, cpu, memoria y espacio en disco. Evidentemente para un sólo blog no es un problema pero cuando tienes muchos con mucho tráfico y está entrando continuamente spam en todos ellos puede acabar siendo un problema.

En Stop Forum Spam han creado una lista de spammers a nivel mundial que puedes consultar descargando un fichero con las ips, emails o nombres de usuario utilizados o a través de una api que puedes consultar libremente desde cualquier aplicación que desarrolles.

En mi caso para ahorrar tiempo y ancho de banda he creado una entrada en el cron que diariamente descarga las ips bloqueadas durante las ultimas 24 horas y las bloquea directamente.

Ejemplo con iptables

.
/usr/bin/wget -O /tmp/listed_ip_1.zip http://www.stopforumspam.com/downloads/listed_ip_1.zip; /usr/bin/unzip /tmp/listed_ip_1.zip -d /tmp/; for i in $(/bin/cat /tmp/listed_ip_1.txt); do /sbin/iptables -A INPUT -s $i -j DROP; done; /bin/rm /tmp/listed_ip_1.*

y si utilizas el firewall apf

.
/usr/bin/wget -O /tmp/listed_ip_1.zip http://www.stopforumspam.com/downloads/listed_ip_1.zip; /usr/bin/unzip /tmp/listed_ip_1.zip -d /tmp/; for i in $(/bin/cat /tmp/listed_ip_1.txt); do /usr/local/sbin/apf -d $i; done; /bin/rm /tmp/listed_ip_1.*

Espero que os sea útil.

[Actualización]
Acabo de encontrar un plugin para wordpress que utiliza esta lista junto con otras dos:
http://wordpress.org/extend/plugins/stop-spammer-registrations-plugin/

24 ago 11 Error en Apache: (28)No space left on device: Couldn’t create accept lock

Ayer detecté un error poco frecuente en un servidor web con apache.
Después de una caida del servidor, cuando intentaba iniciar el apache este no arrancaba y en el log aparecía el error.
(28)No space left on device: Couldn’t create accept lock (/var/lock/apache2/accept.lock.xxxxx) (5)

Espacio en disco duro no falta, así que el problema era otro por lo que revolviendo por internet vi que, por suerte, no era el primero que le pasaba algo así y que ese error se achacaba a un problema con el array de semáforos.

Al hacer un

ipcs -s

se veía que tenía un montón de semáforos abiertos por el usuario del apache cuando este no está funcionando.
La solución pasa por eliminar todos los semáforos abiertos por el usuario del apache y ya se puede reiniciar sin problemas.

Si los liberas a mano puedes utilizar:

ipcrm -s proceso

O si lo prefieres automatizar un poco:

.
for i in `/usr/bin/ipcs -s | /bin/grep www-data | /usr/bin/awk '{print $2}'` ; do /usr/bin/ipcrm -s $i; done

Ahora sólo me queda averiguar por que se llena el array de semáforos y no se libera.

16 jul 11 Cómo enviar correos desde WordPress con wp_mail

Enviar correos desde WordPress es muy sencillo utilizando la función wp_mail.

Lo mejor es que veáis un ejemplo.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
wp_mail($email, $titulo, $mensaje, $headers);

En este ejemplo podemos ver los cuatro campos principales. Lo que hace es enviar un email en modo texto, si queremos enviarlo en html debemos añadir un filtro para indicar que el contenido se enviará en html.

add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));

En el ejemplo:

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers);

Si además queremos enviar un fichero adjunto al mensaje sólo tenemos que añadir un parámetro más a la función wp_mail.

$email="usuario@dominio.com";
$titulo="Subject del Email de prueba";
$mensaje="Email de prueba. bla bla bla";
$headers = 'From: Remitente ' . "\r\n";
$fichero="/home/rastreador/mi_fichero";
$atach= array($fichero);
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
wp_mail($email, $titulo, $mensaje, $headers,$atach);

21 jun 11 Backups en Amazon S3 con s3cmd

Amazon S3 es un servicio de almacenamiento masivo de información con unos costes bastante aceptables. Para poder manejarlo hay varias herramientas pero para mi la más cómoda es s3cmd, un sencillo programa en línea de comandos que nos permite manejar nuestra cuenta en S3.

Lo primero es instalarlo, desde debian o ubuntu con un simple

apt-get install s3cmd

lo tenemos listo y si no podéis ir a http://s3tools.org/download y descargarlo desde allí.

Inmediatamente deberíamos configurarlo, para ello hay que ejecutarlo con el parámetro –configure
s3cmd –configure
Lo primero que nos va a pedir el “Access Key” y el “Secret Key” de nuestra cuenta de Amazon. Para obtenerlos debemos ir a la página de Amazon, menú “cuenta” -> “Credenciales de Seguridad”
Después nos pedirá una clave que se utilizará para cifrar todo lo que se suba a Amazon y algunos datos más como la ruta del gpg y datos si estuvieramos detrás de un firewall. Al final del proceso nos crea un fichero .s3cfg en nuestro directorio de usuario.

Los comandos de s3cmd son:

  • Make bucket
    s3cmd mb s3://BUCKET
  • Remove bucket
    s3cmd rb s3://BUCKET
  • List objects or buckets
    s3cmd ls [s3://BUCKET[/PREFIX]]
  • List all object in all buckets
    s3cmd la
  • Put file into bucket
    s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]
  • Get file from bucket
    s3cmd get s3://BUCKET/OBJECT LOCAL_FILE
  • Delete file from bucket
    s3cmd del s3://BUCKET/OBJECT
  • Synchronize a directory tree to S3
    s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR
  • Disk usage by buckets
    s3cmd du [s3://BUCKET[/PREFIX]]
  • Get various information about Buckets or Files
    s3cmd info s3://BUCKET[/OBJECT]
  • Copy object
    s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
  • Move object
    s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
  • Modify Access control list for Bucket or Files
    s3cmd setacl s3://BUCKET[/OBJECT]
  • Sign arbitrary string using the secret key
    s3cmd sign STRING-TO-SIGN
  • Fix invalid file names in a bucket
    s3cmd fixbucket s3://BUCKET[/PREFIX]
  • List CloudFront distribution points
    s3cmd cflist
  • Display CloudFront distribution point parameters
    s3cmd cfinfo 1[/cf]
  • Create CloudFront distribution point
    s3cmd cfcreate s3://BUCKET
  • Delete CloudFront distribution point
    s3cmd cfdelete cf://DIST_ID
  • Change CloudFront distribution point parameters
    s3cmd cfmodify cf://DIST_ID

Los comandos básicos con ficheros son put para subir todo el contenido al bucket, get para descargarlo y sync para sincronizar los contenidos.
P.E.:

s3cmd sync --delete-remove --recursive /mi-directorio/datos/ s3://BUCKET/datos-de-mi-directorio/

11 dic 10 Impresionante fotografía en 3D

Impresionante esta fotografía en 3D que publicó maikelnai en su blog.

01 dic 10 Manifiesto por una red neutral

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad.

Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir.

La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes