Informática

Entradas que tengan que ver con informática en general (Linux, software libre, redes, servidores, etc).

UNZIP en alojamiento remoto

 Jue, 15/11/2012 - 21:40     Sandor

En un servicio de hospedaje web, muchas veces es más cómodo y rápido subir un archivo comprimido por FTP y descomprimirlo en remoto, a realizar la descompresión en local y subir uno por uno todos los archivos (sobre todo, si son algunos cientos).

Una posible solución es utilizar algún administrador de archivos que nos pueda ofrecer el panel de control de nuestro alojamiento, pero en caso de que nuestro servicio de hosting no nos lo ofrezca, hay un pequeño truquillo que nos puede venir bien.

Consiste en subir el archivo ZIP a una carpeta determinada y luego subir un archivo (lo podemos llamar unzip.php), con el siguiente contenido:

<?php
     $zip = new ZipArchive;
     $res = $zip->open('mi_archivo_comprimido.zip');
     if ($res === TRUE) {
         $zip->extractTo('carpeta_donde_extraer_el_contenido/');
         $zip->close();
         echo 'ok';
     } else {
         echo 'failed';
     }
?> 

Visto en:  http://www.bjw.co.nz/developer/php/62-php-unzip-an-uploaded-file-using-php

Es un ahorro increible de tiempo, creedme. ¡Ah, y que no se os olvide luego borrar el ZIP y el script PHP! ;-)

 

Etiquetas: 

Redirigiendo peticiones HTTPS a HTTP en Drupal multisite

 Mar, 06/11/2012 - 10:17     Sandor

Tengo en Configbox contratado un alojamiento en donde hay instalado un sitio Drupal Multisite, que sirve dos dominios. El problema es que cuando alguien intenta acceder via HTTPS, aparece la pantalla de entrada del panel de control del dominio, en vez del error correspondiente o, lo que sería mejor, una redirección al dominio, via HTTP.

Para solucionar esto, de manera que redireccione correctamente los dos dominios, hay que crear en el directorio httpsdocs el siguiente archivo .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

Con esto, si escribimos https://dominio1nos redireccionará a http://dominio1, y si escribimos https://dominio2, nos redireccionará a http://dominio2.

Etiquetas: 

Envio SMTP con VTiger 5.4 a través de Amazon SES

 Mar, 02/10/2012 - 10:57     Sandor

Llevamos trabajando con VTiger en la oficina desde hace un par de años, y la verdad es que hasta la fecha solo usábamos este CRM para tener organizados nuestros precontactos, cuentas y contactos, sin hacer uso de sus otros módulos (Oportunidades, Facturas, Tarifas, etc).

Pero desde hace algunos meses (concretamente, desde que tuve noticia del servicio SES de Amazon, que básicamente te permite enviar correos masivos a un precio ridículo), me interesó la posibilidad de realizar campañas de email marketing desde VTiger, aprovechando los contactos que teníamos ya en la base de datos.

El problema es que en esta última versión de VTiger había algún tipo de error que impedía integrar los envios de correos a través del SMTP de Amazon SES. Tras mucho preguntar e investigar he dado con una solución que lo permite:

  • Por un lado hay que sustituir el phpmailer que trae por defecto VTiger (está en modules/Emails), por una versión especialmente modificada para funcionar con Amazon SES: PHPMailer – Amazon SES Integration. En concreto, hay que copiar a modules/Emails los cuatro archivos php que comienzan por class.*
  • Además, como el Vtiger me cambiaba la dirección del From de los envios (y Amazon SES la rechazaba al no estar dada de alta como Verified Sender), he tenido que seguir los pasos que encontré en este hilo del foro de VTiger, y cambiar una linea del archivo /modules/Emails/mail.php, concretamente sustituir:
$mail->Sender= getReturnPath($mail->Host);
por
$mail->Sender= $from_email;

Con estas dos cosillas, ya solo queda configurar la configurar del servidor saliente de VTiger (/index.php?module=Settings&action=EmailConfig) con los datos particulares de la cuenta de Amazon:

Servidor de Correo Saliente: ssl://servidorsmtp:465
Usuario: tuusuario
Contraseña: tucontraseña
Email de: el email desde el que quieran que procedan tus correos.
¿Requiere Autentificación?   Si

Siguiendo estos pasos, podreis enviar correos a través del VTiger usando los servicios de Amazon SES.

Asegurar servidor SSH

 Lun, 14/05/2012 - 18:18     Sandor

Aquí van algunos consejos para proteger el acceso remoto a un servidor linux, corriendo Secure Shell (SSH).

