Me mudo , pero no quiero estar solo.

diciembre 22, 2008 at 5:02 am (1)

Despu茅s de mucho sin escribir nada por aqui. sigo vivo ahora estoy metido en un wiki , por que desde un buen principio busco algo mas col.laborativo , tambien doy la oportunidad a todo aquel que este interesado en colaborar en el proyecto el blog no lo eliminare ya que hay bastante contenido.

pero seguire en

http://tuxed.kenjy.net

Esta vez el contenido del blog sera mixto entre varios sistemas.

Tanto windows , Linux , BSD y sistemas que toco en el dia a dia

Quien quiera colaborar en el nuevo proyecto que envie un mail a tuxedlinux@gmail.com

Gracias y espero colaboracion 馃榾

Anuncios

Permalink Dejar un comentario

Servicios de Hosting Con IP Dinamica

mayo 14, 2008 at 3:43 am (1, linux, Redes, Servidores, Unix) ()

Holas despu茅s de un largo tiempo sin publicar nada , aqu铆 os dejo un peque帽o manual para montar hosting casero usando ip dinamica y los servicios de 1and1.

Primero de Todo debemos crear un dominio dinamico en algun servicio como no-ip.com

para el caso de no-ip nos registramos en la web y a帽adimos un nuevo host

Una vez a帽adido el host debemos configurarlo en nuestro servidor o router para ello instalaremos el cliente

de no-ip que se encuentra en los repositorios de debian.

para ello ejecutaremos

# aptitude install no-ip

Una vez instalado ejecutamos

# no-ip -C

Please enter the login/email string for no-ip.com: tu_cuenta@domain.com
Please enter the password for user tu_password
Please enter an update interval:[30] //Dejalo en Default dale 30//
Do you wish to run something at successful update?[N] (y/N) //Presiona N//
Ejectando el  servio  si se reinicia la maquina.

# update-rc.d -f no-ip defaults
Adding system startup for /etc/init.d/no-ip ...
   /etc/rc0.d/K20no-ip -> ../init.d/no-ip
   /etc/rc1.d/K20no-ip -> ../init.d/no-ip
   /etc/rc6.d/K20no-ip -> ../init.d/no-ip
   /etc/rc2.d/S20no-ip -> ../init.d/no-ip
   /etc/rc3.d/S20no-ip -> ../init.d/no-ip
   /etc/rc4.d/S20no-ip -> ../init.d/no-ip
   /etc/rc5.d/S20no-ip -> ../init.d/no-ip

Preparando toda la paqueteria.

Software necesario para nuestro Servidor:
  • php
  • mysql ( en los repos como mysql-client )
  • mysql-server
  • httpd (o apache2 en debian)
  • perl
  • bash ( La shell de linux este ya lo tenemos )

Modulos de Perl:

  • POSIX
  • Socket
  • DBI
  • DBD::mysql
  • File::Basename
  • MIME::Base64
  • Sys::Syslog

Estos modulos puede que ya los tengas instalados en tu servidor si no puedes instalarlo desde cpan as铆:

# cpan

cpan> install Sys::Syslog

…..

cpan > bye

Paqueteria para Servicios web

  • mod_ssl # Modulo SSL para apache, lo usaremos para crear paginas seguras
  • openssl # Generar Certificados SSL
  • php-imap # para que el webmail funcione
  • php-mysql # para que phpMyAdmin funcione
  • net-snmp # para obtener informaci贸n con mrtg

Paqueteria para Servicios de Correo:

  • postfix # servidor de correo
  • postgrey # listas grises
  • dovecot # Servidor POP3/IMAP
  • vsftpd #Servidor FTP
  • bind #Servidor DNS
  • amavisd-new # Controlar anti-spam/virus
  • spamassassin # Anti-spam para el correo
  • clamd # Anti-virus para el correo
  • mrtg # Gr谩ficos de red

Instalando Todo

Para Debian:
# apt-get install apache2 php5 mysql-server apache-ssl openssl postfix postgrey dovecot-common vsftpd spamassassin clamav amavisd-new bind mrtg

