Buscar este blog

miércoles, 20 de febrero de 2008

jueves, 14 de febrero de 2008

"This account is currently not available." Xampp Addons PostgreSQL en Fedora Core 6

/opt/lampp/lampp startpostgresql
Starting PostgreSQL
This account is currently not available.
Me pasó esto al intentar ejecutar el Addons para Xampp de PostgreSQL. El problema es que el usuario nobody (el que corre el servicio), no tiene definida shell en el /etc/passwd

Para definirla editamos en /etc/passwd la línea que define al usuario nobody:
nobody:x:99:99:Nobody:/:/sbin/nologin
Para dejarla así:
nobody:x:99:99:Nobody:/:/bin/bash
Una vez hecho esto ya podemos reiniciar Xampp que debería arrancar PostgreSQL perfectamente.

martes, 12 de febrero de 2008

Ejecutar XAMPP en Debian a 64bit

He conseguido hacer funcionar XAMPP en mi Debian a 64bit.

Lo primero es descargar la última versión de XAMPP para linux.
wget http://heanet.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.6.6.tar.gz

Después la descomprimimos en /opt/
tar xvzf xampp-linux-1.6.6.tar.gz

Por último antes de ejecutar XAMPP tendremos que instalar lib32gcc1
aptitude install lib32gcc1

Una vez hecho esto ya podemos ejecutar XAMPP normalmente con
/opt/lampp/lampp start

Y funcionará correctamente.

Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible NO_PUBKEY

En ocasiones cuando añadimos en el /etc/apt/sources.list de nuestro Debian nuevas lineas al hacer apt-get update o aptitude update no encontramos con un error parecido a este:
W: GPG error: http://volatile.debian.org stable/volatile Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY EC61E0B0BBE55AB3
W: GPG error: http://volatile.debian.org stable/volatile-sloppy Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY EC61E0B0BBE55AB3
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

Eso es porque el repositorio no es de total confianza. Para ello tenemos que agregar la clave "EC61E0B0BBE55AB3" (en este caso) en el listado de repositorios seguros.

Para ello, tendremos que escribir desde la línea de comandos:
gpg --keyserver subkeys.pgp.net --recv EC61E0B0BBE55AB3
gpg --export --armor KEY | apt-key add -

Después haz un aptitude update y verá que ya no tienes errores.

lunes, 11 de febrero de 2008

Montar disco de Red NFS

aptitude install portmap nfs-user-server
/etc/exports
Contiene una linea por directorio a compartir. La estructura de dicha linea es:

directorio equipo1(opcion11,opcion12) equipo2(opcion21,opcion22)

donde:

directorio: Es el directorio a compartir.
equipox: Clientes que tendrán acceso al directorio compartido. Estos equipos se podrán indicar por su IP o dirección DNS(por ejemplo: mi_equipo.ral.com o 192.168.0.69). Recomiendo usar la IP.
optionxx: Son las opciones que nos permitirán tener acceso a esos directorios con determinados privilegios.

* ro | rw : Con la opción ro el directorio será compartido de solo lectura. Esta opción está por defecto.y con la opción rw se permitirá tanto acceso de lectura como de escritura.
* sync | async : sync es la opción recomendada, ya que se ha de respetar el protocolo NFS, es decir, no se responden a las peticiones antes de que los cambios realizados sean escritos al disco. Con la opción async se permite mejorar el rendimiento y agilizar el funcionamiento global, pero supone un riesgo de corrupción de archivos o del sistemas de ficheros en casos de caidas del servidor y/o errores de éste.
* root_squash | no_root_squash | all_squash : root_squash indica que un cliente identificado como root tendrá acceso al directorio con privilegios de un usuario anónimo. Si seleccionamos la opción no_root_squash evitaremos esto, y si indicamos all_squash, entonces aplicaremos esto último a todos los usuarios, no sólo root.

Un ejempo de fichero /etc/exports es el siguiente:
/home/usuario/datos 192.168.0.0(ro,sync,root_squash)
/tmp 192.168.0.0(rw,sync,no_root_squash)

Los ficheros /etc/hosts.allow y /etc/hosts.deny tienen la siguiente estructura:
servicio: host [o red/mascara_subred], host [o red/mascara_subred]