CONFIGURAR CORRECTAMENTE EL SERVIDOR SSH

  • NOTA: el archivo de configuración, al menos en Debian, se encuentra situado en /etc/ssh/sshd_config
  • Protocol 2
    La versión 1 del protocolo tiene algunas vulnerabilidades conocidas, así que quitamos su soporte, obligando a acceder utilizando únicamente la versión 2 del protocolo.
  • ListenAddress ip
    Comprueba que el servidor escuche únicamente la interfaz de red que quieras realmente (puede que sólo te interese acceder a tu pequeño servidor casero desde tu propia red local, y tengas activado por defecto la escucha en todas las IPs, incluida la pública).
  • PermitRootLogin No
    Es indispensable que el usuario root no pueda acceder via SSH. Siempre podremos escalar privilegios, una vez hayamos accedido al servidor, a través de su o sudo, pero es importante que el usuario root no pueda acceder directamente desde el servidor SSH.
  • Listen num-puerto
    Cambiando el puerto de escucha por defecto pondremos otra piedra en el camino de aquellos que pretendan entrar remotamente en nuestro sistema. Hay formas de deducir qué programa está escuchando un puerto, pero al menos se lo pondremos un poquito más dificil a aquellos que hacen uso de scripts automatizados.
  • PermitEmptyPasswords No
    Ya que estamos intentando aumentar la seguridad de acceso a nuestro sistema, parece lógico prohibir las contraseñas vacías, ¿no? :-)
  • AllowUsers usuario1 usuario2 ...
    Si como yo, administras una pequeña red local, probablemente solo quieras dar acceso SSH a uno o dos usuarios, así que ¿por qué no limitar el acceso al servidor solamente a esos usuarios?
  • AllowGroups grupo1 grupo2 ...
    Si por el contrario hay más usuarios que acceden via SSH, tal vez sería interesante filtrar el acceso al servidor SSH, permitiendo solamente aquellos usuarios que pertenezcan a un determinado grupo.
  • PasswordAuthentication Yes
    Mediante esta directiva configuramos si permitimos la autenticación mediante clave al servidor SSH. El acceso tradicional al servidor se realiza mediante usuario y clave, aunque si prohibimos este acceso mediante usuario/clave (PasswordAuthentication No), aumentaremos la seguridad, dejando el acceso solamente a través de pares de claves públicas y privadas (si has usado alguna vez un programa de cifrado tipo GPG o similar ya sabrás a qué me refiero).
  • Hay otras directivas que incrementan la seguridad, como LoginGraceTime, MaxAuthTries, MaxStartups y algunas otras, aunque considero que estas de aquí arriba son las más importantes. Como siempre un simple man sshd_config te te permitirá profundizar más en las directivas de configuración.

AUTENTICACION SSH BASADA EN PARES DE CLAVES

  • Para deshabilitar el acceso con usuario/clave, y habilitar el acceso con pares de claves, necesitaremos comprobar que el servidor SSH (recuerda: /etc/ssh/sshd_config) está configurado correctamente:
# Desactivamos la autenticación via usuario/clave:
PasswordAuthentication No
# Activamos la autenticación con pares de claves:
PubkeyAuthentication yes
# Definimos el archivo donde irán las claves de acceso autorizadas.
# Como mi partición home está cifrada, defino que las claves se almacenen,
# de manera centralizada, dentro de /etc/ssh. Hay más información al respecto
# (importante el tema de los permisos en las carpetas) en la siguiente URL:
# https://help.ubuntu.com/community/SSH/OpenSSH/Keys
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
# Activamos la atenticación RSA
RSAAuthentication yes
  • Una vez configurada la parte del servidor correctamente, lo que haremos será crear, en nuestra máquina cliente (desde la que accedemos al servidor) una clave pública que copiaremos luego al servidor. El par de claves (pública y privada) las podremos generar mediante el comando ssh-keygen -t rsa (si estamos bajo GNU/Linux), o usando el programa puttygen.exe del cliente PuTTY (si estamos en un entorno MS Windows). Para este ejemplo, suponemos que hemos llamado a la clave pública ssh-publico.key y a la clave privada ssh-privada.key.ppk.
  • Para subir la clave pública a nuestro servidor SSH, haremos uso de la utilidad scp (pscp si usamos PuTTY):
scp ssh-publico-key usuario@nuestroservidor:/etc/ssh/usuario
  • Reiniciamos el servidor sshd y voilà, ya podemos acceder usando el par de claves RSA.

Teneis más información sobre este último tema en los siguiente enlaces:

Etiquetas: 

Partir y juntar archivos grandes en GNU/Linux

 Lun, 16/01/2012 - 11:10     Sandor

Hoy me ha surgido, en el servidor de la oficina, la necesidad de partir un archivo de 20 Gb en partes más pequeñas. Buscando un poco por ahí, he visto que existe la utilidad split, que hace precisamente eso:

split -btamaño miarchivogrande prefijodelosarchivospequeños

Para juntar los archivos pequeños y volver a crear el archivo grande, la nunca bien valorada :) utilidad cat nos servirá a la perfección:

cat prefijodelosarchivospequeños* > minuevoarchivogrande

 

Etiquetas: 

Modificando el firmware del O2Media MR6000

 Mar, 27/12/2011 - 20:04     Sandor

O2Media MR6000

 

Según os comenté el otro día, estoy intentando mejorar, dentro de mis posibilidades, el firmware para el O2Media MR6000. Para trastear con él, aquí os cuento las herramientas que he utilizado.

El archivo install.img del firmware es en realidad un archivo comprimido en formato tar. Por lo que si le cambiamos la extensión y lo descomprimimos con un sencilo tar xvf install.tar tendremos acceso al contenido. La última actualización a día de hoy, descargada de la web de O2Media, mostraría esto:

-rw-r--r-- 1 root root  143300 dic  8  2010 arial.ttf
-rw-r--r-- 1 root root 1773344 dic  8  2010 audio_firmware.install.bin
-rwxr-xr-x 1 root root    1816 dic  8  2010 configuration.xml
-rwxr-xr-x 1 root root   43400 dic  8  2010 flash_erase
-rwxr--r-- 1 root root 2199940 dic  8  2010 install_a
-rwxr-xr-x 1 root root  163948 dic  8  2010 mkfs.jffs2
-rwxr-xr-x 1 root root   56792 dic  8  2010 mkyaffs2image
-rwxr-xr-x 1 root root   61580 dic  8  2010 nandwrite
drwxr-xr-x 3 root root    4096 dic 27 18:57 package2
    -rwxr--r-- 1 root root  1873552 dic  8  2010 bluecore.audio
    -rwxr--r-- 1 root root 51265536 dic  8  2010 squashfs1.img
    -rw-r--r-- 1 root root     5379 dic  8  2010 usr.local.etc.tar.bz2
    -rwxr-xr-x 1 root root  2324208 dic  8  2010 video_firmware.bin
    -rwxr-xr-x 1 root root  4206726 dic  8  2010 vmlinux.develop.avhdd.mars.nand.bin
-rwxr-xr-x 1 root root 1623760 dic  8  2010 video_firmware.install.bin

Por cierto, he identado los archivos que aparecen dentro del directorio package2. El archivo squashfs1.img, dentro de la carpeta package2, contiene la imagen de la carpeta root del sistema. Para descomprimirla, copiamos squashfs1.img a una carpeta aparte y descomprimimos con:

unsquashfs  squashfs1.img

Esto nos creará una carpeta llamada squashfs-root con el contenido descomprimido. Después de trastear con el contenido, podremos volver a crear la imagen con un sencillo:

mksquashfs * ../squashfs1.img

El archivo usr.local.etc.tar.bz2 se puede descomprimir con un sencillo:

tar jxvf usr.local.etc.tar.bz2

Según leo en esta entrada de todopvr: el directorio /usr/local es el único directorio del firmware que se monta como lectura/escritura y por tanto que se puede tocar por el usuario con conocimientos de linux y telnet. Suele estar en ese directorio el fichero de canales, los ficheros de bases de datos para las programaciones y también en un directorio "IMS" todo lo que tiene que ver con internet, como las emisoras de radio, o las páginas de meteorología, RSS o vídeos y precisamente por estar ahí se pueden "modificar" y crear ficheros rss/html para acceder a distintos servicios de internet, por ejemplo a cosas distintas de Youtube.

Si alquien quiere trastear y no quiere andar compilando los archivos para comprimir/descomprimir, podeis descargar los archivos de este enlace: yaffs-utils-linux.tgz

Por ahora solo he dado este primer paso. Los siguientes serán trastear con los scripts IMS, a ver si puedo meter los del firmware de Bluetimes (en el que funciona Youtube y la radio online), dentro del de la última actualización de O2Media.

Seguiremos informando... ;)

Categoria: 

Forzando la instalacion de un firmware en el O2Media MR6000

 Sáb, 24/12/2011 - 10:32     Sandor

O2Media MR6000

Hace unas semanas he comprado en PcComponentes el reproductor multimedia O2Media MR6000. Para las características que tiene está bien de precio, aunque a mi entender es un aparato solo para geeks, ya que de lo que dice que hace, a lo que realmente hace, va un trecho.

El caso es que llevo trasteando algunos días, instalando en el aparato diferentes firmwares. Y claro, de tanto trastear algún día tenía que pasar que me equivocara y el aparato se quedara colgado al meterle un firmware que no estaba destinado a él :-)