Para CentOS: # yum install httpd php mysql-server mod_ssl openssl postfix postgrey dovecot vsftpd spamassassin clamd amavisd-new bind mrtg
Instalando Panel Control Usuarios

Una vez instaladas todas las dependencias es el momento de instalar un Panel para administrar todo.

Para ello descargamos la versi贸n estable de Ravencore.

# wget http://garr.dl.sourceforge.net/sourceforge/ravencore/ravencore-0.3.3.tar.gz

# tar zxvf ravencore-0.3.3.tar.gz
# cd ravencore-0.3.3
# make build
# make install

Con esto ya tenemos el Panel Instalado y listo para funcionar.

# /etc/init.d/ravencore start

Iniciado el servicio , asignamos una password al usuario admin

# /usr/local/ravencore/sbin/run_cmd passwd

Ahora ya podemos logearnos al panel conect谩ndonos a la ip de la maquina al puerto 8000 

http://x.x.x.x:8000
Click en la imagen para ver capturas

Una vez logeado podremos crear servicios web desde el panel.

Configuraci贸n DNS Proveedor.

En el caso de 1and1 iremos ha

http://admin.1and1.es/

Dominios

Seleccionamos nuestro Dominio . Pesta帽a DNS / Modificar Configuraci贸n DNS

Configuraci贸n general

DNS Nombre can贸nico
Marcamos Nombre canonico
Configuraci贸n CNAME

Alias * tu_dominio.no-ip.org
[X]Conozco y acepto que toda configuraci贸n DNS, direcciones de e-mail y configuraciones para el reenv铆o actuales se desactivar谩n.

Remplazar tu_dominio.no-ip.org por dominio Virtual creado en no-ip.com

Creaci贸n聽 de聽 VirtualHosts dinamicos

De esta forma con un solo virtualhost cubriremos todos los dominios.

# vi /etc/httpd/conf.d/dinamicos.conf

# Configuracion para virtualhost dinamicos:
#

UseCanonicalName Off
<VirtualHost *:80>
ServerName %1

VirtualDocumentRoot /users/%0/httpdocs

#VirtualScriptAlias /users/%0/cgi-bin
#ScriptAlias /cgi-bin/ /var/www/default/cgi-bin
<Directory /var/www/%0/httpsdocs>
AllowOverride All
Options FollowSymLinks
Order allow,deny
Allow from all
php_admin_value safe_mode 0
php_admin_value open_basedir /users/%0/httpdocs
php_admin_value sendmail_from webmaster-%0@%2+
#Include ./conf.d/php.conf
DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.shtml index.phtml
</Directory>
#
# rewrite
#
Rewritelog /var/log/httpd/rewrite_log
RewritelogLevel 0
RewriteEngine on
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{REQUEST_URI} !^/\_(MYADMIN|MYSQL|ERROR)
#RewriteCond %{REQUEST_URI} !^/\_(CORREO|MAIL|MYADMIN|MYSQL|ADMINCORREO|ERROR|SERVERGFX|STATS|GESTION)
#RewriteCond %{REQUEST_URI} !^/awstats
RewriteCond %{HTTP_HOST} ^www
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.+) /users/%1/httpdocs/$1
#
# Logs:
#
LogFormat “%V %{X-Forwarded-For}i %{%d-%m-%Y@%I:%M:%S(%Z)}t \”%r\” %s %b” vcommon
CustomLog /var/log/httpd/vcommon-access.log vcommon
</VirtualHost>

Nota:Remplazar /users/ por la ruta marcada en la instalaci贸n del panel.

Descargar Configuraci贸n


Cada vez que a帽adimos un virtual host tendremos de a帽adirlo en 1and1 y modificar el CNAME.

Espero que les haya gustado si teneis alguna duda comentario.


Permalink 10 comentarios

Que razon tiene!!

marzo 19, 2008 at 12:39 pm (1)

Permalink 1 comentario

Bash + OpenVZ (ejecuci贸n multi maquina)

febrero 23, 2008 at 4:47 am (1, Servidores, Tips, Unix, Virtualizaci贸n)