servicio : Es el servicio que estará permitido o denegado para algunas IP’s, en nuestro caso serán portmap y rpc.nfsd.
host [o red/mascara_subred] : Indicará la IP del host de un posible cliente. También pueden indicarse redes con sus correspondientes mascaras de subred.

/etc/hosts.deny
En este fichero pondremos todas las restricciones posibles para hacer mas seguro el sistema. Para ello denegaremos el acceso a portmap, ya que si se deniega portmap, aunque permitas nfs, no se podrá compartir porque éste depende de portmap. Por lo que solo se tendrá acceso a portmap por aquellos equipos que estén definidos en el fichero /etc/hosts.allow. El fichero /etc/hosts.deny quedará:
portmap:ALL

/etc/hosts.allow
En este fichero debe indicar a quienes permitimos el acceso al servicio de nfs y portmap. Se pueden indicar hosts individuales o una red.
portmap:192.168.0.0/255.255.255.0
nfs:192.168.0.0/255.255.255.0


Después de configurarlo:
/etc/init.d/nfs-user-server restart
/etc/init.d/portmap restart

Para ver si está corriendo el server escribimos desde uno de los clientes:

rpcinfo -p < dirección IP >
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs
100005 1 udp 745 mountd
100005 2 udp 745 mountd
100005 1 tcp 748 mountd
100005 2 tcp 748 mountd
Aquí podemos ver que postmapper está escuchando en el puerto 111, que el servidor nfs escucha en el 2049 y que muntd escucha en el 745 y 748. Este último cambiará de puerto de escucha cada vez que reiniciemos el servicio, así que si queremos conectar el disco a una máquina de internet, tendremos que abrir en el firewall un rango de puerto.

Yo no he visto en ningún sitio documentación donde explique que puertos son los que usa, pero en mi firewall he definido una regla que permita la conexión a la IP de mi servidor de NFS entre para los puertos 111, 2049 y desde el 700 hasta el 900. He visto que entre esos puerto siempre se levante mountd.

Para montar el disco desde el cliente simplemente hacemos:

mount -t nfs < dirección ip >:/directorio/definido/en/el/server/nfs /directorio/destino

domingo, 27 de enero de 2008

Navegador predeterminado en Debian

Para definir el navegador que queramos como predeterminado para todos los usuarios del sistema, tendremos que ejecutar desde la línea de comandos como root:
#update-alternatives --config x-www-browser
En mi caso esta fue la salida.
Hay 3 alternativas que proveen `x-www-browser'.

Selección Alternativa
-----------------------------------------------
1 /usr/bin/epiphany
2 /usr/bin/iceweasel
*+ 3 /usr/bin/konqueror

Pulse para mantener el valor por omisión [*] o pulse un número de selección: 2
Se utiliza `/usr/bin/iceweasel' para proveer `x-www-browser'.

Ya está, el navegador predeterminado para mi Debian ahora es iceweasel (firefox).

jueves, 17 de enero de 2008

Debian Volatile


Este repositorio es recomendable tenerlo en el:
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
/etc/apt/sources.list
Porque contiene paquetes que tienen actualización crítica, como por ejemplo las actualizaciones del antivirus ClamAV.

Simplemente añadir la linea y después ejecutar aptitude update && aptitude upgrade

ClamAV para Debian Etch

Para instalar.
#aptitude install clamav clamav-daemon
Comprobamos los permisos de la base de datos y los logs
# ls -al /var/lib/clamav/

total 11756
drwxr-xr-x 2 clamav clamav 4096 2008-01-17 13:50 .
drwxr-xr-x 38 root root 4096 2008-01-17 13:49 ..
-rw-r--r-- 1 clamav clamav 651282 2008-01-17 13:49 daily.cvd
-rw-r--r-- 1 clamav clamav 11347852 2008-01-17 13:49 main.cvd
-rw------- 1 clamav clamav 52 2008-01-17 13:49 mirrors.dat

# ls -al /var/log/clamav/

