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

deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

Este repositorio es recomendable tenerlo en el:

/etc/apt/sources.list

Porque contiene paquetes cuya actualización es crítica, como por ejemplo las actualizaciones de antivirus de ClamAV.

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 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