Aqui un sencillo tip para ejecutar comandos a todos los VPS a la vez

 # ./vzexec-all uptime
 12:57:12 up 2 days, 15:14,  0 users,  load average: 0.00, 0.00, 0.00
  3:57pm  up 2 days 15:14,  0 users,  load average: 0.00, 0.00, 0.00
  3:57pm  up 2 days 15:14,  0 users,  load average: 0.00, 0.00, 0.00
  3:57pm  up 2 days 15:14,  0 users,  load average: 0.03, 0.01, 0.00
 12:57:13 up 2 days, 15:14,  0 users,  load average: 0.00, 0.00, 0.00
 12:57:13 up 2 days, 15:13,  0 users,  load average: 0.00, 0.00, 0.00
 12:57:13 up 2 days, 15:13,  0 users,  load average: 0.00, 0.00, 0.00
 12:57:13 up 2 days, 15:13,  0 users,  load average: 0.00, 0.00, 0.00
Descargar Script

El script se聽 usa para聽 ejecutar comandos a todas las maquinas que estan funcionando

  • vzlist Saca las lista de maquinas
  • grep running las maquinas que estan funcionando
  • cut -d ” ” -f -12 Nos muestra solo el VEID
  • grep -v VEID Elimina la palabra VEID de la lista
  • vzctl exec $start $1 Ejecuta el comando en las maquinas

modo empleo:

vzexec-all.sh comando

El script puede usarse para hacer copias de las paginas web alojadas de los VPS.

Podrias usar rsync para hacer backups de los directorios y guardarlos en el NAS comprimidos y como nombre usar `hostname`.$DATE.tar.gz

Permalink 6 comentarios

ssmtp en gmail

febrero 14, 2008 at 2:57 am (1, linux, Servidores, Tips, Unix)

ssmtp es una peque帽a herramienta que nos permitira enviar correos usando el comando mail o mutt desde la linea de comandos , de hecho ssmtp actua como un smtp relay reenviando nuestros correos a nuestra cuenta de gmail.

Esta herramienta puede ser util por ejemplo en scripts donde queremos enviar datos desde mail sin disponer de un MTA instalado localmente.

Tambien puede ser util en la configuraci贸n de las notificaciones de Nagios (Sistema de Monitorizaci贸n) , para permitir la notificaci贸n en los servidores de correo de nuestra empresa.

Instalando ssmtp

En este how-to uso gentoo aunque puede ser adaptado facilmente a tu distribuci贸n favorita.

Para instalar ssmtp en gentoo usaremos el siguiente comando.

# USE=”ipv6 -mailwrapper -md5sum ssl” emerge ssmtp

Una vez instalado simplemente es configurar ssmtp:

necesitaremos dos archivos

$ ls -l /etc/ssmtp/
total 16
-rw-r–r– 1 root root 89 feb 9 01:39 revaliases
-rw-r–r– 1 root root 192 feb 9 01:38 ssmtp.conf

Configurando ssmtp.conf

root=usuario@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=usuario@gmail.com
UseSTARTTLS=YES
AuthUser=usuario
AuthPass=tu_password
FromLineOverride=YES

Los datos que debes remplazar por los datos de tu cuenta estan marcados en negrita.

El AuthUser= debe escribirse sin @gmail.com

Configurando revaliases

root:name@gmail.com:smtp.gmail.com:587
mainuser:name@gmail.com:smtp.gmail.com:587

Con esto asocia un usuario local a nuestra cuenta de gmail , logicamente tendremos de remplazar name@gmail.com por nuestra cuenta que configuremos en ssmtp.conf

Probando si funciona

Si todo funciona bien podremos enviar correos usando

$ echo “esto es una prueba” | mail -s “PRUEBA” destinatario@domain.com

Permalink 1 comentario

Permisos con ACL

enero 27, 2008 at 2:01 am (1, linux, Redes, Seguridad, Unix)