total 16
drwxr-xr-x 2 clamav clamav 4096 2008-01-17 13:49 .
drwxr-xr-x 14 root root 4096 2008-01-17 13:49 ..
-rw-r----- 1 clamav adm 1445 2008-01-17 13:50 clamav.log
-rw-r----- 1 clamav adm 1401 2008-01-17 13:49 freshclam.log


Configuramos el demonio clamav (este ejemplo es para una máquina con pocos recursos):
#nano /etc/clamav/clamd.conf

...
#ArchiveMaxFiles 1000
ArchiveMaxFiles 100
#ArchiveMaxFileSize 10M
ArchiveMaxFileSize 2M
#ArchiveMaxCompressionRatio 250
ArchiveMaxCompressionRatio 50
ArchiveLimitMemoryUsage false
ArchiveBlockEncrypted false
#MaxDirectoryRecursion 15
MaxDirectoryRecursion 6
FollowDirectorySymlinks false
FollowFileSymlinks false
#ReadTimeout 180
ReadTimeout 60
#MaxThreads 12
MaxThreads 10
#MaxConnectionQueueLength 15
MaxConnectionQueueLength 8
#StreamMaxLength 10M
StreamMaxLength 7M
...
MailFollowURLs false

Para saber si nuestro ClamAV está funcionando bien, creamos un fichero que contenga en la primera línea:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Y le pasamos el ClamAV haciendo
clamdscan MiFicheroInfectado

Y nos tiene que decir:
infectado: Eicar-Test-Signature FOUND

martes, 8 de enero de 2008

Host Virtuales Xampp

Para crear un host virtual con xampp, tendremos que editar los ficheros de configuración del Apache que incluye xampp. Los ficheros son:

/opt/lampp/etc/httpd.conf

Donde tenemos que descomentar la línea que hace el "include" el siguiente fichero (Include etc/extra/httpd-vhosts.conf).
/opt/lampp/etc/extra/httpd-vhosts.conf
Ahora tendemos que escribir nuestro host virtual.
< VirtualHost *:80 >
ServerAdmin [mail del administrador]
DocumentRoot /opt/lampp/htdocs/[nombre de mi directorio]/
ServerName [nombre del subdominio ej:MiSubdominio.MiDominio.com blog.josemanuelruizbaena.com]
ErrorLog logs/blog.josemanuelruizbaena.com-error_log
CustomLog logs/blog.josemanuelruizbaena.com-access_log common
< / VirtualHost >

Una vez aquí simplemente tendremos que hacer un "restart" de xampp para que reinicie Apache con la nueva configuración.
/opt/lampp/lampp restart
Mucho cuidado con los proxy, aquí en la empresa tenemos un proxy y tenía cacheadas las redirecciones que pretendía hacer con los subdominios. Y no funcionaba las modificaciones que hacía en el servidor. Borrad la caché del proxy si lo tenéis, tardé un poco en darme cuenta de qué es lo que estaba pasando y porqué algunos subdominios funcionaban o otros no.

Claro, solo funcionaban los que antes de mis modificaciones el proxy no cacheó nunca.

lunes, 7 de enero de 2008

squid proxy transparente

¿Qué es un proxy transparente? Es un proxy que no requiere configuración por parte del cliente en su navegador. Así podemos hacer que todos los clientes de nuestra red pasen por un proxy y no tendrás que pasar por cada uno de los navegadores configurándolos.

Para crear un proxy transparente, instalamos squid y empezamos a configurar.
aptitude install squid squid-common
Yo uso nano como editor, podéis usar con el que más cómodos estéis.

nano /etc/squid/squid.conf
http_port 3128 transparent
3128 es el puerto por defecto de escucha de squid, podemos cambiarlo, pero lo importante para hacer un proxy transparente es añadir transparent detrás del 3128.