Por un momento ya pensaba que tenía un bonito pisapapeles, pero rebuscando en la red he dado con el foro MPCClub, y he descubierto que hay un sistema para forzar la actualización del firmware aún cuando no tienes acceso al menú del aparato.

Consiste en:

  • Apagar el aparato del interruptor de atrás.
  • Introducir un pendrive, formateado en FAT32, con el firmware que quieras instalar en el directorio raiz.
  • Presionar la tecla de arranque (la del propio aparato, no la del mando a distancia).
  • Teniéndola presionada, encender el aparato.

Con esto el aparato se actualizará y nuestro cacharro habrá vuelto a la vida.

Categoria: 

Envio de correos con phplist, a través de SSL SMTP

 Jue, 22/12/2011 - 23:51     Sandor

Un pequeño truco para poder enviar correos desde phplist, a través de servidores SMTP con SSL (los de Amazon SES o GMail, por ejemplo). El problema es que phplist utiliza una versión antigua de phpmailer, por lo que si queremos usar servidores con SSL, hay que tocar un poco los siguientes archivos:

Define o edita (si ya existen) las siguientes directivas en config/config.php :

define("PHPMAILER",1);
define("PHPMAILERHOST",'smtp.tudominio.com');
$phpmailer_smtpuser = 'USUARIO';
$phpmailer_smtppassword = 'CLAVE';
$phpmailer_smtpsecure = 'ssl';
$phpmailer_smtpport = 465;

Abre admin/class.phplistmailer.php y encuentra :

$this->Password = $GLOBALS['phpmailer_smtppassword'];

y escribe debajo a continuación : 

$this->SMTPSecure = $GLOBALS['phpmailer_smtpsecure'];
$this->Port = $GLOBALS['phpmailer_smtpport'];

Ahora abre admin/phpmailer/class.smtp.php y encuentra :

$this->smtp_conn = fsockopen($host,

Y sustituye

$host,

por

$host='ssl://smtp.tudominio.com',

Con esto ya deberías poder enviar correos a traves de tu servidor SMTP SSL favorito ;)

Fuente: http://glycogen.net/2011/06/07/phplist-smtp-w-ssl/

 

Copiar estructura de directorios de una unidad a otra

 Jue, 14/07/2011 - 13:09     Sandor

Hace un ratillo, en la oficina, me ha surgido la necesidad de replicar una estructura de directorios (sólo los directorios, no el contenido), de un disco duro a otro. Puede parecer una tontería, pero me he vuelto loco haciendo probaturas sin conseguir nada. Al final, el viejo MS-DOS xcopy me ha salvado el culo:

xcopy origen destino /s /t /e

Como no es algo que haga todos los días, aquí lo dejo, para futuras referencias.

 

Categoria: 
Etiquetas: 

Mi nueva caja rack ATX

 Mié, 08/06/2011 - 10:51     Sandor

Hace unos días encargué una caja ATX para el rack que estoy montando, poco a poco, en la oficina. Tras mirar en sitios especializados y asustarme con los precios, me he decantado por una caja baratita, pero que creo cumplirá perfectamente con nuestras necesidades.

Se trata de una caja 4U (cuatro unidades de altura), que admite placas estandar en formato ATX, con cuatro bahías externas (tres de 5.25" y una de 3.5"), y siete internas de 3.5". Creo que lo que más me ha gustado de esta caja es su capacidad para admitir, sin hacer malabarismos, placas y fuentes de alimentación ATX normales, tarjetas a tutiplén, etc.

La he encontrado en PC Componentes, por 100 eurillos de nada. No es que me lleve comisión ni nada :-), pero me ha parecido interesante comentarlo aquí y poner alguna foto de la caja, por si alguien está interesado en comprar algo similar:

Caja ATX 01

Caja ATX 02

Caja ATX 3

Caja ATX 4

 

 

Etiquetas: 

Páginas

Sobre PlanetaInopia

Sandor Inopia nació en Bilbao, un lunes cualquiera, justo 1904 años después de que Nerón se suicidara, diciendo ¡Qué artista muere conmigo!, y 192 años después de que Volta descubriera la pila eléctrica. Mientras celebraba su quinto cumpleaños, Elvis daba su último concierto, y celebrando los siete, Muhammad Ali se retiraba del boxeo.

Sobre PlanetaInoipa, blog personal de Sandor Inopia (Sandor Saiz Ortuondo)

Yo no tengo la ambición de Nerón, la inteligencia de Volta, la voz de Elvis, o la fuerza de Alí, pero a veces me gusta escribir y darme a conocer a los demás. Por eso este blog, que espero te guste.

Comentarios recientes