Los permisos de linux est谩n bien siempre que no dispongamos de un grupo muy grande de usuarios , si es asi se haria muy lioso ya que tendr铆amos un /etc/group muy grande. Una forma Elegante de arreglar este problema es usando las ACL (Listas de Control de Acceso)

A groso modo una ACL es una lista de usuarios o grupos Linux y sus correspondientes permisos de acceso que tienen a un fichero o directorio.

Instalando y activando las ACL

Para aumentar la granularidad de los permisos en tu sistema debes tener en cuenta:

  • El nucleo debe soportar y estar compilado para soportar atributos extendidos y ACL
  • El sistema de ficheros tiene de montarse con atributos extendidos y ACL
  • Se tienen de instalar las utilidades de espacio de usuario (chacl,getfacl y setfacl) para establecer el ACL.

Una vez claros estos conceptos pasamos a activar ACL.

Soporte ACL del n煤cleo de sistema

La gran mayor铆a de distros actuales ya soportan ACL puedes comprobar si tienes soporte con este comando.

# grep POSIX_ACL /boot/config-`uname -r`
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_TMPFS_POSIX_ACL is not set

Como pod茅is tenemos activados en el kernel si no es asi recompilamos el kernel marcando estas opciones.

File systems —>

[*] ReiserFS extended attributes

[*] ReiserFS POSIX Access Control Lists

Soporte ACL en /etc/fstab

Una vez que tengamos soporte ACL necesitaremos configurar /etc/fstab para activar los susodichos permisos .

Los sistemas de ficheros montados con acl tendr谩n la palabra clave “acl” en las porciones de opciones de montaje de sus entradas en el fichero.

Ejemplo

/dev/sda6 /usr reiserfs noatime,acl,user_xattr 1 2

/dev/hda1 /opt ext3 defaults 0 0

Como pod茅is ver sda6 tiene soporte acl en el punto de montaje , si quisi茅ramos dar soporte acl a hda1 seria tan f谩cil como al punto de montaje acl

/dev/hda1 /opt ext3 defaults,acl 0 0

Una vez actualizado el fichero /etc/fstab debemos remontar el sistema de fichero.

Ejemplo para hda1

# mount -o remount,acl /dev/hda1

Soporte ACL en el espacio de usuario

El 煤ltimo paso para usar ACL asegurarse de que las aplicaci贸nes de espaci贸 de usuario est茅n presentes en el sistema

En Debian o Ubuntu puedes comprobar asi

# dpkg -l |grep acl
ii acl 2.2.42-1ubuntu1 Access control list utilities
ii libacl1 2.2.42-1ubuntu1

Tambien puedes comprobar buscando las herramientas

# type -a getfacl

getfacl is /usr/bin/getfacl

Si ACL no esta instalado puedes instalarlo desde el manejador de paquetes de tu distribuci贸n en debian por ejemplo.

# apt-get install acl

Formato ACL

Linux soprta 2 tipos b谩sicos de ACL:

  • ACL de control de directorios y ficheros
  • ACL de directorio (Mascaras) ACL que toman por defecto los ficheros creados en ese directorio.

La ACL se representa por tres campos separados por “:”

Campo 1

Entrada

  • “u” Ususario
  • “g” Grupo
  • “o” Otro
  • “m” Mascara

Campo 2

El segundo campo esta formado por:

  • UID (ID num茅rico de usuario)
  • GID (ID num茅rico de grupo)
  • Vac铆o (Asume UID,GID del Creador)

Campo 3

  • El tercer campo es el de acceso y puede ser representado de 2 maneras.
  • Cadena est谩ndar RWX (las cadenas se pueden remplazar por – sino queremos dar acceso de ese tipo)
  • Cadena simb贸lica + ^

Herramientas

  • chacl : Permite cambiar,examinar o eliminar ACL
  • getfacl : Permite examinar acl para encontrar archivos o directorios
  • setfacl : Establece ACL a fichero o directorio.

Mostrar ACL

Para el ejemplo usare un directorio con archivos que he creado con touch.