En esta linea definimos la profundidad de directorios para cachear las webs. El 100 indica el tamaño máximo que ocupará el árbol de directorios. Si modificamos la variable cache_mem, tendremos que sustituir el 100 por el valor que le demos a cache_mem.
cache_mem 100 MB
cache_dir ufs /var/spool/squid 100 16 256
Tenemos que permitir el acceso a nuestra red.
acl our_networks src 192.168.0.0/22 # esto es lo mismo que 192.168.0.0/255.255.252.0
http_access allow our_networks # permitido el acceso a nuestra red
http_access allow localhost # permitido el acceso a localhost
Definimos el nombre de nuestro proxy
visible_hostname delorianserver
Una vez tenemos el squid configurado tendremos que reiniciarlo con /etc/init.d/squid restart
Si queremos podemos con squid -z crear la estructura de directorios para el cache, pero si no existe la crea la primera vez que reinicia.

Yo la borraría y la volvería a crear si modificas los parámetros de las lineas:
cache_mem 100 MB
cache_dir ufs /var/spool/squid 100 16 256
Para borrar el árbol de directorios del cache:
rm -fr /var/spool/squid
Para crear la estructura de directorios (tiene que estar parado el squid /etc/init.d/squid stop)
squid -z
Después lanzamos nuevamente el servicio.
/etc/init.d/squid start
Ahora solo nos queda añadir una regla de IPTABLES que haga una redirección del puerto 80 al 3128 (puerto por defecto del squid) para hacer de nuestro squid un proxy transparente.
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/255.255.252.0 -d 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Si todo ha ido bien podremos ver haciendo un tail -f de los log de squid que todos los clientes de nuestra red están pasando por el squid.
tail -f /var/log/squid/access.log

lunes, 24 de diciembre de 2007

Problemas con XAMPP, arch orden no encontrada


myhost@myuser#/opt/lampp/lampp restart
/opt/lampp/lampp: line 74: arch: orden no encontrada
/opt/lampp/lampp: line 74: arch: orden no encontrada

Stopping XAMPP for Linux 1.6.3b...
/opt/lampp/lampp: line 74: arch: orden no encontrada
XAMPP: Stopping Apache with SSL...
/opt/lampp/lampp: line 74: arch: orden no encontrada
/opt/lampp/lampp: line 74: arch: orden no encontrada

XAMPP: Stopping MySQL...
/opt/lampp/lampp: line 74: arch: orden no encontrada
XAMPP: Stopping ProFTPD...
Stopping PostgreSQL
waiting for postmaster to shut down.... done
postmaster stopped
XAMPP stopped.
/opt/lampp/lampp: line 74: arch: orden no encontrada
Starting XAMPP for Linux 1.6.3b...
/opt/lampp/lampp: line 74: arch: orden no encontrada
/opt/lampp/lampp: line 74: arch: orden no encontrada

XAMPP: Starting Apache with SSL (and PHP5)...
/opt/lampp/lampp: line 74: arch: orden no encontrada
XAMPP: Starting MySQL...
/opt/lampp/lampp: line 74: arch: orden no encontrada
XAMPP: Starting ProFTPD...
Starting PostgreSQL
postmaster starting

Tenía este error, me puse a mirar un poco el código y vi que lo que pretende el script que lanza xampp es verificar si el microprocesador es de 64 bit.

...
# XAMPP is currently 32 bit only
case `arch` in
*_64)
...

El error dice que no encuentra la orden arch. No encontré la aplicación arch en los repositorios, así que creé un script que dice la arquitectura de nuestro procesador.

Simplemente hay que crear un fichero en /usr/local/bin/arch, escribimos dentro.

#!/bin/sh
uname -m

Y por último le damos permiso de ejecución o nos dirá en el script que no tiene permiso para ejecutar arch.
chmod 775 /usr/local/bin/arch

Reiniciamos XAMPP y vemos que ya no tenemos errores.
/opt/lampp/lampp restart
Stopping XAMPP for Linux 1.6.3b...
XAMPP: Stopping Apache with SSL...
XAMPP: Stopping MySQL...
XAMPP: Stopping ProFTPD...
Stopping PostgreSQL
waiting for postmaster to shut down.... done
postmaster stopped
XAMPP stopped.
Starting XAMPP for Linux 1.6.3b...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
Starting PostgreSQL
postmaster starting
XAMPP for Linux started.

DynDns OVH Sincronización de IP pública dinámica

  Si tienes un servidor en casa o detrás de una conexión con IP dinámica, sabes que tarde o temprano tu dirección IP pública cambia y tu dom...