> ls -l
total 0
-rw-r–r– 1 tuxed tuxed 0 2008-01-26 03:03 lerele
-rw-r–r– 1 root root 0 2008-01-26 03:03 pass
-rw-r–r– 1 root root 0 2008-01-26 03:02 user

La acl para el directorio siguiente es

> getfacl .
# file: .
# owner: root
# group: root
user::rwx
group::rwx
other::rwx

La acl por defecto para el fichero lerele es esta

> getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rw-
group::r–
other::r–

La acl para el directorio el qual no se le ha asignado coje los de umask.

Establecer ACL

Hay tres maneras de establecer un ACL

  1. Usando el comando setfacl el qual sobrescribe qualquier ACL anterior.
  2. Usando el comando setfacl con la opci贸n -m (Modifica ACL)
  3. Usando chacl para modificar una ACL existente.

En esta ocasi贸n mostrare como se cambian las acl con chacl , ya que este no sobrescribe la ACL existente, y ademas proporciona algo mas de informaci贸n de como realmente funcionan las acl

Ejemplo

A帽adiremos al usuario aitor como alguien que puede leer el fichero lerele , usar铆a chacl (cambiar la ACL) del siguiente modo:

$ chacl u::rw-,g::r–,o::—,u:aitor:r–,m::rw- lerele

Esta es la forma en la que se ve una acl en la vida real , el hecho de que sea una comando tan largo es que se debe definir los puntos ya nombrados anteriormente el propietario de fichero, grupo propietario y otros

para entendernos mejor la porci贸n u::rw,g::r–,o::— es la ACL existente y la porci贸n u:aitor:r–,m::rw- especifica el nuevo usuario el nuevo usuario que quiero a帽adir a dicha acl y la mascara de derechos efectivos cuando se a帽ada.

La mascara de derechos efectivos es la uni贸n de todos los permisos ya existentes de UGO para un fichero o directorio. esta se tiene al a帽adir un usuario a la ACL.

Para comprobar que hemos sido a帽adidos a la acl usaremos

$ getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rwx
group::r–
other::—
user:aitor:r–
mask::rw-

Ahora que ya sabemos como funciona acl podriamos poner que aitor tenga permisos de lectura y escritura a lerele

$ chacl u::rw-,g::r–,o::—,u:aitor:rw-,m::rw- lerele

como veis le hemos a帽adido permisos de escritura

$ getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rwx
group::r–
other::—
user:aitor:rw-

Pues espero que hos guste.

Permalink Dejar un comentario

IP detras de Proxys en los logs de apache

enero 17, 2008 at 7:21 am (1)

Mucha gente que se dedica a hacer gamberradas por internet suelen usar proxys pensandose que asi estan protegidos aqui un simple tip para los logs de apache en apache2.conf

LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" xcombined
        CustomLog /var/log/apache2/tuxed.es-access.log xcombined

Justamente la cabecera X-Forwarded-For es la que contiene nuestra ip

Permalink Dejar un comentario

Soluci贸n Para Monitorizaci贸n de Servidores

enero 16, 2008 at 4:17 am (1)

Bixdata es un completo sistema de monitorizaci贸n formado:

  • BixDesktop
  • BixServer
  • BixAgend

BixDesktop nos permite conectarnos a los diferentes Agentes (BixAgent) o a los Servidores (BixServer) y mostrar los graficos de una forma entendedora en nuestro escritorio en forma de aplicacion.


BixServer nos ser谩 bien 煤til para monitorizar los servidores web http, servidores de correo POP3 y SMTP, y hacer ping.Adicionalmente, BixData env铆a notificaciones en situaciones cr铆ticas, generalmente mediante el e-mail, en caso de emergencias HTTP, ping, CPU, memoria; hasta puede crear informes de diagnostico SMART. La consola gr谩fica soporte gr谩ficos din谩micos en tiempo real, y es f谩cil de manipular.

BixAgent , se trata basicamente de un daemon que pone en ejecucion los medios para monitorizar la maquina ejecutando un servicio en el puerto 17070 udp

En definitiva, se trata de una soluci贸n eficaz y completa, que nos permite controlar en todo momento el rendimiento del sistema y de diversos servicios web. Brinda un entorno seguro por medio de la autentificaci贸n y encriptaci贸n SSL. BixServer y Bix Client, el t谩ndem perfecto para garantizar el buen funcionamiento de tu sistema, as铆 como de tus servicios de correo electr贸nico y web.

Screenshoots:

Monitorizando Servidores Virtuales

Instalaci贸n de BixDesktop

Descargamos el BixDesktop http://www.bixdata.com/downloads?reg=skipped

La instalaci贸n es realmente sencilla descargamos el archivo para nuestra plataforma y ejecutamos el archivo runbixdesktop.sh

Script de instalaci贸n en maquinas Debian

Descargar

Instalaci贸n del script

Usando clusterssh puedes instalar en mas de 20 maquinas al mismo tiempo.

# wget http://lnx.titoworld.com/uploads/bixdata-installer ; chmod +x bixdata-installer ; sh bixdata-installer

Permalink Dejar un comentario

Informaci贸n simple con ps

enero 15, 2008 at 1:20 pm (1)

Mostrar datos de cpu memoria y aplicacion
聽ps gaxo %cpu,%mem,comm |head 聽
root@SolarUX:/var/www#聽 ps gaxo %cpu,%mem,comm |head
%CPU %MEM COMMAND
聽0.0 聽 聽 聽聽 0.1 聽 聽 init
聽0.0 聽 聽 聽聽 0.0聽聽聽聽 migration/0
0.0聽聽聽聽聽聽聽 0.0 聽 聽 ksoftirqd/0
0.0聽聽聽聽聽聽聽 0.0聽聽聽聽 watchdog/0
0.0聽聽聽聽聽聽聽 0.0聽聽聽聽 events/0
0.0聽聽聽聽聽聽聽 0.0 聽 聽 khelper
0.0 聽 聽 聽聽 0.0聽聽聽聽 kthread
0.0聽聽聽聽聽聽聽 0.0 聽 聽 kblockd/0
0.0聽聽聽聽聽聽聽 0.0 聽 聽 kacpid

Permalink Dejar un comentario

Script para Backups de DB Mysql

enero 15, 2008 at 9:56 am (1)

Pues sii , estoy vivo despues de un tiempo sin escribir nada aqui os dejo un script para hacer copias del usuario que le indiques con la posibilidad de enviar por correo el backup.

#!/bin/bash

# Ruta en la que se guarda el log de la operacion de backup.
logfile=”/var/log/mysql-backup.log”

# Ruta en la que guardar los backups
backup_dir=”/opt/mysqlbackup”

# Usuario
username=””
password=””

# Creamos un nuevo log del proceso de backup
rm -rf $logfile
touch $logfile

# Mediante esta instruccion, generamos un nombre de fichero con el dia y la hora del proceso de backup.
timeslot=`date +%Y%m%d_%H%M`

cd $backup_d

# Iteramos a traves de la lista de bases de datos a la que el usuario tiene acceso.
for BBDD in $( mysql -u $username –password=$password -h localhost -Bse ‘show databases’ ); do
echo “Creando copia de seguridad de $BBDD”

# Volcamos la base de datos en un fichero temporal
mysqldump –user=$username –password=$password $BBDD > datos.sql

# Y lo comprimimos en un tar.bz2 para ocupar lo m铆nimo. Util en bases de datos grandes.
tar cvjf mysql-$BBDD-$timeslot.tar.bz2 *.sql

# El nombre del fichero resultante contiene el nombre de la base de datos y la fecha de la copia.
# De esta manera, cuando sea necesaria su restauracion sera mas sencillo de localizar.

echo “Backup completo en la base de datos: $BBDD (mysql-$BBDD-$timeslot.tar.bz2)” >> $logfile

# Borramos el fichero temporal
rm datos.sql
done
#————————————————-

# Deja la linea siguienete si quereis recibir los backups en el correo
#
cat $logfile|mail -s “Proceso Backup $HOSTNAME = MySQL” tuemail@dominio.com

Permalink 2 comentarios

Next page »